kernel

持久内存支持

持久内存在Linux中仍然有点像特殊项目——RAM在启动之间保持其状态。Dave Hansen最近评论说,用户应用程序默认情况下无法简单地使用持久内存,这是一种令人遗憾的状态。它们必须经过专门编码才能识别和利用它。Dave希望系统将持久内存视为普通的旧内存。

处理复杂的内存情况

Jérôme Glisse 认为,Linux 内核认真解决在单个运行系统上安装多种不同类型内存的问题的时机已经到来。有主系统内存和设备专用内存,以及关于在何时何种情况下使用哪种内存的相关层级结构。Jérôme 说,这种复杂的新情况实际上现在已成为常态,应该这样对待。

追逐 Linux 内核归档

内核开发确实不可能跟踪。仅仅主要的邮件列表就浩如烟海,难以置信。然后还有所有的辅助列表和 IRC 频道,更不用说所有致力于内核开发但永远不见天日的公司邮件列表。在某些方面,内核开发已经变得根本上神秘莫测。

考虑新的 C 扩展

Matthew Wilcox 最近意识到,依赖 Plan 9 变体的 C 编程语言提供的 C 扩展可能具有价值。编译内核时,只需使用 -fplan9-extensions 命令行参数即可。正如 Matthew 指出的那样,从 4.6 版本开始,GCC 中就已支持 Plan 9 扩展,这是内核支持的最低版本。因此,理论上不会有冲突。

从源代码树中删除不雅内容

警告:本文包含不雅内容。Linus Torvalds 最近暂时退出内核开发,以便思考如何在某些情况下对开发人员不那么苛刻。与他的离开同时发生的是,一个补丁将新的行为准则引入内核源代码树。其影响开始显现。

低端硬件的磁盘加密

Eric Biggers 和 Paul Crowley 对低端手机和手表上 Android 可用的磁盘加密选项不满意。对他们来说,这是一个道德问题。Eric 说

抛弃过时的文档基础设施

很久以前,Linux 内核开始使用 00-Index 文件来列出每个文档目录的内容。其目的是解释每个文件记录的内容。Henrik Austad 最近指出,这些文件已经过时很长时间了,可能不再有人使用了。这没什么新鲜的。Henrik 在他的帖子中说,这个问题已经讨论多年了,“而且自那以后它们变得更加过时,所以也许是时候把它们扔掉了。”

非子进程退出通知支持

Daniel Colascione 提交了一些代码,以支持进程知道其他进程何时终止。通常,一个进程可以知道它自己的子进程何时结束,但无法知道不相关的进程,或者至少不容易知道。Daniel 的补丁在每个进程的 /proc 目录条目中创建了一个新文件——一个名为“exithand”的文件,任何其他进程都可以读取该文件。

Linux 内核中的单元测试

Brendan Higgins 最近提议向 Linux 内核添加单元测试,以补充其他开发基础设施,例如 perf、autotest 和 kselftest。整个测试问题对于内核开发人员来说非常重要,因为 Linux 位于系统的核心,并且通常具有非常强的稳定性/安全要求。大量的自动化测试定期检查内核源代码,并将任何异常情况报告给邮件列表。

影响 Linux 在端点增长的五大趋势

最近一份 IDC InfoBrief 报告指出,Linux 是全球唯一增长的端点操作系统。虽然 Windows 市场份额保持平稳,在 2015 年和 2017 年均为 39%,但 Linux 的市场份额已从 2015 年的 30% 增长到 2017 年的 35%,遍布全球。而且这种趋势正在加速。

关于 Linus 回归内核开发

2018 年 10 月 23 日,Linus Torvalds 结束了他的自我隔离,从各个开发人员的 git 树中拉取了大量补丁。这是他自 2018 年 9 月 16 日以来首次出现在 Linux 内核邮件列表中,当时他宣布将暂时离开内核开发,以解决他对开发人员有时过于苛刻的行为。23 日,他宣布回归,我在此总结了他的一些拉取活动后对此进行了报道。

虚拟化时钟

Dmitry Safonov 想要为时间信息实现命名空间。关于虚拟机,扭曲而怪异的事情是它们始终变得更加虚拟化。主机系统总有一些新元素可以被赋予自己的命名空间并进入虚拟机的领域。但是,随着该过程向前推进,虚拟系统必须与其他虚拟系统和主机系统本身共享自身的某些方面——例如,日期和时间。

内核国际化

在许多公司竞相将其产品和服务国际化以吸引尽可能广泛的市场之际,Linux 内核正在积极抵制这种趋势,尽管它已经占领了尽可能广泛的市场——整个世界的基础设施。

将控制权掌握在用户手中

始终在进行各种努力以实施安全启动并添加功能,这些功能将允许供应商阻止用户控制自己的系统。在这种情况下,当用户的系统拒绝启动除供应商控制的内核之外的任何内核时,用户将无助地旁观。

Linus 的行为和内核开发社区

2018 年 9 月 16 日,Linus Torvalds 发布了 4.19-rc4 版本的内核,并且他还宣布他将暂时离开 Linux 开发,以便反思自己的行为并提出更好的内核开发方法。这部分是受到他的意识启发,即他并不期待内核峰会活动,他说“我希望完全跳过年度内核峰会实际上并不有趣或是一个好兆头。”他还写道,部分原因是当:……我们社区中的人就我一生不理解情感的问题与我对质时。我在电子邮件中轻率的攻击既不专业也不应该。尤其是在我将其个人化的时候。为了追求更好的补丁,这对我来说是有道理的。我现在知道这不好,我真的感到抱歉。

处理 printk()

奇怪的是,printk() 会给内核开发带来如此多的问题,因为它本质上只是 printf() 的替代品,不需要将标准 C 库链接到内核中。

GNSS 和 GPS 子系统支持

最近,人们对一个子系统是否真正解决了其核心目的存在分歧。这是一个不寻常的辩论。通常,开发人员知道他们是否正在编写对一项或另一项功能的支持。

将编译器依赖性检查移至 Kconfig

Linux 内核配置系统 Kconfig 使用一种非常类似于 make 构建工具宏语言的宏语言。但是,也存在一些差异。当然,make 被设计为通用构建工具,而 Kconfig 是 Linux 内核专用的。但是,内核开发人员为什么要创建一个全新的宏语言,使其如此类似于现有的通用工具呢?

LoRaWAN 子系统支持

有时,内核开发人员发现自己相互竞争,以将他们特定功能的版本引入内核。但有时开发人员会发现他们一直在非常相似的方向上工作,而他们没有一起工作的唯一原因是他们只是不知道彼此的存在。