程序员人生 网站导航

Linux内核绪论----Linux内核剖析(二)

栏目:综合技术时间:2015-04-13 08:21:51

甚么是内核


内核操作系统最基本的部份。它是为众多利用程序提供对计算机硬件的安全访问的1部份软件,这类访问是有限的,并且内核决定1个程序在甚么时候对某部份硬件操作多长时间。内核的分类可分为单内核和双内核和微内核。严格地说,内核其实不是计算机系统中必要的组成部份。

内核是1个操作系统的核心。是基于硬件的第1层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、装备驱动程序、文件和网络系统,决定着系统的性能和稳定性。

现代操作系统设计中,为减少系统本身的开消,常常将1些与硬件紧密相干的(如中断处理程序、装备驱动程序等)、基本的、公共的、运行频率较高的模块(如时钟管理、进程调度等)和关键性数据结构独立开来,使之常驻内存,并对他们进行保护。通常把这1部份称之为操作系统的内核。
程序可以直接地被调入计算机中履行,这样的设计说明了设计者不希望提供任何硬件抽象和操作系统的支持,它常见于初期计算机系统的设计中。终究,1些辅助性程序,例如程序加载器和调试器,被设计到机器核心当中,或固化在只读存储器里。这些变化产生时,操作系统内核的概念就渐渐明晰起来了。

Linux内核版本


Linux内核有两种:稳定的和处于开发中的。

稳定的内核具有工业级的强度,可以广泛的利用和部署。新推出的稳定内核大部份都只是修正了1些bug或是加入了1些新的装备驱动程序。

相反的,处于开发中的内核中许多东西变化的都很快。而且由于开发者不断实验新的解决方案,内核常常产生剧烈的变化。

Linux的第1个公然版本是1991年10月的0.02版本,两个月以后,在1991年12月,Linux发布了0.11版本,这是第1个可以不依赖于Minix就能够使用的独立内核。
0.12版本发布1个月以后,在3月,版本号跳到了0.95,反应出系统正变得成熟,不但如此,直到两年后,也就是1994年3月,具有里程碑意义的1.0.0才完成。
大约从这时候起开始使用两“路”编号方法标注内核的开发,1直到2.5版本的内核,都通过这类简单的命名机制来辨别稳定的和处于开发中的内核。
这类机制使用3个“或4个.”分隔的数字来代表不同的内核。第1个数组是主版本号,第2个版本从版本号,第3个数字是修订版本号,第4个可选的数字是稳定版本号(stable version)
从版本号还可以反应出该内核是1个稳定版本还是1个粗语开发中的版本:该数字如果是偶数就是稳定版,如果是奇数就是开发版。

偶数号的内核(比如1.0、2.2、2.4、2.6)是稳定的,“产品”型号,
奇数号的内核版本(1.1、2.3)是前沿的或“发展中的”内核。
在这个特定的发布机制下,Linus会定期发布新内核,每一个内核都是1个新的修订版本,比如2.6内核系列的第1个版本是2.6.0,第2个版本是2.6.1,这个修订版包括了BUG修复,新的驱动和1些新特性,但是,像2.6.3到2.6.4修订版本之间的差别是很微小的。
这类开发方式1直延续到2004年,当时在受邀参加的linux开发者峰会上,内核开发者门肯定延长2.6内核系列,从而推延 进入到2.7系统的步伐。。。。
同时为了解决版本发布周期变长的副作用。内核开发者们引入了上面提到的稳定版本号,这个稳定版本号(如2.6.32.8中的8)包括了1些关键性的BUG的修改,并且常会向前移植处于开发版内核(如2.6.33)的重要修改。依托这类方式,1起拿版本保证了依然能将重点放在稳定性上。

Linux2.x和Linux3.x

2011年7月21日,Linus Torvalds宣布正式发布Linux 3.0 kernel。 Linus表示,正如之前屡次申明的,Linux 3.0并没有具有重要意义的新特性或是与之前的版本存在不兼容的地方,它只是在Linux 20周年之际放弃不方便的版本编号系统。Linux Kernel 3.0版本虽然从内核的更新内容上跟普通的2.6.40没甚么两样,不过版本号的修改,无疑在Linux内核20周年之际,被赋予了特殊的意义。
实际上,Linux 3.0新版本就是Linux 2.6.40版本的新名称,没有甚么里程碑式的变化。从2.6到3.0走过了8个年头,人都变老了,外间世界也有很多变化。
因此目前位置linux2.x和linux3.x是同步保护的,我们从linux内核官网上可以看到目前内核有两种不同的版本

longterm support 提供长时间支持的内核版本 stable 稳定版本,而不是Beta测试版 关系就是:稳定版本不1定都提供长时间支持,而提供长时间支持的1定是稳定版本。

具体信息参见https://www.kernel.org/category/releases.html

当年Linus 的建议是将版本号跳到 3.0,而不是 2.8.x 或其它,并且主版本号(mainline)将只包括 major 与 minor 号,也就是说下1个 Kernel 版本将有多是 3.0,而不是 3.0.0。Linus 表示这样做有两个优点,1是去掉1个版本级数可使得 stable 版本的保护人员直接使用第3个数字来标知趣应的发布;其次由于传统上 Kernel 使用偶数版本号表示发布的版本,切换到 3.x 的版本号后,使用奇数(比如 3.0 以后是 3.1)作为发布的版本号也不会显得太让人难以接受。

因此在现在的3.x的内核中不再遵守之前的偶数标识稳定版本,奇数标识开发版本的标识信息
具体信息请参见Linux 2.6内核走向终结?下1版本3.0?

Linux内核体系结构


Linux内核体系结构
linux内核的体系结构

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