天天看點

微核心與宏核心

首先我們先來了解一下系統核心的兩種不同的實作方式——微核心與宏核心。

        微核心的設計理念,是将系統服務的實作,與系統的基本操作規則區分開來。它實作的方式,是将核心功能模組化,劃分成幾個獨立的程式,各自運作,這些程式被稱為服務。所有的服務程式,都運作在不同的位址空間。隻有需要絕對特權的程式,才能在具特權的執行模式下運作,其餘的程式則在使用者空間運作。

        宏核心簡單的說就是把整個核心設計成一個大程式,它的所有功能都集中在一個層次,對外提供一個完整的核心界面,即系統調用。核心中的各種函數可以互相直接調用,彙程式設計式和C程式可以互相跳轉和調用,用一個整體的大程式來實作核心功能,沒有微核心的分層結構。宏核心的好處是簡單,便于了解和實作。Linux之是以很快的流行,也在于它采用宏核心,設計簡單。相對于微核心來說,宏核心的效率略高。基本上每個系統調用隻需要經過一個函數調用就可以實際作用于硬體層,速度很快。

        作業系統核心結構可以分為三個層次:應用程式接口、核心和硬體,如下圖所示:

微核心與宏核心

------------------越是喧嚣的世界,越需要甯靜的思考------------------ 合抱之木,生于毫末;九層之台,起于壘土;千裡之行,始于足下。 積土成山,風雨興焉;積水成淵,蛟龍生焉;積善成德,而神明自得,聖心備焉。故不積跬步,無以至千裡;不積小流,無以成江海。骐骥一躍,不能十步;驽馬十駕,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。蚓無爪牙之利,筋骨之強,上食埃土,下飲黃泉,用心一也。蟹六跪而二螯,非蛇鳝之穴無可寄托者,用心躁也。

繼續閱讀