Linux內核剖析(二)Linux內核緒論

什麼是內核


內核操做系統最基本的部分。它是爲衆多應用程序提供對計算機硬件的安全訪問的一部分軟件,這種訪問是有限的,而且內核決定一個程序在何時對某部分硬件操做多長時間。內核的分類可分爲單內核和雙內核以及微內核。嚴格地說,內核並非計算機系統中必要的組成部分。html

內核是一個操做系統的核心。是基於硬件的第一層軟件擴充,提供操做系統的最基本的功能,是操做系統工做的基礎,它負責管理系統的進程、內存、設備驅動程序、文件和網絡系統,決定着系統的性能和穩定性。linux

現代操做系統設計中,爲減小系統自己的開銷,每每將一些與硬件緊密相關的(如中斷處理程序、設備驅動程序等)、基本的、公共的、運行頻率較高的模塊(如時鐘管理、進程調度等)以及關鍵性數據結構獨立開來,使之常駐內存,並對他們進行保護。一般把這一部分稱之爲操做系統的內核。
程序能夠直接地被調入計算機中執行,這樣的設計說明了設計者不但願提供任何硬件抽象和操做系統的支持,它常見於早期計算機系統的設計中。最終,一些輔助性程序,例如程序加載器和調試器,被設計到機器核心當中,或者固化在只讀存儲器裏。這些變化發生時,操做系統內核的概念就漸漸明晰起來了。數組

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)的重要修改。依靠這種方式,一塊兒拿版本保證了仍然能將重點放在穩定性上。測試

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內核官網上能夠看到目前內核有兩種不一樣的版本spa

longterm support
提供長期支持的內核版本
stable
穩定版本,而不是Beta測試版 關係就是:穩定版本不必定都提供長期支持,而提供長期支持的必定是穩定版本。

具體信息參見https://www.kernel.org/category/releases.html操作系統

當年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?

Linux內核體系結構


Linux內核體系結構

相關文章
相關標籤/搜索