泰晓科技 -- 聚焦 Linux - 追本溯源,见微知著!
网站地址:https://tinylab.org

泰晓Linux实验盘,即刻上手内核与嵌入式开发
请稍侯

泰晓资讯·11月 / 第二期 / 2019

Wang Chen 创作于 2019/11/08

“泰晓资讯”,广泛报道 “Linux/开源” 业界资讯。欢迎广大读者投递相关资讯来源和素材,本站将进一步收集整理后发布给大家。

“鱼与熊掌不可兼得” - PREEMPT_RT 合入内核主线之路又起波澜

Back in July, Linus Torvalds merged a patch in the 5.3 merge window that added the PREEMPT_RT option to the kernel build-time configuration. That was meant as a signal that the realtime patch set was moving from its longtime status as out-of-tree code to a fully supported kernel feature. As the code behind the configuration option makes its way into the mainline, some friction can be expected; we are seeing a bit of that now with respect to the BPF subsystem.

7 月份的时候,Linus Torvalds 在 5.3 的集成测试期间合入 PREEMPT_RT 补丁。这意味着 realtime(实时性内核)功能即将正式合入 Linux 的主线代码。但随着 realtime 特性的合入,相关代码和其他特性代码之间的冲突不可避免地被暴露出来,譬如 BPF 子系统的代码和实时补丁的代码之间就存在这样的问题。Sebastian Andrzej Siewior 报告了这个问题,但他给出的解决方案着实令人沮丧:在 Kconfig 中增加配置开关确保 PREEMPT_RT 和 BPF 两个特性同时只能使能一个。BPF 已经是 Linux 系统中一个非常重要的功能了,很多其他特性和模块对其都存在依赖。如果为了引入实时特性而禁用另一个有趣的特性,这显然不是一个好的解决方法。看起来内核社区又有新的挑战了,一旦实时补丁合入后,一系列的兼容性问题将等待我们去解决。更多详细内容请阅读 原文

关键词: Linux, PREEMPT_RT, BPF

kmalloc() 函数实现内存对齐

kmalloc() is a frequently used primitive for the allocation of small objects in the kernel. During the 2019 Linux Storage, Filesystem, and Memory Management Summit, Vlastimil Babka led a session about the unexpected alignment problems developers face when using this function. After a few months he has come back with the second version of a patch set implementing a natural alignment guarantee for kmalloc(). From the strong opposition it faced initially, it seemed that the change would not get accepted. However, it ended up in Linus Torvalds’s tree. Let’s explore what happened.

Vlastimil Babka 提交了一个补丁,对 kmalloc() 分配的内存实现了 “自然对齐(natural alignment)”。所谓 “自然对齐”,指的是分配的内存起始地址值需要满足是以下三个值的最小公倍数:ARCH_KMALLOC_MINALIGN(缺省是 8 个字节),cache-line size(对较大对象来说最好是 cache line 对齐的),还有分配的内存对象的 size(如果其大小是 2 的整数幂的话)。kmalloc() 常用于 kernel 分配小块的内存。通常,kmalloc() 返回的内存都是满足自然对齐要求的,因此不少驱动和内核子系统也依赖这个条件。但是如果打开了 SLUB debugging 功能,或者使用了 SLOB 分配器的话就可能得到不满足自然对齐的内存。Babka 采取的应对措施是确保分配的内存大小总是 2 的 N 次方,这样就能满足所有的对齐需求了。虽然这个补丁起初招致了不少人的反对,不过最终 Linus Torvalds 还是将其合入了。针对该补丁是否应该被合入,曾经引发了社区的激烈讨论,更多讨论细节请阅读 原文

关键词: Linux, kmalloc, natural alignment

Linus 亲自出马解决 getrandom() 的问题

The final days of the 5.3 kernel development cycle included an extensive discussion of the getrandom() API and the reversion of an ext4 improvement that was indirectly causing boot hangs due to a lack of entropy. Blocking filesystem improvements because they are too effective is clearly not a good long-term development strategy for the kernel, so there was a consensus that some sort of better solution had to be found. What was lacking was an idea of what that solution should be. It is thus surprising that the problem appears to have been dealt with in 5.4 with little in the way of dissent or disagreement.

在 5.3 版本的内核中引入了一个 bug,具体参考 “泰晓资讯·10月 / 第二期 / 2019” 中的报道 “一次死机引发的大讨论”。 虽然人们达成共识必须为这个问题找到一种更好的解决方案,但遗憾的是人们一直没有确定这个方案究竟应该是什么。但可喜的是,在 5.4 开发周期中这个问题似乎有了解决的希望,更有趣的是提出这个解决方法的正是 Linus 大神本人,目前他已经亲自提交了解决方案的补丁并提请大家提出问题和建议,而截至目前为止似乎还没有什么异议。更多细节请阅读 原文

关键词: Linux, getrandom

Ubuntu 19.10 (Eoan Ermine) 发布

