2009年6月8日 星期一

OS心得系列 CPU & Kernel--PART 2

在上次大概解釋了一下CPU與Kernel間的差異以及CPU主要的概念後,這次則開始要對" Kernel "作探討,首先要知道的是,什麼是kernerl?它到底是一個什麼樣的東西?在上篇有提到kernel是作業系統裡重要的中樞部分,也就相當於是作業系統的心臟,它主管著硬體控制、記憶體管理、行程通訊、網路協定、檔案系統等,而所有程式可以透過核心與電腦硬體溝通一般說來比較新的核心提供更強的功能,而且所支援硬體設備也較多,而且往往能改進舊版的缺失(包括安全性),會更加有效率及穩定,這樣看來,CPU與kernel之間的混淆就能獲得解答了;我們可以說CPU是電腦硬體的集合中樞控制中心,整台電腦運作就依賴這這顆小小核心,而kernel則可說是作業系統裡重要元件的集合中心,在作業系統進行任何動作都會與之有關,整個系統中重要行為的進行是以它為主;作業系統是使用者與電腦間的橋樑,他也可說是一種方便使用者對電腦進行操控的介面,套用於鑑別CPU與kernel間上的話,我們可以實際摸到CPU這個"實體"但卻無法摸到kernel,如果我們想"摸到"它的話,需要藉由作業系統來更動它稱之為心臟的kernel,這大概也能說是兩者相差較明確的地方。

常與kernel一詞伴隨著的作業系統,應該非Linux莫屬了,對於Windows的kernel則比較不甚了解,而弔詭的是,XP竟是我最常用的作業系統,我想這其中應該是與其熟悉度有關聯,對於我們從小用到大的Windows系列,它是個好用的介面,不論在文書、遊戲、影音觀賞等方面,皆可說是能簡單又輕鬆上手的一個大眾化作業系統,相較之下,Linux則可以看作是專業人士所使用的系統,在軟體實作方面可以說是非常強大,且所需要動用到的資源較wibdows系列小,簡單來說,只需要簡單的硬體配備以及少數的資源就能發揮出極大的威力,如此之強大才會使得我對其產生興趣。

而Linux Kernel可以分成數個開發版本,彼此之間都有許多不同之處,基本上Linux Kernel 編號分為三段 X.Y.Z,X Y 為主要編號,Z 為小版本編號,舉個例子,版本2.6.12就是X=2、Y=6、Z=12的顯示,事實上這仍只是大概的編號,因為Kernel 是由網路上無數人共同開發,所以實際上還有很多的細微編號,但對一般人來說,比較重要的是X與Y,基本上目前X一直都是2,可能要數年之後才會換成3。比較有趣的是Y,Kernel Developer Group為了區隔「開發中核心」與「實用核心」,把正在開發中的Kernel Y一律是"奇數";穩定核心的Y一律是"偶數";目前常見的Linux Kernel 大概可以分為 2.2、2.4、2.6,2.2是相當古老的Linux Kernel,完成的相當早,當然也比較穩定,故目前仍有許多EmbeddedLinux使用此版本的Kernel,2.4是比較新的Kernel,大概是前幾年停止開發,比起2.2來說多了不少功能,記憶體管理、排程等都有許多新的架構,算是較新又還算穩定的版本,而2.6是目前最新的Kernel,比起2.4又多了一些新功能或套件,不過其穩定性仍須靜待觀察,至於比較深入的研究,在往後的閒暇之時再來看看吧。

沒有留言:

張貼留言