Linux 4.0 发布——我是一只羊
内核 Linux
![](/data/attachment/album/201504/13/225922hlubukzpd9n7k1ab.jpg)


就在周日，Linus 如期发布了 Linux 4.0，这个版本的代号被称为“**[Hurr durr I'ma sheep](https://imasheep.hurrdurr.org/)**”：



> 
> 日期： 2015/4/12 15:41:30 周日 -0700  
> 主题： Linux 4.0 发布  
> 来自： 我是一只羊
> 
> 
>   
> 那么，我决定按照正常的计划发布 4.0 了，因为没有出现什么问题，而且我下周会去一个大学访问，我希望这不会非常影响到合并窗口，希望吧。
> 
> 
> 从 linux-next 分支和最终大小上看，Linux 4.0是一个相当小的发布版本（LCTT 译注：linux-next是Stephen Rothwell创造的分支，主要用于放一些将在下一周期合并进内核主支的补丁）。但是这个“小”是相对而言的，它仍然包含了超过一万个的非合并提交。不过，我们肯定会有更大的发布版本（估计之后的 linux-next 4.1 会更大）。
> 
> 
> 一切都很好，这完全符合“v4.0 应该是一个**稳定的**发布版本”的要求，而不是带有很多新的体验性功能的发布版本。我个人非常喜欢按照时间进行发布，而不是过去那种有了重大功能才进行发布的做法。
> 
> 
> 也就是说，4.0里面没有什么特别有趣的东西。从 git 上的统计来看，这个发布版本不仅仅达成了 50 万个提交数的新成就，也跨越了 400 万个 git 对象数量的限制。有趣的是（从数字的角度看），Linux 3.0 时我们超过了 25 万提交数和 200 万个 git 对象数量，看起来真有规律（其实完全是巧合）。
> 
> 
> [ 另外一个趣事：我们原来使用的 BK 版本库（LCTT 译注：bitkeeper）有着提交数用16位二进制存储的限制，所以25万提交数量已经很多了，因为我们使用 BK 的那些年就提交了将近65000次。当然，我们使用 BK 才3年，而换到 git 近十年了。无论如何，这说明我们的开发工作快了**许多**。]
> 
> 
> 就功能而言，4.0 并没有什么特殊的。新内核的补丁主要是基础架构方面的，实际上，这并不是版本号改变的原因，我们可能在其它的（小）版本中有更大的改变。所以，这只是一个“按部就班”的发布而已。
> 
> 
> 弄下来体验一下吧，
> 
> 
> 我们全是羊 —— Linus Torvalds 
> 
> 
> 


4.0虽说是没有什么特别新的功能，不过还是有几个值得关注的亮点：


* Live Patching——不用重启为内核打补丁的机制；
* parallel NFS (pNFS)子系统支持FlexFile布局；
* ubifs文件系统支持多队列块层；
* Btrfs 文件系统更新，支持 Intel Quark X1000 SoC和基于MIPS32 Release 6的处理器；
* VirtIO 1.0；
* 可信计算TPM 2.0支持；

OK
Messages in this thread | ![/](/images/icornerl.gif) | Date | Sun, 12 Apr 2015 15:41:30 -0700 | Subject | Linux 4.0 released | From | Ima Sheep <> |
| |
So I decided to release 4.0 as per the normal schedule, because there really weren't any known issues, and while I'll be traveling during the end of the upcoming week due to a college visit, I'm hoping that won't affect the merge window very much. We'll see.
Linux 4.0 was a pretty small release both in linux-next and in final size, although obviously "small" is all relative. It's still over 10k non-merge commits. But we've definitely had bigger releases (and judging by linux-next v4.1 is going to be one of the bigger ones).
Which is all good. It definitely matches the "v4.0 is supposed to be a _stable_ release", and very much not about new experimental features etc. I'm personally so much happier with time-based releases than the bad old days when we had feature-based releases.
That said, there's a few interesting numerological things going on with 4.0. Looking at just the statistics in git, this release is not just when we cross half a million commits total, but also cross the 4 million git object limit. Interestingly (if you look for numeric patterns), Linux 3.0 was when we crossed a quarter million commits and 2 million git objects, so there's a nice (and completely unintentional) pattern there when it comes to the kernel git repository.
[ Another quick historical numerological footnote: the old historical BK tree was getting close to the 16-bit commilt limit that BK originally used to have. So that whole "quarter of a million commits" is actually quite a lot. During all of the BK years we only got 65k commits. Of course, we only used BK for three years, and we've now been on git for almost exactly ten years, but still - it shows how the whole development process has really sped up a _lot_ ]
Feature-wise, 4.0 doesn't have all that much special. Much have been made of the new kernel patching infrastructure, but realistically, that not only wasn't the reason for the version number change, we've had much bigger changes in other versions. So this is very much a "solid code progress" release.
Go get it and enjoy,
Linus "we're all sheep" Torvalds
| ![\](/images/icornerr.gif) |