Gavin_wang
作者Gavin_wang联盟成员·2018-04-16 10:59
存储工程师·git

Linux发展现状及版本线路图

字数 6222阅读 3648评论 1赞 11

全球TOP500超算9成使用linux系统,国外版本的发展优于国内版,使用最多的是RedHat、SUSE、Ubuntu,均提供桌面版和服务器版两种不同的版本,其中Linux服务器版发展更成熟,而linux核心技术掌握在国外,国内华人的贡献率大概只有5%,随着云计算和大数据等新兴技术越来越快的增长,IBM小型机和大型机越来越多的支持Linux,ARM上开始普及Linux,所以Linux肯定会是未来的主流发展方向。本文对Linux复杂的版本规范进行了梳理,内容全部来源互联网。

一、 Linux 内核版本号命名不同的阶段

内核版本采用格式:A.B.C.D(A是从0开始,因为内核是用C语言开发,符合C语言的习惯吧)
从内核第一个0.01 版本发布到 1.0 版本。接下来是 0.02, 0.03, 0.10, 0.11, 0.12 (第一个 GPL 版本), 0.95, 0.96, 0.97, 0.98, 0.99,最后才到 1.0。
1、数字 A 是内核版本号,起初版本号只有在代码和内核的概念有重大改变的时候才会改变(如1.0和2.0版都是有重大变化的),目前A发展到4.x版本,主要时点如下:
1994年的 1.0 版
1996年的 2.0 版(2004年2.6版本影响范围最广且持续更新了7年)
2011年的 3.0 版
2015年的 4.0 版(目前最新Linux Kernel为4.16 )
2、数字 B 是内核主版本号,主版本号根据传统的奇-偶系统版本编号来分配:奇数为开发版,偶数为稳定版
3、数字 C 是内核次版本号,次版本号是无论在内核增加安全补丁、修复bug、实现新的特性或者驱动时都会改变
4、D代表一些bug修复,安全更新,添加新特性和驱动的次数。3.0版本之后是“A.B.C”格式
5、kernel官网(https://www.kernel.org/)会不停更新和发布内核版本,如下为最新版本:
微信图片_20180416104429.jpg

微信图片_20180416104429.jpg

注:

a、mainline 是主线版本,目前主线版本为 4.16-rc7。
b、stable 是稳定版,由 mainline 在时机成熟时发布,稳定版也会在相应版本号的主线上提供 bug 修复和安全补丁,但内核社区人力有限,因此较老版本会停止维护,而标记为 EOL (End of Life)的版本表示不再支持的版本。
c、longterm 是长期支持版,目前还处在长期支持版的有6个版本的内核,分别为4.14.32、4.9.92、4.4.126、4.1.51、3.16.56和3.2.101,长期支持版的内核等到不再支持时,也会标记EOL。如下为当前6个版本的EOL路线图:
微信图片_20180416104610.jpg

微信图片_20180416104610.jpg

二、 Linux 内核版本大事记

1、最常见的内核版本(也是使用最广的版本):2.6
2004年 2.6 版本发布之后, 所以大约七年的时间里,内核版本号的前两个数一直保持是“2.6”,第三个数随着发布次数增加,发布周期大约是两三个月。考虑到对某个版本的bug和安全漏洞的修复,有时也会出现第四个数字。最后定格在2.6.39
2、2.6的近40个版本中,内核的性能测试出现过多次反复,但整体是趋于稳定和进步的。(文件系统性能出现了几次反复无常的情况)
3、2.6.29、2.6.30无疑是最有趣的两个版本。前者是2.6.2x系列的终结之作,也是2009年的第一个正式版,带来了Intel内核模式设定、Btrfs文件系统试验性支持、SquashFS集成、WiMAX初步支持、eCryptfs文件名加密等众多新特性,但不少项目中却是最差劲的,而且落后的不是一星半点。随后的2.6.30又带来了NILFS2和EXOFS文件系统、IEEE 802.11w支持、Tomoyo、LZMA/BZIP2内核镜像压缩、完整管理架构等等,性能上不但一雪前耻,还有了很大的飞跃。
4、2.6.3x的每个版本都做了大量功能的增加,可以专门研究。
5、 2011年5月29号,Linus 宣布为了纪念Linux发布 20周年,在 2.6.39 版本发布之后,内核版本将升到 3.0 。
6、2013年11月3日,Linus Torvalds宣布发布Linux 3.12,同时还讨论了Linux 4.0发布计划:他考虑在Linux 3.19 之后发布Linux 4.0,和Linux 3.0发布策略相同,4.0并不代表着巨大变化,他只是想避免3.x 的版本号超过20,因为小版本号记忆起来比较简单。
7、2015年发布了Linux Kernel 4.0 最值得关注的特性应该就是内核补丁无需重启系统,该技术基于 Ksplice 实现。
TIPS:最近的3个内核版本分别为:
Linux Kernel 4.0(2015年4月13日)----无需重启,实时修补内核;新增对Intel Quark SoC 以及更多 ARM 设备的支持,改进对IBM z13的支持;改进图形和音频支持。
Linux Kernel 4.9(2016年12月11日)----改进了对新的 AMD Radeon GPU 的支持。对硬件和文件系统方面的改进也很多,涉及到 Btrfs、XFS、F2FS、OverlayFS 的 UBIFS 支持、FUSE 支持 POSIX ACL、OverlayFS SELinux 等方面。
Linux Kernel 4.15(2018年1月28日)----允许内核通过加密来实现对虚拟机内存的保护,AMD GPU 得到了极大的提升,这使得 Radeon RX Vega 和 Raven Ridge 显卡得到了内核主线版本的支持,并且也在 AMD 显卡中实现了 HDMI/DP 音频。

8、Linux内核查询命令为cat /etc/issue,如下:
微信图片_20180416104810.jpg

微信图片_20180416104810.jpg

三、Linux的发行版

目前很多创业公司都做开源项目的开发工作,同样会有很多公司去做Linux系统的开源发布,这就造成了Linux发行版本众多,目前发行版本分类如下:
微信图片_20180416105354.jpg

微信图片_20180416105354.jpg

其中影响力最大的有:Red Hat Enterprise Linux、SUSE和Ubuntu,以下分别梳理

A、Red Hat公司的Linux的发行版

红帽公司从Red Hat Enterprise Linux 5开始对企业版LINUX的每个版本提供10年的支持。Red Hat Enterprise Linux常简作RHEL。(Red Hat Enterprise Linux大约3年发布一个新版本)
注:
1、RHEL 是商业版本,并不提供免费下载和使用。需要购买Red Hat公司的商业服务才能合法取得,并得到商业支持。
2、可以使用RHEL的开源衍生版本来取得除了商业支持之外一样的软件,比如:CentOS。
最初,RHEL(企业版)基于Red Hat Linux(个人版),但使用较为保守的发布周期。后来版本都是基于Fedora。大约每六个版本的Fedora会有一个新版本的RHEL发布,因此:
Red Hat Linux 6.2 → Red Hat Linux 6.2E
Red Hat Linux 7.2 → Red Hat Enterprise Linux 2.1
Red Hat Linux 9 → Red Hat Enterprise Linux 3
Fedora Core 3 → Red Hat Enterprise Linux 4
Fedora Core 6 → Red Hat Enterprise Linux 5
Fedora 12 → Red Hat Enterprise Linux 6
Fedora 19 → Red Hat Enterprise Linux 7

最新的Red Hat Enterprise Linux 7.0 新特性有:

1、当前仅支持64位CPU:64-bit AMD、64-bit Intel、IBM POWER7 和 POWER8、IBM System z。(可以将32位操作系统作为虚拟机运行,包括之前的RHEL版本)
2、包含 Kernel 3.10 版本,支持 swap 内存压缩可保证显著减少 I/O 并提高性能,采用 NUMA (统一内存访问) 的调度和内存分配,支持 APIC (高级程序中断控制器) 虚拟化,全面的 DynTick 支持,将内核模块列入 黑名单,kpatch 动态内核补丁 (技术预览) 等等。
3、存储和文件系统方面,RHEL 7.0 使用 LIO 内核目标子系统,支持快速设备为较慢的块设备提供缓存,引进了 LVM 缓存 (技术预览),将 XFS 作 为默认的文件系统。
4、引进网络分组技术作为链路聚集的捆绑备用方法,对 NetworkManager 进行大量改进,提供动态防火墙守护进程 firewalld,加入 DNSSEC 域名系统安全扩展,附带 OpenLMI 用来管理 Linux 系统提供常用的基础 设施,引进了可信网络连接功能 等。
5、对 KVM (基于内核的虚拟化) 提供了大量改进,诸如使用 virtio-blk-data-plane 提高快 I/O性能 (技术预览),支持 PCI 桥接,QEMU 沙箱,多队列 NIC, USB 3.0 支持等。
6、引入 Linux 容器 Docker。
7、编译工具链方面,RHEL 7.0 包含 GCC 4.8.x、glibc 2.17、GDB 7.6.1。
包含 Ruby 2.0.0、Python 2.7.5、Java 7 等编程语言。
包含 Apache 2.4、MariaDB 5.5(替代了MySQL)、PostgreSQL 9.2 等。
8、在系统和服务上,RHEL 7.0 使用 systemd 替换了 SysVinit。
9、引入 Pacemaker 集群管理器,同时使用 keepalived 和 HAProxy 替换了负载均衡程序 Piranha。
10、对安装程序 Anaconda 进行了重新设计和增强,并使用 引导装载程序 GRUB 2。
TIPS:最近3个版本分别为:
RHEL7.3(2016年12月12日)----引入了关于Linux容器和物联网 (IoT) 的新能力。
RHEL7.4(2017年8月2日)----提供了新的自动化功能,旨在限制 IT 的复杂性,同时增强传统和云原生应用的工作负载安全性和性能,从而提供强大而灵活的操作系统,以解决跨物理服务器、虚拟机和混合、公共和多云覆盖的企业 IT 需求;Btrfs 将会继续留在 RHEL 7 中,RHEL 7.4 包含了多个来自上游的 Btrfs 更新,但这将是计划中的最后更新。
RHEL7.5Beta(2018年1月25日)----将红帽Ansible自动化与OpenSCAP整合在一起,增强了自动解决合规性问题的自动化程度,并使管理员能够在其环境中更有效地扩展策略;通过添加用于精确时间协议(PTP)和网络时间协议(NTP)的绑定接口的故障转移功能,可以提高合规性,以获得准确的时间戳和同步需求;引入了虚拟数据优化器(VDO)技术,旨在压缩和去重。
注:此处与内核版本对比,可以看出:如果需要最新的软件功能则需要安装更新的Linux发行版;如果需要支持最新的硬件则需要升级到更新的内核去驱动。
最后再查看下红帽官网的历史发展路线图:
微信图片_20180416105610.jpg

微信图片_20180416105610.jpg

B、Red Hat系的其他Linux的发行版

CentOS----基于同版本RHEL,但无RHEL上的闭源软件,而且在 RHEL 的基础上修正了不少已知的 Bug;CentOS 7 开始,CentOS版本号有三个部份,主要和次要版本号分别对应于RHEL的主要版本与更新包,并使用第三部分代表发行的时间。
如:当前最新版本是 CentOS 7.4-1708 (基于 RHEL 7.4)。
Oracle Enterprise Linux----旨在保持与RHEL完全兼容,包含了两个内核:
Unbreakable Enterprise Kernel - 紧随官方内核提供最新的功能和优化的性能和稳定性。
The Red Hat Compatible Kernel - 直接从 Red Hat Enterprise Linux 编译而来。

C、SUSE Linux的发行版

SUSE Linux原来是德国的一个Linux发行版本,2003年的时候被NOVELL收购,成为其旗下的一个产品。它开发的XGL是第一个真正意义上实现3D桌面效果的OS。
NOVELL公司有两种Linux版本:
openSUEE(个人使用,开源免费,openSUSE 是 SLES产品的系统基础,openSUSE项目的目标是:大大简化并开放开发和打包流程,以使 openSUSE 成为 Linux 黑客和应用软件开发者的首选平台。)
SUSE Linux Enterprise Server(SLES)目前主要使用版本如下:
SLES 11 的支持时间由原来的 10 年延长到 13 年(RHEL是10年,Ubuntu LTS是5年)
SLES 12基于Linux Kernel 3.12,跨平台虚拟化技术包含: Open–vm–tools是来自 Docker 开放源代码项目的容器引擎。

D、Ubuntu Linux的发行版

Ubuntu Linux是基于Debian发行版和GNOME桌面环境,而从11.04版起,Ubuntu发行版放弃了Gnome桌面环境,改为Unity,与Debian的不同在于它每6个月会发布一个新版本。(每年4月和10月发布新版本,版本号也是YY.MM的形式,其中偶数年的4月发布LTS版,长期支持版本服务时间为桌面版3年,服务器版5年)

Ubuntu的版本代号都是按照“形容词+动物”的格式命名,如下为Ubuntu历史版本一览表:
微信图片_20180416105835.jpg

微信图片_20180416105835.jpg

TIPS:最近3个版本分别为:
Ubuntu 16.04----采用Linux 4.4内核,对几乎所有系统应用都进行了升级,这些预装应用都导入了WebKit2引擎,同时不再使用原有的Ubuntu软件中心,代之以GNOME Stack里的GNOME Software,不过名字改成了Ubuntu Software,还默认加入了GNOME日历。
Ubuntu 17.04----采用Linux4.10内核,发行版代号到达字母表的末尾,Ubuntu 17.04的新安装将不再需要交换分区。
Ubuntu 17.10----采用Linux4.13内核,支持来自ARM,IBM,Dell,Intel等的最新硬件和外设;增加了对OPAL磁盘驱动器的支持和对磁盘I / O的大量改进;Kubernetes CDK支持最新的Kubernetes1.8,还可以实现与AWS的本地云集成,VMWare,Canal作为附加网络选择的本地部署和操作,以及对IBM Z和LinuxONE的支持。
注:文件兼容功能和Linux安全模块堆叠加强了Ubuntu在云和裸机容器功能方面的领先地位。(私有云和公有云厂商对Ubuntu使用率占比高的原因)

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

11

添加新评论1 条评论

wuwenpinwuwenpin软件开发工程师南京
2018-04-16 16:44
真的不错,感谢分享
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广