Linux内核相关演进历史。
一.Linux 内核简介
Linux 是最受欢迎的自由电脑操作系统内核。它是一个用C 语言写成,符合POSIX标准的类Unix 操作系统。Linux 最早是由芬兰黑客Linus Torvalds 为尝试在英特尔x86架构上提供自由免费的类Unix 操作系统而开发的。该计划开始于1991年,这里有一份Linus Torvalds 当时在Usenet 新闻组comp.os.minix 所登载的贴子,这份著名的贴子标志着Linux 计划的正式开始。
在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计
划无偿提供帮助。
技术上说Linux 是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux 内核的完整操作系统叫作Linux 操作系统,或是GNU/Linux。
Linux 是一个宏内核(monolithic kernel)系统。设备驱动程序可以完全访问硬件。Linux 内的设备驱动程序可以方便地以模块化(modularize)的形式设置,并在系统运行期间可直接装载或卸载。
Linux 内核组成部分:
进程管理(process management)、定时器(timer)、中断管理(interrupt management)、内存管理(memory management)、模块管理(module management)、虚拟文件系统接口(VFS layer)、文件系统(file system)、设备驱动程序(device driver)、进程间通信(inter-process communication)、网络管理(network management)、系统启动(system init)等操作系统功能的实现。
二.Linux 内核版本号
1.第一种方式
内核是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。
Linux 的版本号分为两部分,即内核版本与发行版本。内核版本号由3个数字组成:r.x.y。各数字含义如下:
r:目前发布的内核主版本。
x:偶数表示稳定版本;奇数表示开发中版本。
y:错误修补的次数。
一般来说,x 位为偶数的版本是一个可以使用的稳定版本,如2.4.4;x 位为奇数的版本一般加入了一些新的内容,不一定很稳定,是测试版本,如2.1.111。
2.第二种方式
major.minor.patch-build.desc
2.26.35-rc5
说明如下:
**major ** | **minor ** | patch | build | desc |
---|---|---|---|---|
表示主版本号,有结构性变化时才变更 | 表示次版本号,新增功能时才发生变化;一般奇数表示测试版,偶数表示生产版 | 表示对次版本的修订次数或补丁包数 | 表示编译(或构建)的次数,每次编译可能对少量程序做优化或修改,但一般没有大的(可控的)功能变化 | 用来描述当前的版本特殊信息;其信息由编译时指定,具有较大的随意性,但也有一些描述标识是常用的 |
对于desc的说明如下:
rc | **smp ** | pp | **EL ** | **mm ** | **fc ** |
---|---|---|---|---|---|
(有时也用一个字母r),表示候选版本(release candidate),rc 后的数字表示该正式版本的第几个候选版本,多数情况下,各候选版本之间数字越大越接近正式版 | 表示对称多处理器(Symmetric MultiProcessing) | 在Red Hat Linux 中常用来表示测试版本(pre-patch) | 在Red Hat Linux 中用来表示企业版Linux(Enterprise Linux) | 表示专门用来测试新的技术或新功能的版本 | 在Red Hat Linux 中表示Fedora Core |
如果在生产机上,最好不要安装小版本号是奇数的内核。同样,pre-patch 的内核
版本也不建议安装在生产机上。
三、Linux内核的发布历史
内核是Linux 系统的重要组成部分,每一次内核新版本的发布都受到Linux 爱好
者的关注,下面表格中列出了Linux 内核的重要发展事件。
内核版本号 | **时间 ** | **内核发展史 ** |
---|---|---|
0.00 | 1991.2-4 | 两个进程分别显示AAA BBB |
0.01 | 1991.9 | 第一个正式向外公布的Linux 内核版本 |
0.02 | 1991.10.5 | Linus Torvalds 将当时最初的0.02内核版本发布到了Minix 新闻组,很快就得到了反应。Linus Torvalds 在这种简单的任务切换机制上进行扩展,并在很多热心支持者的帮助下开发和推出了Linux 的第一个稳定的工作版本。 |
0.03 | 1991.10.5 | |
0.10 | 1991.10 | Linux0.10版本内核发布,0.11版本随后在1991年12月推出,当时它被发布在Internet 上,供人们免费使用。 |
0.11 | 1991.12.8 | 基本可以正常运行的内核版本 |
0.12 | 1992.1.15 | 主要加入对数学协处理器的软件模拟程序 |
0.95(0.13) | 1992.3.8 | 开始加入虚拟文件系统思想的内核版本 |
0.96 | 1992.5.12 | 开始加入网络支持和虚拟文件系统 |
0.97 | 1992.8.1 | |
0.98 | 1992.9.29 | |
0.99 | 1992.12.13 | |
1.0 | 1994.3.14 | Linux1.0版本内核发布,使用它的用户越来越多,而且Linux 系统的核心开发队伍也建起来了。 |
1.2 | 1995.3.7 | |
2.0 | 1996.2.9 | |
2.2 | 1991.1.26 | |
2.4 | 2001.1.4 | Linux2.4.0版本内核发布。 |
2.6 | 2003.12.17 | Linux2.6版本内核发布,与2.4内核版本相比,它在很多方面进行了改进,如支持多处理器配置和64位计算,它还支持实现高效率线和处理的本机POSIX 线程库(NPTL)。实际上,性能、安全性和驱动程序的改进是整个2.6.x 内核的关键。 |
2.6.15 | 2006 | Linux2.6.15版本内核发布。它对IPv6的支持在这个内核中有了很大的改进。PowerPC 用户现在有了一个用于64 位和32 位PowerPC 的泛型树,它使这两种架构上的内核编辑成为可能。 |
2.6.30 | 2009.6 | 改善了文件系统、加入了完整性检验补丁、TOMOYO Linux 安全模块、可靠的数据报套接字(datagram socket)协议支持、对象存储设备支持、FS-Cache 文件系统缓存层、nilfs 文件系统、线程中断处理支持等等。 |
2.6.32 | 2009.12 | 增添了虚拟化内存de-duplicacion、重写了writeback 代码、改进了Btrfs 文件系统、添加了ATI R600/R700 3D 和KMS 支持、CFQ 低传输延迟时间模式、perf timechart 工具、内存控制器支持soft limits、支持S+Core 架构、支持Intel Moorestown 及其新的固件接口、支持运行时电源管理、以及新的驱动。 |
2.6.34 | 2010.5 | 添加了Ceph 和LogFS 两个新的文件系统,其中前者为分布式的文件系统,后者是适用于Flash 设备的文件系统。Linux Kernel 2.6.34的其他特性包括新的Vhost net、改进了Btrfs 文件系统、对Kprobes jump 进行了优化、新的perf 功能、RCU lockdep、Generalized TTL Security Mechanism (RFC 5082)及privateVLAN proxy arp (RFC 3069)支持、asynchronous 挂起恢复等等。 |
2.6.36 | 2010.10 | Tilera 处理器架构支持、新的文件通知接口fanotify、Intel显卡上实现KMS 和KDB 的整合、并行管理工作队列、Intel i3/5平台上内置显卡和CPU 的智能电源管理、CIFS 文件系统本地缓存、改善虚拟内存的层级结构,提升桌面操作响应速度、改善虚拟内存溢出终结器的算法、整合了AppArmor 安全模型(注:与SELinux 基于文件的标注不同,AppArmor 是基于路径的)。 |
发布时间: 2021-06-03
最后更新: 2021-06-03
本文链接: https://juoyo.github.io/posts/ff311587.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!