精英联盟总队|最详细的Linux简史——Linux大神带你领略它的前世今生( 二 )
Linux内核发展简史Linux内核从最初发布的0.01版直到4.4.x版 , 经历了“史前时代”“奇偶时代”“快速演进时代”和“极速演进时代”四个阶段(如图1所示) 。
图1 Linux内核版本演进图
1. 史前时代(0.01~1.0.0)
版本更迭过程为:
其中重要的版本有:
- 0.01:第一个版本;
- 0.02:第一个公开发布的版本;
- 0.11:《Linux内核完全注释》使用的版本 。
这个时期的版本号用a.b.c表示 , 其中a为主版本号 , b为次版本号 , c为修订号 。
版本号变更的原则是:发生重大改变时升级主版本号 , 发生非重大改变时升级次版本号;次版本号为奇数表示开发版 , 次版本号为偶数表示稳定版;稳定版和开发版在修订号上各自升级演进 , 开发版达到稳定状态时 , 发布下一个稳定版 。
比如1.0.x在尽量不引入新功能的前提下不断升级;同时1.1.x在不断开发新功能的状态下不断升级;当1.1.x的开发到足够稳定时 , 转变成1.2.x成为稳定版;同时新的开发版1.3.x诞生……
稳定版:1.0.x, 1.2.x, 2.0.x, 2.2.x, 2.4.x, 2.6.x
开发版:1.1.x, 1.3.x, 2.1.x, 2.3.x, 2.5.x
其中重要的版本有:
- 1.0.0:第一个正式版本 , 支持模块化 , 开始支持网络;
- 1.2.0:开始支持非X86架构;
- 2.0.0:开始支持对称多处理(SMP);
- 2.2.0:开始被各种发行版大规模应用;
- 2.4.5:开始有“中国制造”的代码(如LVS等);
- 2.4.18:《深入理解Linux内核(第2版)》所使用的版本;
- 2.6.0:开始响彻天下:完全可抢占 , O(1)调度器 , SYSFS , X86_64支持 , NUMA支持 , NPTL支持……
从2.6.11开始 , Linux内核界发生了两件大事:第一件大事是抛弃了BitKeeper , 转而开始用git管理源代码;第二件大事是抛弃了奇偶版本法 , 转而使用a.b.c.d表示 , 其中a为主版本号 , b为次版本号 , c为主修订号 , d为次修订号 。 主修订号c的升级既包括新特性引入 , 也包括缺陷修订(Bugfix) , 次修订号d的升级只包括Bugfix 。
这个阶段开发速度加快 , 版本号即便第三段相邻 , 差别也很大 。 在奇偶时代 , 2.4.5和2.4.6的差异不是很大;而在快速演进时代 , 2.6.36和2.6.37的差别会非常大 , 甚至堪比2.4.x和2.5.x之间的差异 。
在演进如此迅速的时代 , 如果继续采用奇偶版本法会有什么问题?
首先 , 2.7版本开发持续时间会很长 , 不到2.8发布时 , 2.7加入的新特性无法得到利用 。 其次 , 2.7版本新特性同样很难后向移植(Backport)到2.6 , 因为代码差异太大 。
这个阶段的重要版本有:
- 2.6.11.0:《深入理解Linux内核》第三版所使用的版本;
- 2.6.20.0:开始支持KVM虚拟化技术;
- 2.6.23.0:开始支持龙芯2E , 引入CFS调度器;
- 2.6.24.0:i386和x86_64合并成x86架构 , 缺省使用SLUB内存分配器;
- 2.6.33.0:开始支持龙芯2F , 在MIPS系列处理器上支持内核压缩;
- 2.6.38.0:引入AutoGroup机制 , 大幅提升桌面应用体验 , 引入透明巨页(THP) 。
在快速演进阶段 , 内核版本号的a.b一直保持为2.6没变 , 完全可以合二为一 。 与此同时 , 参与Linux内核开发的个人与单位越来越多 , 开始进入极速演进时代 。 在这个阶段 , 版本号回归a.b.c表示法 , a为主版本号 , b为次版本号 , c为修订号 。
推荐阅读
- 骚狐君|他的存在对鲨鱼产生了威胁,和平精英人气榜公布!牧童稳坐第一
- nba|NBA太疯狂!2组1-1,1组2-2,联盟第1最悲惨!黑马逆袭,成赢家
- 大华联盟|朱元璋下令锯开棺材 6个大字朱元璋脸色大变,刘伯温下葬后
- 英雄联盟|余霜分手后开启奔放模式,一天连晒N组自拍,网友直呼太美了!
- 卡玛拉|《复仇者联盟》:不只是游戏,更是一部优秀的电影
- 和平精英|??“吃鸡”体验服已无更新,暗夜危机2.0,或将被1款新游戏代替!
- 英雄联盟|LOL九周年奖励发放,玩家开始“比惨大会”,你是欧皇还是非酋?
- 悠游侠|漫威复仇者联盟装备怎么升级 装备等级提升方法介绍
- 和平精英|和平精英三大一哥宣告诞生:王小歪排名第一,日赚1W3!
- 英雄联盟|LEC解说强行给帽皇树敌:不管你们怎么说,Caps都会打爆左手!