Linux 4.0 来了,不再需要重启

伯乐在线注:2015年4月13日,Linus Torvalds 正式提交了 Linux 的新版本,标志着 Linux 4.0 正式版发布。本文整理了几篇相关文章。


下面内容来自 CSDN 总编刘江

Linus Torvalds 刚才已经在内核开发的Git系统中按下了按钮,代号为“Hurr durr I’ma sheep”的Linux 4.0终于问世了。为了应景,他还给自己起了个绰号叫”we’re all sheep”,放在名字中间。有意思的是,对应的内核网站也已经开始运作:https://imasheep.hurrdurr.org/

http://img.my.csdn.net/uploads/201504/13/1428891749_9118.png

这是2.6.34/2.6.35(代号Sheep on Meth)之后第二次以绵羊为名。Linux内核的开发代号历来都比较怪异,而且似乎没啥规律(相比之下,Ansible每个主要版本代号都是Van Halen乐队的一首曲子,非常齐整):3.0叫Sneaky Wease,2.6叫Flesh-Eating Bats with Fangs,还有Stable Penguin、Greased Turkey、Brown Paper Bag、Sliding Snow Leopard……以至于专门有个Wikipedia列表条目收集这些怪名字。

早在2013年,Torvalds就在考虑简化版本号,直接把3.20跳过,改名4.0。原因是别再出现2.6.39,连自己都搞不太清楚了。(实际上2.x系列比较疯狂的版本号包括2.6.32.65,2.6.39.4,而3.x则有3.0.101、3.4.106、3.10.73这种悍将。)今年2月他还专门在Google+上做过调查

Torvalds在发布声明中说:

我决定按常规进度发布4.0,因为确实没有什么问题了。

Linux 4.0无论从linux-next还是最终的大小来看,都是一个很小的新版本,但小显然是相对的。非合并提交仍然超过1万。但肯定有版本比这大(linux-next v4.1将是较大的版本之一)。

……4.0是一个稳定版本,没有什么实验性的新特性。相比以前基于特性的版本发布,我更喜欢按时间来。

也就是说,4.0其实并没有特别的里程碑的意义。它本来就是3.20改名而已。

但Torvalds还是特别指出4.0比较有意思的地方:总提交数跨越了50万这一里程碑,而且Git对象也超越了400万。而3.0这两方面对应的数字分别是25万和200万。相比之下,原来在使用BitKeeper管理代码的三年间,总共才6.5万次提交。是的,内核的开发在不断加速中。

之前phoronix网站的几篇文章已经比较详细地列举过Linux 4.0-rc1的改进。其中最引人注目的特性是内核热补丁,也就是无需重启系统就能给内核打上补丁。整合了Red Hat的kpatch和SUSE的kGraft

此外主要是硬件和驱动方面,包括对DRM/图形驱动、对各种ARM、IBM z13、Sony PlayStation 3等;还有文件系统方面的pNFS块服务器支持、针对Btrfs的RAID 5/6改进、VirtIO 1.0等。

