2003年1月15日 星期三

Linux 的核心(Kernel) -2 模組化核心

模組化核心元件
所有設定和硬體都不需要常駐在核心中的元件, 核心的許多元件都可以編譯為可動態載入的模組, 這可以增加核心功能, 而無需增加啟動時載入的核心映像檔的大小, 啟動時不需要的任何補充功能都是模組化的理想選擇, 包括周邊設備驅動程式和補充檔案系統

/lib/modules 目錄
核心模組位於 /lib/modules/(kernel-version)中, 目錄名稱必須與核心版本 (由 uname -r 或uname -a 取得) 完全相同, /lib/modules/<kernel-version> 的結構在 2.4 核心中已更改, kernel/{arch, drivers, fs, net} 提供了附加的層次結構級別

控制模組
模組通常由核心依需求載入, lsmod 指令可列出了核心中當前常駐的模組, 使用 insmod 指令可使核心載入特定的模組, 並且可以將各種模組參數指定為命令參數, rmmod 指令可在閒置時卸載模組
w-studio lsmod

w-studio insmod
w-studio.idv.tw
w-studio rmmod

智慧式控制模組
許多模組依賴於其他模組, 可以使用 depmod 指令產生模組相依關係資料庫, 若 rc.sysinit 中被設定為在系統啟動時執行 depmod -A 則不需要手動執行此命令, 該命令將比較文件時間並根據需要更新 modules.dep, 然後可以使用 modprobe 指令來載入核心模組, 並且對 insmod指令進行三處改進:
。modprobe 將載入特定模組所需的任何基礎模組
。modprobe 將查詢 /etc/modules.conf 以獲取預設模組參數
。modprobe 可以測試模組列表, 當成功載入模組時將停止測試列表中的其他模組
w-studio depmod

w-studio modprobe

初始化 RAM 磁碟映像
若對 SCSI, RAID 和 software RAID 設備的支援模組化, 由於掛載 root 檔案系統可能需要這些模組, 因此可以將這些模組儲存在稱為初始 RAM 磁碟映像或 initrd 的補充文件中, initrd 是檔案系統的壓縮映像檔, 其中包含核心安裝 root 檔案系統之前可能需要的模組, mkinitrd 可用於建立 initrd, 為了使核心使用 initrd, 必須將 bootloader 設定為使用它

沒有留言:

張貼留言