Solaris作業系統可載入模組
Solaris是一個基於Unix的作業系統,由Sun Microsystems開發,Sun被Oracle收購後,被稱為Oracle Solaris。它以其可擴充套件性和創新特性而聞名,例如DTrace、ZFS、Time Slider等。
Solaris核心
核心是作業系統的核心,其主要功能是透過適當分配資源來管理硬體。Solaris採用微核心設計,無法建立單片Solaris核心。
在Solaris中,從本地磁碟引導核心可透過以下步驟完成:
載入引導塊
將引導塊讀取並載入到記憶體是Solaris引導的第一步。這使用PROM中的系統韌體,稱為Open Boot PROM (OBP)。完成的步驟包括提供系統引數、構建硬體裝置樹以及為手動或自動系統引導提供引導支援。
載入ufsboot
引導塊定位輔助載入程式ufsboot。載入ufsboot後,控制權從引導塊傳遞到ufsboot。引導塊程式不能大於7680位元組,因此在這個空間內只能執行讀取Unix目錄、定位檔案並將其載入到記憶體的操作。
載入核心核心和連結器
ufsboot程式定位並載入核心核心和連結器到/platform//kernel/unix和/kernel/misc/krtldn分別。ufsboot程式可以載入所需的krtldn程式並將其控制權傳遞給它,因為它可以解析可執行檔案和連結格式頭。
載入所需的核心模組
krtldn搜尋特定模組,其路徑由一個關鍵變數確定。此變數可在OBP韌體中設定,也可以手動輸入到載入程式的命令列中。
初始化核心
Solaris核心使用虛擬記憶體地址空間執行,但在啟動使用者應用程式之前需要進行一些初始化。處理器暫存器被初始化,並呼叫mlsetup()、main()和startup()。
init程序
init程序是第一個真正的使用者程序,它分配的是使用者地址空間而不是核心地址空間。init是核心建立的最後一個程序,用於啟動系統。
Solaris可載入核心模組
Solaris具有一個小型核心核心,該核心具有可以動態連結的不同模組。這些模組在某種程度上類似於層,因為它們都有其定義的任務以及與其他模組的介面。
但是,每個模組可以根據需要相互聯絡。這消除了透過多箇中間層進行互動的問題。
Solaris可載入模組可以使用給定的圖表表示: