全面介紹Linux系統(tǒng)內核特點
Linux的良好安全性能,卓越實用性導致很多用戶的選擇。Linux系統(tǒng)內核特點你了解么?開發(fā)它的中堅力量是經驗豐富的軟件工程師,他們多以實用性和效率為出發(fā)點,很多地方還考慮了工業(yè)規(guī)范和兼容性等因素,因此不同于教學性操作系統(tǒng)單純追求理論上的先進性,Linux系統(tǒng)內核的實用性和高效率都讓人嘆為觀止。
下面我們簡要歸納一下Linux內核的特色。
第一,Linux內核被設計成單巨內核(monolithic)結構(相對微內核而言。微內核是一種功能更貼近硬件的核心軟件,它一般僅僅包括基本的內存管理、同步原語、進程間通訊機制、I/O操作和中斷管理,這樣做有利于提高可擴展性和可移植性。但是微內核與諸如文件管理、設備驅動、虛擬內存管理、進程管理等其它上層模塊之間需要有較高的通訊開銷,所以目前多集中在理論教學領域,對工業(yè)應用來說,效率難以保證 ),因此效率高,緊湊性強。
第二, 2.6版本前的Linux內核是單線程結構——所謂單線程結構是說同一時間只允許有一個執(zhí)行線程(內核中的執(zhí)行程序)在內核中運行 ,不會被調度程序打斷而運行其它任務,這種內核成為非搶占式的,它的好處在于內核中沒有并發(fā)任務(單處理器而言),因此避免了許多復雜的同步問題,但其不利影響是非搶占特性延遲了系統(tǒng)響應速度,新任務必須等待當前任務在內核執(zhí)行完畢并自動退出后才能獲得運行機會。然而,工業(yè)控制領域需要高響應速度,由于Robert love等人的貢獻,2.6版本將搶占技術引入了Linux內核,使其變?yōu)榭梢赃M行內核搶占的操作系統(tǒng) ——當然,付出的代價是同步變得更復雜了。
第三,為了保證能方便地支持新設備、新功能,又不會無限地擴大內核規(guī)模,Linux系統(tǒng)對設備驅動或新文件系統(tǒng)等采用了模塊化的方式,用戶在需要時可以現(xiàn)場動態(tài)加載,使用完畢可以動態(tài)卸載。同時對內核,用戶也可以定制,選擇適合自己的功能,將不需要的部分剔除出內核。這些都保證了內核的緊湊、可擴展性好。
第四,Linux內核純粹是被動地提供服務。所謂被動是因為它為用戶服務的唯一方式是用戶通過系統(tǒng)調用來請求在內核空間執(zhí)行某種任務。內核本身是一種函數(shù)和數(shù)據結構的集合,不存在運行的內核進程為用戶服務 (雖然Linux的確存在一種被稱為內核線程的進程,但它并不是用來服務于用戶的,僅僅服務于內核自身)。
第五, Linux內核采用了虛擬內存技術,使得內存空間達到4GB 。其中0-3G屬于用戶空間,稱為用戶段,3G-4G屬于內核空間,稱為內核段。這樣,應用程序就可以使用遠遠大于實際物理內存的存儲空間了。
第六, Linux的文件系統(tǒng)實現(xiàn)了一種抽象文件模型——VFS(虛擬文件系統(tǒng)),該文件系統(tǒng)屬于Unix風格。VFS是Linux的特色之一。通過使用虛擬文件系統(tǒng),內核屏蔽了各種不同文件系統(tǒng)的內在差別,使得用戶可以通過統(tǒng)一的界面訪問各種不同格式的文件系統(tǒng),并且可以毫無區(qū)別地在不同介質、不同格式的文件系統(tǒng)之間通過VFS提供的統(tǒng)一接口進行數(shù)據交換。這種抽象給Linux帶來了很大的彈性。
第七, Linux提供了一套很有效的延遲執(zhí)行機制——下半部分、軟中斷、tasklet和2.6新引入的工作隊列等,這些技術保證了系統(tǒng)可以針對任務的輕重緩急,更細粒度地選擇執(zhí)行時機。保證了系統(tǒng)運行時盡量處于安全時間(不關中斷)。
Linux除了以上提到的特色外,還有許多其它特點,希望通過本文對Linux系統(tǒng)內核特點的介紹,讓你學好Linux系統(tǒng)。
【編輯推薦】