【IT168 评论】就在上个月末,经历了八个RC候选版之后,Linux内核4.2终于发布了正式版。这是近期最为重大的版本之一,单单是新代码就增加了100万行,而且带来大量的新硬件设备支持,同时还移除了大约25万行老旧代码。
Linux操作系统诞生于1991年10月5日(这是第一次正式向外公布时间)。作为一个算是比较古老的系统,它的内核也被更新了多次,当前最新内核版本是4.2 ,4.2的最大特色是免重启更新内核和补丁(整合了Red Hat的kpatch和SUSE的kGraft),早在2013年,Torvalds就在考虑简化版本号,直接把3.20跳过,改名4.0。但是据说2.6升到3.0,以及3.19升到4.0这之间都没什么太大的原因。
在我们的ChinaUnix论坛中,小编注意到网友们对Linux内核的更新展开了讨论,于是作为一个门外汉,抱着学习的态度,试着整理了一些内容,希望对同我一样的初学者起到一定的帮助,也欢迎熟悉Linux内核的大神们前来指导!
新内核新特性 你为何还不升?
Linus Torvalds在lkml.org上写到:
从这段话中所表达出的意思可以了解,Linux Kernel 4.3版本已经开始进行,Linus Torvalds也收到了一些新的请求,但具体如何改进还要进一步研究确定。那么Linux内核4.2版本都有些什么特点呢?
●重写英特尔的x86汇编代码
●支持新的ARM板和SoC
●对F2FS的per-file加密
●AMD GPU内核DRM驱动程序
●对Radeon DRM驱动的VCE1视频编码支持
●初步支持英特尔Broxton Atom SoC
●支持ARCv2和HS38 CPU内核
●增加了队列自旋锁的支持
●许多其他的改进和驱动更新
虽然4.2版本的新特性很多,但还是有部分网友较为保守,没有选择升级,原因也是各个精彩!网友jixuuse就是其中一位,他很严肃的提到:“用于生产的系统基本不会升级内核,如果有安全公告,最多升一下相关程序。升级内核是对自己的职业生涯和公司业务不负责。linux的毛病用过的都知道,各种互相不兼容。“小编觉得,个人应用到不用在意现在的内核是哪个版本,应用的方便、软件安装的简化、系统部署的难易程度、硬件的更新才是该被关注的。升级内核肯定有好处,但如果升级内核造成了原来的应用不可用,升级成本高,升级带来的好处甚微,那么就不要升级。
网友fire_cpp觉得没有必要更新,他说道:“桌面我都选择长期支持版本,何况服务器。免重启这种特性,目前不是很需要。但我也反对为保持稳定一味使用旧版本的做法,实际上这是懒。”
网友ohyeath的观点:应用需求推动内核为应用服务,才会出现的内核变化,linux内核的更新,也是对应不同年代对服务器市场应用需求的变化的结果。
为什么Linux的内核更新这么慢?
Linux作为开源的操作系统,更新的慢的原因是大家参与度高,在开发的时候已经考虑很多因素,Linux内核始终都在演化过程中,许多新技术都能够及时的融入进去。在一段时间内不需要进行一次大的改革更新,所以更新的很慢。
其实Linux的内核是比较稳定的。如果没有特别需要新特性的情况下可以不用更新内核。网友renxiao2003说道,曾经自己手动编译更新过一次内核,很麻烦。
小编认为更新慢的原因是在每个内核发布周期,平均会有 60 到 80 个新增或升级驱动中加入。另一个主要更新是实时内核补丁,这个特性在 4.0 版首次引进,好处是系统管理员可以在生产环境中打上内核补丁而不需要重启系统。当补丁所需要的元素都已准备就绪,打补丁的过程会在后台持续而稳定地进行。
Linux 内核的发展方向展望
过去一年中,安全问题在开源社区是一个很热的话题,这都归因于那些引发高度关注的事件,比如 Heartbleed 和 Shellshock。“我毫不怀疑 Linux 代码对这些方面的忽视会产生一些令人不悦的问题”, Jonathan Corbet 在今年的 LinuxCon 的内核年度报告上提到。
他强调说过去 10 年间有超过 3 百万行代码不再被开发者修改,而产生 Shellshock 漏洞的代码的年龄已经是 20 岁了,近年来更是无人问津。
另一个关注点是 2038 问题,Linux 界的“千年虫”,如果不解决,2000 年出现过的问题还会重现。2038 问题说的是在 2038 年一些 Linux 和 Unix 机器会死机(LCTT译注:32 位系统记录的时间,在2038年1月19日星期二晚上03:14:07之后的下一秒,会变成负数)。Corbet 说现在离 2038 年还有 23 年时间,现在部署的系统都会考虑 2038 问题。
Linux 已经启动一些初步的方案来修复 2038 问题了,但做的还远远不够。“现在就要修复这个问题,而不是等 20 年后把这个头疼的问题留给下一代解决,我们却享受着退休的美好时光”。
物联网(IoT)也是 Linux 关注的领域,Linux 是物联网嵌入式操作系统的主要占有者,然而这并没有什么卵用。Corget 认为日渐臃肿的内核对于未来的物联网设备来说肯定过于庞大。
现在有一个项目就是做内核最小化的,获取足够的支持对于这个项目来说非常重要。
“除了 Linux 之外,也有其他项目可以做物联网,但那些项目不会像 Linux 一样开放”,Corbet 说,“我们不能指望 Linux 在物联网领域一一直保持优势,我们需要靠自己的努力去做到这点,我们需要注意不能让内核变得越来越臃肿。