lwn.net的高级编辑Jonathan Corbet在Linux Weather Forecast上对4.0新特性是这么总结的:

  • 内核热补丁的基本支持。(参考文章
  • 去除了系统调用remapfilepages(),但这一功能的仿真还在,因此不会影响应用。
  • 内核对大型非易失内存设备的支持大大改善。(参考文章
  • lazytime mount选项可以更有效和准确地记录文件访问时间。(参考文章
  • 内核地址错误检查程序KASan是一个重要的新工具。(参考文章)(KASan是Google开源的工具,GitHub地址说明

 


Linux 4.0 主要包括以下特性: (摘自威锋网

——“实时内核补丁”特性,该特性由 Red Hat 的Kpatch 和 SUSE 的 kGraft 合并而来,可以实时修补内核,而无需重启;

——改进图形支持,Radeon DRM 驱动支持显示端口的音频输出,改良了风扇控制。HSA AMDKFD 开始对 Carrizo APU 进行开发;Intel 图形驱动方面,Skylake 支持已经基本成型;对 N 系显示方案的支持也有所改进。

——储存系统方面的改进,包括 pNFS 、Btrfs RAID 5/6 的相关支持, OverlayFS 也加入了一些新功能。

——此外,新内核支持更多硬件,包括 Intel Quark SoC 以及更多 ARM 设备、IBM z13,改进了东芝系列笔记本、罗技输入设备的支持。


3月份的一篇资讯(来自 开源中国

Linux 4.0 里,你可能再也不需要重启你的操作系统。

在大多数的服务器或者数据中心里,喜欢用linux的一个原因是你不需要频繁的进行重启操作。诚然,某些关键性的补丁必须要进行重启,但你也可以等到数月后再做此操作。现在,得益于 linux 内核的最新更新 你也许可以数年间都不用重启。

感谢 Ksplice 项目,使得这一特性在2009年就可以实现。此项目在对原始和打过补丁的内核进行比较后,使用一个定制的内核模块将新的代码加入到运行内核中。在支持Ksplice的内核中,每个将被修补的功能都携带有一套特殊标志用以进行区分。Ksplice进程会监视正在修补该函数的代码是不是当前不在使用,当当,打上补丁,你的服务器上继续运行。

Oracle 在 2011 年收购了 Ksplice 项目,并将其作为 RHEL 的一项可选服务,使其应用于它自己的Oracle Linux 中(一个RHEL(Red Hat Enterprise Linux ) 的克隆版本)。这将此项技术隔离于其他企业版和服务器版 Linux 之外。

后来 KemelCare 为大部分企业发行版 Linux 发布了一项提供非启动式补丁服务。此程序作为专利软件,只能通过按月支付来享有此服务。这从而很难满足大多数Linux系统管理员。

所以,Red Hat 和 SUSE 开始着手完全开源的为 Linux 安装严重补丁的非重启方案。Red Had 的项目命名为 kpatch, SUSE的项目命名为 kGraft.

两个公司采用了不同的途径。Kpatch 发布了一个 stop_machine() 命令。之后,它着眼于现有的栈处理去使用ftrace,如果打补丁可以被做得很安全,它会重定向运行着的代码到补丁函数,而后就删除现在过时的代码。

比过去好的是,数据中心被运行在世界各处,但是它们中的许多都需要一个21世纪式的重启。今天的数据中心必须更有效率,更有鲁棒性和灵活性,这超过以往任何时候。我们检查怎样才能运行好你的数据中心,与之相对的是外包到一个云或者一个服务提供商,或是采取混合的方式。

Kgraft 一直使用ftrace,尽管它是工作在线程级的。当一个老的函数被调用,它会定位到线程的一个点,然后将其切换到新的函数。

虽然最终结果相同,即操作系统在打补丁的时候保持运行,但还是有显著的性能差异的。当kGraft可能花费数分钟的时候,Kpatch可以只需要1到40毫秒,但他们从不会停机。

在2014年10月召开的linux 开发者大会上,两个小组合二为一并且开始致力于联合最好的程序使linux打补丁时不再重启。实际上,他们最终是把kpatch和kGraft都丢进了Linux内核。
Jiri Kosina,一位SUSE软件工程师和Linux内核开发者解释说,Linux内核的热补丁将会“为函数提供一个基本基础设施” 热补丁(例如:代码重定向),包括为了包含实际补丁的内核模块的API(应用程序接口),和为了在用户空间可以操作补丁的API/ABI(应用二进制接口),这是“相对简单和简约的,因为它尽可能多的利用了已有的内核基础(名为ftrace)。它也是自包含的,在某种意义上说,它不在任何其他的内核子系统中调用自身(它甚至不接触其他任何代码)”

Linux 4.0 RC 版现在已经放出,Kosina 声称:”现在实施的x86架构只是作为一个参考架构,对于powerpc, s390 和 arm 的支持工作已经在进行中了“。确实,对于这些架构的支持源代码已经在 Live Patching Git code 上了。

简单的代码仅仅只是开始,你的发行版将通过补丁来支持和使用它。随着 Red Hat 和 SUSE 的支持,live 补丁将很快默认在所有商业Linux发行版中。

收藏 1 评论

相关文章

可能感兴趣的话题



直接登录
最新评论
跳到底部
返回顶部