内核是操做系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,而且内核决定一个程序在何时对某部分硬件操做多长时间。内核的分类可分为单内核和双内核以及微内核。严格地说,内核并非计算机系统中必要的组成部分。html
内核是一个操做系统的核心。是基于硬件的第一层软件扩充,提供操做系统的最基本的功能,是操做系统工做的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。linux
现代操做系统设计中,为减小系统自己的开销,每每将一些与硬件紧密相关的(如中断处理程序、设备驱动程序等)、基本的、公共的、运行频率较高的模块(如时钟管理、进程调度等)以及关键性数据结构独立开来,使之常驻内存,并对他们进行保护。一般把这一部分称之为操做系统的内核。
程序能够直接地被调入计算机中执行,这样的设计说明了设计者不但愿提供任何硬件抽象和操做系统的支持,它常见于早期计算机系统的设计中。最终,一些辅助性程序,例如程序加载器和调试器,被设计到机器核心当中,或者固化在只读存储器里。这些变化发生时,操做系统内核的概念就渐渐明晰起来了。数组
Linux内核有两种:稳定的和处于开发中的。安全
稳定的内核具备工业级的强度,能够普遍的应用和部署。新推出的稳定内核大部分都只是修正了一些bug或是加入了一些新的设备驱动程序。网络
相反的,处于开发中的内核中许多东西变化的都很快。并且因为开发者不断实验新的解决方案,内核经常发生剧烈的变化。数据结构
Linux的第一个公开版本是1991年10月的0.02版本,两个月之后,在1991年12月,Linux发布了0.11版本,这是第一个能够不依赖于Minix就可使用的独立内核。
0.12版本发布一个月之后,在3月,版本号跳到了0.95,反映出系统正变得成熟,不只如此,直到两年后,也就是1994年3月,具备里程碑意义的1.0.0才完成。
大约从这时起开始使用两“路”编号方法标注内核的开发,一直到2.5版本的内核,都经过这种简单的命名机制来区分稳定的和处于开发中的内核。
这种机制使用三个“或者四个.”分隔的数字来表明不一样的内核。第一个数组是主版本号,第二个版本从版本号,第三个数字是修订版本号,第四个可选的数字是稳定版本号(stable version)
从版本号还能够反应出该内核是一个稳定版本仍是一个粗语开发中的版本:该数字若是是偶数就是稳定版,若是是奇数就是开发版。性能
偶数号的内核(好比1.0、2.二、2.四、2.6)是稳定的,“产品”型号,
奇数号的内核版本(1.一、2.3)是前沿的或者“发展中的”内核。
在这个特定的发布机制下,Linus会按期发布新内核,每一个内核都是一个新的修订版本,好比2.6内核系列的第一个版本是2.6.0,第二个版本是2.6.1,这个修订版包含了BUG修复,新的驱动和一些新特性,可是,像2.6.3到2.6.4修订版本之间的差异是很微小的。
这种开发方式一直延续到2004年,当时在受邀参加的linux开发者峰会上,内核开发者门肯定延长2.6内核系列,从而推迟 进入到2.7系统的步伐。。。。
同时为了解决版本发布周期变长的反作用。内核开发者们引入了上面提到的稳定版本号,这个稳定版本号(如2.6.32.8中的8)包含了一些关键性的BUG的修改,而且常会向前移植处于开发版内核(如2.6.33)的重要修改。依靠这种方式,一块儿拿版本保证了仍然能将重点放在稳定性上。测试
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内核官网上能够看到目前内核有两种不一样的版本spa
longterm support
提供长期支持的内核版本
stable
稳定版本,而不是Beta测试版 关系就是:稳定版本不必定都提供长期支持,而提供长期支持的必定是稳定版本。
当年Linus 的建议是将版本号跳到 3.0,而不是 2.8.x 或其它,而且主版本号(mainline)将只包含 major 与 minor 号,也就是说下一个 Kernel 版本将有多是 3.0,而不是 3.0.0。Linus 表示这样作有两个优势,一是去掉一个版本级数可使得 stable 版本的维护人员直接使用第三个数字来标识相应的发布;其次因为传统上 Kernel 使用偶数版本号表示发布的版本,切换到 3.x 的版本号后,使用奇数(好比 3.0 以后是 3.1)做为发布的版本号也不会显得太让人难以接受。
所以在如今的3.x的内核中再也不遵循之前的偶数标识稳定版本,奇数标识开发版本的标识信息
具体信息请参见Linux 2.6内核走向终结?下一版本3.0?