在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
在开源世界中,Linux是最受欢迎的内核,追根究底在于它的创新。那么Linux内核有哪些创新呢?下面我们就来看看Linux内核的五大创新,分别是Cgroups、LKMM、低延迟补丁、RCU和合作。
1、Cgroups
早在2007年,Paul Menage和Rohit Seth就在内核中添加了深奥的控制组功能。这种新技术最初被用作一种方法,从本质上来说,是为了确保一组特定任务的服务质量。例如,你可以为与你的 WEB 服务相关联的所有任务创建一个控制组定义(cgroup),为例行备份创建另一个 cgroup ,再为一般操作系统需求创建另一个 cgroup。然后,你可以控制每个组的资源百分比,这样你的操作系统和 WEB 服务就可以获得大部分系统资源,而你的备份进程可以访问剩余的资源。
然而,cgroups 如今变得这么著名是因其作为驱动云技术的角色:容器。事实上,cgroups 最初被命名为进程容器。当它们被 LXC、CoreOS 和 Docker 等项目采用时,这并不奇怪。就像闸门打开后一样,“容器” 一词就像成为了 Linux 的同义词一样,微服务风格的基于云的“应用”概念很快成为了规范。
如今,已经很难摆脱 cgroups 了,它们是如此普遍。每一个大规模的基础设施(如果你运行 Linux 的话,可能还有你的笔记本电脑)都以一种合理的方式使用了 cgroups,这使得你的计算体验比以往任何时候都更加易于管理和灵活。例如,你可能已经在电脑上安装了 Flathub 或 Flatpak,或者你已经在工作中使用 Kubernetes和/或 OpenShift。不管怎样,如果“容器”这个术语对你来说仍然模糊不清,则可以 通过 Linux 容器从背后获得对容器的实际理解。
2、LKMM2018 年,Jade Alglave、Alan Stern、Andrea Parri、Luc Maranget、Paul McKenney 以及其他几个人的辛勤工作的成果被合并到主线 Linux 内核中,以提供正式的内存模型。Linux 内核内存[一致性]模型(LKMM)子系统是一套描述 Linux 内存一致性模型的工具,同时也产生用于测试的用例(特别命名为 klitmus)。
随着系统在物理设计上变得越来越复杂(增加了更多的中央处理器内核,高速缓存和内存增长,等等),它们就越难知道哪个中央处理器需要哪个地址空间,以及何时需要。例如,如果 CPU0 需要将数据写入内存中的共享变量,并且 CPU1 需要读取该值,那么 CPU0 必须在 CPU1 尝试读取之前写入。类似地,如果值是以一种顺序方式写入内存的,那么期望它们也以同样的顺序被读取,而不管哪个或哪些 CPU 正在读取。
即使在单个处理器上,内存管理也需要特定的任务顺序。像 x = y 这样的简单操作需要处理器从内存中加载 y 的值,然后将该值存储在 x 中。在处理器从内存中读取值之前,是不能将存储在 y 中的值放入 x 变量的。此外还有地址依赖:x[n] = 6 要求在处理器能够存储值 6 之前加载 n。
LKMM 可以帮助识别和跟踪代码中的这些内存模式。它部分是通过一个名为 herd 的工具来实现的,该工具(以逻辑公式的形式)定义了内存模型施加的约束,然后列举了与这些约束一致性的所有可能的结果。
3、低延迟补丁
很久以前,在 2011 年之前,如果你想在 Linux 上进行多媒体工作,你必须得有一个低延迟内核。这主要适用于录音时添加了许多实时效果(如对着麦克风唱歌和添加混音,以及在耳机中无延迟地听到你的声音)。有些发行版,如 Ubuntu Studio,可靠地提供了这样一个内核,所以实际上这没有什么障碍,这只不过是当艺术家选择发行版时的一个重要提醒。
然而,如果你没有使用 Ubuntu Studio,或者你需要在你的发行版提供之前更新你的内核,你必须跳转到 rt-patches 网页,下载内核补丁,将它们应用到你的内核源代码,编译,然后手动安装。后来,随着内核版本 2.6.38 的发布,这个过程结束了。Linux 内核突然像变魔术一样默认内置了低延迟代码(根据基准测试,延迟至少降低了 10 倍)。不再需要下载补丁,不用编译。一切都很顺利,这都是因为 Mike Galbraith 编写了一个 200 行的小补丁。
对于全世界的开源多媒体艺术家来说,这是一个规则改变者。从 2011 年开始事情变得如此美好,到 2016 年我自己做了一个挑战,在树莓派 v1(型号 B)上建造一个数字音频工作站(DAW),结果发现它运行得出奇地好。
4、RCU
RCU,即读-拷贝-更新Read-Copy-Update,是计算机科学中定义的一个系统,它允许多个处理器线程从共享内存中读取数据。它通过延迟更新但也将它们标记为已更新来做到这一点,以确保数据读取为最新内容。实际上,这意味着读取与更新同时发生。典型的 RCU 循环有点像这样:
(1)删除指向数据的指针,以防止其他读操作引用它。
(2)等待读操作完成它们的关键处理。
(3)回收内存空间。
将更新阶段划分为删除和回收阶段意味着更新程序会立即执行删除,同时推迟回收直到所有活动读取完成(通过阻止它们或注册一个回调以便在完成时调用)。虽然 RCU 的概念不是为 Linux 内核发明的,但它在 Linux 中的实现是该技术的一个定义性的例子。
5、合作
对于 Linux 内核创新的问题的最终答案永远是协作。你可以说这是一个好时机,也可以称之为技术优势,称之为黑客能力,或者仅仅称之为开源,但 Linux 内核及其支持的许多项目是协作与合作的光辉范例。
它远远超出了内核范畴。各行各业的人都对开源做出了贡献,可以说都是因为 Linux 内核。Linux 曾经是,现在仍然是自由软件的主要力量,激励人们把他们的代码、艺术、想法或者仅仅是他们自己带到一个全球化的、有生产力的、多样化的人类社区中。
以上就是Linux内核有的创新内容详解。大家都明白了吗?想要详细学习Linux系统的基础知识,可以在博学谷网站上,享受免费的视频学习资源。大家还等什么,现在就来学习吧!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
学Python用什么系统?
对于刚刚初学Python的小伙伴来说,一开始学习就会遇到这样的问题,学Python用什么系统?虽说工欲善其事必先利其器,但对于刚刚入门Python的小伙伴来说真的不用太纠结学Python用什么系统。。我的建议是,最好是能花一段时间熟悉了Linux系统以后,再开始转移平台。
7239
2019-07-16 16:50:07
数据分析师应该如何写数据分析报告
数据分析是目前企事业单位开展工作的主要方向定位方式,根据不同的数据类型以及目的,所得出的数据分析报告种类是不同的,例如描述性数据分析报告(一般针对已执行工作的数据总结分析)、解释性分析报告(剖析问题相关数据的分析报告)、探索性分析报告(对未执行的相关工作市场调研分析报告)、预测性分析报告(针对大数据统计以及策略性项目计划所制定的计划分析报告)等等。
6484
2019-08-26 18:16:59
数据分析培训哪里有?线上培训靠谱吗?
随着近些年数据分析的广泛应用,不少人想通过数据分析培训,提高自己的职场竞争力。那么数据分析培训哪里有?相信不少学习者都已经从业了,可能没有那么充裕的时间来学习,因此推荐大家报名博学谷的线上数据分析课程。可能又会有人问了:线上培训靠谱吗?回答是肯定的,下面小编就来介绍一下博学谷线上培训的优势。
5684
2019-09-03 18:50:20
南宁数据分析培训费用是多少钱?学完可以就业吗?
大数据在当下的发展势不可挡,这一趋势,同时也提供了许多数据分析职业的历史性机遇。想要学习数据分析的学员,尤其是在南宁这样的非一线城市,到底应该在哪学习呢?南宁数据分析培训费用是多少钱?学完可以就业吗?针对大家一系列的数据分析问题,本篇将给出回答以解决大家的困惑。
4945
2019-09-05 11:57:35
数据分析在电信行业的应用有哪些?
随着大数据的时代的来临,各个行业都受到了数据分析不同程度的影响和作用。尤其是在电信行业,数据分析已经逐渐成为电信运营商的战略优势之一。本文就来和大家聊聊数据分析在电信行业的应用。简单来说,数据分析的应用主要体现在网络管理和优化、市场与精准营销、客户关系管理、企业运营管理和数据商业化五大方面。下面我们就来看看具体的应用内容吧!
5958
2019-11-01 10:33:06