【转】Linux内核简介、版本号与发布历史
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
patchbuilddesc表示主版本号,有结构性变化时才变更
表示次版本号,新增功能时才发生变化;一般奇数表示测试版,偶数
表示生产版
表示对次版本的修订次数或补丁包数
表示编译(或构建)的次数,每次编译可能对少量程序做优化或修改,但一般没有大的(可控的)功能变化
用来描述当前的版本特殊信息;其信息由编译时指定,具有较大的随意性,但也有一些描述标识是常用的
对于desc的说明如下:
rcsmp
ppEL
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 BBB0.01
1991.9第一个正式向外公布的Linux 内核版本0.021991.10.5
Linus Torvalds 将当时最初的0.02内核版本发布到了Minix 新
闻组,很快就得到了反应。Linus Torvalds 在这种简单的任务
切换机制上进行扩展,并在很多热心支持者的帮助下开发和推出了Linux 的第一个稳定的工作版本。
0.031991.10.5
0.101991.10Linux0.10版本内核发布,0.11版本随后在1991年12月推出,当
时它被发布在Internet 上,供人们免费使用。
0.11
1991.12.8基本可以正常运行的内核版本0.121992.1.15主要加入对数学协处理器的软件模拟程序0.95(0.13)1992.3.8开始加入虚拟文件系统思想的内核版本0.961992.5.12开始加入网络支持和虚拟文件系统0.971992.8.1
0.981992.9.29
0.991992.12.13
1.0
1994.3.14
Linux1.0版本内核发布,使用它的用户越来越多,而且Linux 系统的核心开发队伍也建起来了。
1.21995.3.7
2.0
1996.2.9
2.21991.1.26
2.42001.1.4Linux2.4.0版本内核发布。2.6
2003.12.17
Linux2.6版本内核发布,与2.4内核版本相比,它在很多方面进
行了改进,如支持多处理器配置和64位计算,它还支持实现高效率线和处理的本机POSIX 线程库(NPTL)。实际上,性能、安全性和驱动程序的改进是整个2.6.x 内核的关键。
2.6.152006Linux2.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.342010.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 是基于路径的)。
从2.x到4.x,Linux内核这十年经历了哪些重要变革