Ubuntu has announced the release of 19.10 “Eoan Ermine” in desktop and server editions as well as all of the different flavors: Ubuntu Budgie, Kubuntu, Lubuntu, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, and Xubuntu. “The Ubuntu kernel has been updated to the 5.3 based Linux kernel, and our default toolchain has moved to gcc 9.2 with glibc 2.30. Additionally, the Raspberry Pi images now support the new Pi 4 as well as 2 and 3. Ubuntu Desktop 19.10 introduces GNOME 3.34 the fastest release yet with significant performance improvements delivering a more responsive experience. App organisation is easier with the ability to drag and drop icons into categorised folders and users can select light or dark Yaru theme variants. The Ubuntu Desktop installer also introduces installing to ZFS as a root filesystem as an experimental feature.” More information can also be found in the release notes.

Canonical 今天正式发布了代号为 “Eoan Ermine” 的 Ubuntu 19.10,此版本带来了许多新功能。包括:

  • 19.10 的内核升级到 5.3。
  • Ubuntu 19.10 附带了最新的更新工具链:GCC 9.2 以及 glibc 2.30 ,OpenJDK 11,rustc 1.37,,更新的 Python 3.7.5,Python 3.8.0(仅解释器),ruby 2.5 .5,php 7.3.8,perl 5.28.1,golang 1.12.10。交叉编译器方面也有了新的改进,并且可以通过 POWER 和 AArch64 工具链对 ARM,PPC64 LE,S390X 和 RISCV64 目标进行交叉编译。
  • 它增加了对 AMD Navi GPU 的支持,还支持最新的 Raspberry Pi 4 ModelB。
  • 19.10 还包括了姗姗来迟的 ZFS 文件系统。ZFS 是一个可扩展的高级文件系统,它支持更好的数据压缩、写时复制、快照、数据完整性验证、自动修复等。在 Ubuntu 19.10 Linux 操作系统中,你可以选择使用 ZFS 文件系统。
  • Ubuntu 19.10 的另一个重大变化是预装了带有安装 ISO 文件的 NVIDIA 驱动程序。对于一些游戏玩家和需要处理机器学习模型的开发人员来说,在使用上将变得更加容易。

关键词: Ubuntu, 19.10

RHEL 8.1 添加新功能支持内核热补丁

RHEL 8.1 now has full support for live kernel patching. You can now update your Linux kernel for Critical or Important Common Vulnerabilities and Exposures (CVEs) without needing to go to the trouble of a system reboot. This keeps your system up and running even serious security bugs are patched behind the scenes.

在 Red Hat 发布其旗舰操作系统的最新主要更新 Red Hat Enterprise Linux(RHEL)8 六个月后,第一个次要版本 RHEL 8.1 对可管理性,安全性和混合云性能进行了重大改进。 RHEL 8.1 现在完全支持实时内核修补。现在,您可以针对严重或重要的常见漏洞和披露(CVE)更新 Linux 内核,而无需重新启动系统。这可以使得您的系统在后台修补严重的安全问题过程中仍然保持正常运行。

关键词: RHEL, live kernel patching

Microsoft 拥抱 OpenJDK

Microsoft has climbed aboard the OpenJDK project to help with the development of open source Java. In a message posted on an OpenJDK mailing list, Microsoft’s Bruno Borges, principal product manager for Java at the company, said Microsoft’s team initially will be working on smaller bug fixes and back ports so it can learn how to be “good citizens” within OpenJDK. Microsoft and subsidiaries are “heavily dependent” on Java in many aspects, Borges said. For one, Java runtimes are offered in Microsoft’s Azure cloud.

微软宣布加入 OpenJDK 项目,将为开发开源 Java 做贡献。 微软公司首席 Java 产品经理 Bruno Borges 在 OpenJDK 的邮件列表中发布消息说,微软团队最初将致力于较小的错误修复和反向移植,以便可以学习如何成为 OpenJDK 的 “合格参与者” 。Borges 说,微软及其子公司在许多方面 “高度依赖” Java。譬如,Java 运行库在微软的 Azure 云中被大量运用。

关键词: Microsoft, OpenJDK

Google 发起 OpenTitan 项目,致力于推动开源安全芯片设计

Google has partnered with several tech companies to develop and build OpenTitan, a new, collaborative open-source secure chip design project. The aim of the new coalition is to build trustworthy chip designs for use in data centers, storage and computer peripherals, which are both open and transparent, allowing anyone to inspect the hardware for security vulnerabilities and backdoors.

Google 已与多家科技公司合作开发和构建 OpenTitan,这是一个新的,以协作方式开展的开源安全芯片设计项目。新联盟的目的是为数据中心,存储和计算机外围设备等提供可信赖的芯片设计,这些设计都是开放和透明的,允许任何人检查硬件中的安全漏洞和后门。

关键词: Google, OpenTitan

联系我们

资讯内容部分来自 “LWN.net“。如果您对某些 LWN 文章感兴趣(譬如希望获得全文翻译的)请扫描二维码加微信联系我们:

tinylab wechat



Read Album:

Read Related:

Read Latest: