Linux内核:5大创新

创新一词在技术行业中的流行程度几乎与革命一样高,因此将夸张与实际上令人兴奋的事物区分开可能很困难。 Linux内核被称为创新内核,但后来又被称为现代计算中最大的黑客,它是微型世界中的一块巨石。

除了市场营销和建模之外,Linux可以说是开源世界中最受欢迎的内核,并且在其将近30年的使用寿命中引入了一些真正的游戏规则改变者。

Cgroups(2.6.24)

早在2007年,Paul Menage和Rohit Seth便将深奥的控制组 (cgroups)功能添加到了内核中(cgroups的当前实现是Tejun Heo重写的)。这项新技术最初被用作一种确保本质上,一组特定任务的服务质量。

例如,您可以为与Web服务器关联的所有任务创建控制组定义(cgroup),为常规备份创建另一个cgroup,为常规操作系统需求创建另一个cgroup。 然后,您可以控制每个cgroup的资源百分比,以使OS和Web服务器获得大量系统资源,而备份进程可以访问剩下的任何资源。

但是,cgroup最著名的是它作为当今驱动云的技术的角色:容器。 实际上,cgroups最初被称为进程容器 。 当它们被LXCCoreOS和Docker等项目采用时,这并不奇怪。

闸门被打开,“ 容器 ”一词正好成为Linux的代名词,而基于微服务风格的基于云的“应用程序”的概念Swift成为规范。 如今,很难摆脱cgroup,它们是如此普遍。 每个大型基础架构(如果运行Linux,则可能是笔记本电脑)都以有意义的方式利用了cgroup,从而使您的计算体验比以往任何时候都更易于管理和更灵活。

例如,您可能已经在计算机上安装了FlathubFlatpak ,或者可能已经开始在工作中使用Kubernetes和/或OpenShift 。 无论如何,如果“容器”一词对您仍然很模糊,那么您可以从Linux容器的幕后实践中获得对容器的动手理解。

LKMM(4.17)

在2018年,Jade Alglave,Alan Stern,Andrea Parri,Luc Maranget,Paul McKenney和其他几人的努力被合并到主线Linux内核中以提供正式的内存模型。 Linux内核内存[一致性]模型(LKMM)子系统是一组工具,用于描述Linux内存一致性模型,并生成石蕊测试 (特别是klitmus )进行测试。

随着系统在物理设计中变得越来越复杂(添加了更多的CPU内核,高速缓存和RAM等),让他们更难知道哪个CPU以及何时需要哪个地址空间。 例如,如果CPU0需要将数据写入内存中的共享变量,而CPU1需要读取该值,则CPU0必须在CPU1尝试读取之前进行写入。 同样,如果将值以一种顺序写入内存,则可以期望它们也以相同的顺序读取,而不管是哪个CPU进行读取。

即使在单个CPU上,内存管理也需要特定的任务顺序。 x = y之类的简单操作需要CPU从内存中加载y的值,然后将该值存储在x中 。 在CPU从内存中读取值之前 ,无法将y中存储的值放入x变量中。 还存在地址依赖性: x [n] = 6要求在CPU可以存储值6之前加载n

LKMM可帮助识别和跟踪代码中的这些内存模式。 它部分使用称为herd的工具来完成此任务,该工具定义了内存模型(以逻辑公理的形式)施加的约束,然后枚举了与这些约束一致的所有可能结果。

低延迟补丁(2.6.38)

很久以前,在2011年之前的日子里,如果您想在Linux上进行“严肃的” 多媒体工作 ,则必须获得一个低延迟内核。 这主要适用于音频记录,同时添加许多实时效果(例如,唱歌麦克风和添加混响,并在头戴式耳机中听到您的声音而没有明显的延迟)。 有些发行版(例如Ubuntu Studio )可靠地提供了这样的内核,因此在实践中并没有什么障碍,只是选择发行版作为艺术家时需要注意的重要事项。

然后,随着内核版本2.6.38的发布,此过程结束了。 默认情况下,Linux内核突然(似乎很神奇)内置了低延迟代码(根据基准,延迟至少降低了10倍)。 没有更多的下载补丁,也没有更多的编译。 一切都正常,并且全部归功于Mike Galbraith实施的200行小补丁。

对于全世界的开源多媒体艺术家来说,这是一个改变游戏规则的人。 从2011年开始情况如此之好,以至于2016年,我挑战自己在Raspberry Pi v1(B型)上构建数字音频工作站(DAW) ,结果发现它运行异常出色。

遥控单元(2.5)

RCU或Read-Copy-Update是计算机科学中定义的系统,它允许多个处理器线程从共享内存中读取。 它通过推迟更新来做到这一点,但也将其标记为已更新,以确保数据的使用者读取最新版本。 实际上,这意味着读取与更新同时发生。

典型的RCU周期如下所示:

  1. 删除指向数据的指针,以防止其他读者引用它。
  2. 等待读者完成他们的关键过程。
  3. 回收内存空间。

将更新阶段划分为删除和回收阶段意味着更新程序将立即执行删除,同时推迟回收直到所有活动的读取器完成(通过阻塞读取器或注册在完成时调用的回调)。

尽管不是为Linux内核发明了read-copy-update的概念,但在Linux中的实现是该技术的一个典型示例。

合作(0.01)

对于Linux内核进行了哪些创新,最终的答案将始终是协作。 称其为良好时机,称其为技术优势,称其为可破解性或仅称其为开源,但是Linux内核及其启用的许多项目是协作与合作的光辉典范。

它远远超出了内核。 可以说, 由于 Linux内核,各行各业的人们都为开源做出了贡献。 直到现在,Linux一直是自由软件的主要力量,它鼓舞着用户将其代码,艺术,思想或仅仅是他们自己带入全球性,生产性和多样化的人类社区。

您最喜欢的创新是什么?

该列表偏向于我自己的兴趣:容器,非均匀内存访问(NUMA)和多媒体。 我肯定已经将您最喜欢的内核创新排除在外了。 在评论中告诉我!

翻译自: https://opensource.com/article/19/8/linux-kernel-top-5-innovations

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值