嵌入式Linux
学习C语言请关注【嵌入式Linux】
前言
Linux内核网站:
https://www.kernel.org/
Linux各种升级更改:
https://en.wikipedia.org/wiki/Linux_kernel#Feature_history
https://kernelnewbies.org/LinuxChanges
各种Linux版本介绍:
https://kernelnewbies.org/LinuxVersions
在过去,2.0.x 2.2.x和2.4.x(偶数次要部分)是发布的稳定内核版本(所以我们项目中用到的内核版本大部分是偶数的),2.1.x,2.3.x和2.5.x是发生重大变化的开发系列。当2.1的开发完成时,它变为2.2,2.3变为2.4,2.5变为2.6。当2.6发布时,决定不创建新系列,而是继续开发2.6系列。在某些时候,决定在每个2.6.x版本上创建稳定的分支,然后会发布2.6.xy版本。其中一些成为长期版本。3.x和4.x是2.6系列的直接延续。
Linux现在发展越来越快,它在安全性方面得到增强,并在发布之后经历了一系列自动化测试。在今天的文章中,我们将了解在Linux高度普及的当下,IT专业人士应如何利用其支持从移动设备到服务器再到超级计算机的各类硬件。
Linux无处不在-从Android智能手机与平板电脑还有智能路由器(高通,MTK,rockchip,全志等等),,到企业服务器再到超级计算机。事实上,大多数IT专业人士都与Linux有着不解之缘。而随着28周岁的来临,Linux这款开源操作系统也迎来了新的发展阶段。
根据Linux基金会发布的声明,自2005年以来超过1300家企业为Linux内核作出过贡献。而企业雇主对于具备Linux技能的人员也相当青睐。
在2016年开源职位报告当中,87%的经理人表示很难找到优秀的开源人才,而79%表示自己正努力留存现有开源人才。根据求职网站Dice的统计结果,有400名招聘经理表示他们曾在过去一年中吸纳过开源专业人才,或者有计划在2016年年内雇用开源专家。
那么在Linux高度普及的今天,我们该如何把握Linux内核的未来发展方向?下面来看以下六条基本思路:
1.查看Linux内核版本
命令行查看
cat /proc/version
uname -a
下面网址列举了几种查看Linux版本的方法
http://www.linfo.org/find_kernel_version.html
2.Linux内核每小时迎来7.8次更新
自2015年2月8号到2016年7月24号,Linux内核进行了九次更新。在此期间,每个版本在九到十周之内会对Linux内核开发流程每小时平均进行7.8次更新。这意味着Linux能够在保持稳定性与实用性之余,继续提供持续的系统变更。
Linux已经成为过去25年当中变化规模最大的软件项目。它能够持续实现与时俱进,并同时提升功能、巩固安全并支持更多新设备,其中一项非常重要的新功能在于能够在系统运行时对内核进行补丁更新。
3.在持续变更之下长期保持稳定
面对如此可观的变化规模,保持内核长期稳定自然是件大难题,而Linux内核进程团队对其进行了极大完善。各内核版本必须在准备就绪之前尽可能找到其中的各类错误。因此,在九到十周的新内核发布周期当中,更新会以每周一个的节奏进行添加。当下一版本发布之后,此流程即告终止,并将注意力集中在当前版本当中。
在更新进行时,前后两套内核都将保持固定——这部分工作由Linux社区执行——而内核各发布版本的修复工作也同时执行。SUSE、Ubuntu、CentOS、红帽以及其他发行版皆处于主内核或者其他版本之状态下。这些内核会在更新过程中自然保持同步。
4.哪些版本拥有扩展更新?
每12到20个月之间,更新流程都会选择纳入一套版本并为其提供9到10周的调整时间。选择这套版本,即意味着该Linux版本会在未来两年当中获得更新。3.14版本即属于此类内核之一,它发布于2014年3月30号。下一套此类版本为4.4,发布于2016年1月10号。此内核目前已经更新至4.7。在接下来的两年当中,它将被逐步升级为4.9。
5.升级至 4.0版本的重要意义
2015年4月12日,内核由3.19升级至4.0。那么,此次大型更新给Linux内核带来了怎样的变化?我们又该如何了解这些具体调整?答案非常简单,4.0版本与之前的几个版本相比并没有什么重大变化。
作为内核开发流程团队的负责人,Linus Torvalds表示他早就希望避免出现2.6.39中曾经出现过的命名错误,因为该编号在用户的快速浏览中可能引发误解。因此在3.19版本发布时,他就将版本号调整为4.0询问了社区意见,并得到了积极的反馈。”所以4.0版本“并不代表什么特别的含义,而只是为了避免次级数字越来越大,”2016年的Linux内核报告中提到。
6.新版本高度强调安全性
安全性已经成为Linux内核开发的优先性焦点。英特尔方面还在它最新x86芯片当中内置有保护扩展机制,并受到现有Linux内核的支持。在此基础上,它的硬件会在特定内存空间中执行外部代码。这项机制能够避免恶意人士进行的缓冲区溢出攻击。ARM芯片还拥有一项“永不特权执行”机制,能够在该体系当中实现类似的功能。
现在的Linux增加了SElinux也是为了增加安全性能
7.测试,测试,更多测试
内核开发进程团队的管理者们会在全面发布之前,以自动化手段对它进行更为全面的测试。举例来说,自初始build与引导之时起,即有一套自动化系统审查该潜在版本,并在4.7版本为期10周的开发当中发现了400项bug——这一切都在最终发布前得到修复。“内核当中包含一套不断发展的自我测试框架,其正在广度与功能方面实现快速演进,”2016年Linux内核报告解释称。
8.Linux内核在这几方面做了更多的更新
driver updates 驱动更新
support for more hardware 支持更多的硬件
bug fixes 修复Bug
security upgrades安全方面升级
new features 新的特性,比如加了dts替代原来的板级文件
better performance 更牛逼的性能
更多特性请查看
https://kernelnewbies.org/LinuxChanges
Linux重要人物
1、Ken Thompson:C语言之父和Unix之父

2.Dennis Ritchie:C语言之父和Unix之父

3.Stallman:著名黑客,GNU创始人,开发了Emacs、gcc、bash shell

9.参考
https://www.zhihu.com/question/35484429
https://blog.csdn.net/zengxiantao1994/article/details/53141747
转载自:
http://os.51cto.com/art/201609/518308.htm
并做了一些修改和更正