作業系統設計/核心架構/單核心
外觀
單核心方法是在硬體之上定義一個高階虛擬介面,並提供一組原語或系統呼叫,以在以超級使用者模式執行的多個模組中實現作業系統服務,如程序管理、併發和記憶體管理。
即使每個為這些操作提供服務的模組都與整體分離,程式碼整合也非常緊密且難以正確執行,並且由於所有模組都在同一個地址空間中執行,因此一個模組中的錯誤可能會導致整個系統崩潰。但是,當實現完成並且值得信賴時,元件之間緊密的內部整合允許有效地利用底層系統的低階功能,從而使良好的單核心具有很高的效率。單核心方法的支持者認為,如果程式碼不正確,它就不應該放在核心中,如果確實存在,那麼微核心方法幾乎沒有優勢。更現代的單核心,如 Linux、FreeBSD 和 Solaris,可以在執行時載入可執行模組,允許根據需要輕鬆擴充套件核心的功能,同時有助於將核心空間中執行的程式碼量降至最低。它只是在監督模式下執行。
單核心作業系統是最早也是最常見的作業系統架構。作業系統的每個元件都包含在核心中,並且可以直接與任何其他元件通訊(即,只需使用函式呼叫)。核心通常以不受限制的訪問許可權執行計算機系統。OS/360、VMS 和 Linux 普遍被認為是單核心作業系統。元件之間的直接互通使單核心作業系統非常高效。由於單核心將元件組合在一起,但很難隔離錯誤和其他錯誤的來源。此外,由於所有程式碼都以不受限制的訪問許可權執行,因此具有單核心的系統特別容易受到錯誤程式碼或惡意程式碼的損害。