linux系統(tǒng)下module命令是什么呢?下面是具體介紹:
1、module命令簡(jiǎn)介:
modules的字面意思是模塊,模塊化有兩個(gè)方法解決:設(shè)計(jì)者可以把各項(xiàng)功能分離到單獨(dú)的叫做線程的處理中去,或者是將內(nèi)核以包含/排除一些功能的方式重新編譯。如果把功能分離到線程中去,那么內(nèi)核就叫做“微內(nèi)核”(micro-kernel),這種解決方法增加了線程間協(xié)調(diào)工作的通信開銷,這種解決方案的優(yōu)點(diǎn)在于內(nèi)核的大小。
Linux的解決方案是包含內(nèi)核模塊,這些模塊是可以按需要隨時(shí)裝入和卸下的。這樣做可以使得內(nèi)核的大小和通信量都達(dá)到最小。將模塊從內(nèi)核中獨(dú)立出來,不必預(yù)先『綁』在 kernel codes 中。
這樣做有三種優(yōu)點(diǎn): 一, 將來修改 kernel 時(shí),不必全部重新compile,可節(jié)省不少時(shí)間;二, 若需要安裝新的 modules ,不必重新 compile kernel,只要插入 (通過insmode指令) 對(duì)應(yīng)的 modules 即可;三,減少內(nèi)核對(duì)系統(tǒng)資源的占用,內(nèi)核可以集中精力做最基本的事情,把一些擴(kuò)展功能都交由modules實(shí)現(xiàn)。
模塊也可以用來嘗試新的內(nèi)核代碼而不需要每次都創(chuàng)建和重激活內(nèi)核。但是,這樣做帶來的問題是:使用內(nèi)核模塊通常會(huì)輕微的增加性能和內(nèi)存開支。一個(gè)可加載模塊肯定會(huì)產(chǎn)生更多的代碼,這種代碼和額外的數(shù)據(jù)結(jié)構(gòu)會(huì)占用更多一點(diǎn)的內(nèi)存。另外因?yàn)殚g接訪問內(nèi)核資源也讓模塊的效率輕微降低。
2、加載模塊方法:
加載內(nèi)核模塊的方法有兩種。
一是使用insmod命令手工把它插入到內(nèi)核。
二是在需要的時(shí)候加載這個(gè)模塊,叫做按需加載(demand loading)。當(dāng)內(nèi)核發(fā)現(xiàn)需要一個(gè)模塊的時(shí)候,例如當(dāng)用戶安裝一個(gè)不在內(nèi)核的文件系統(tǒng)的時(shí)候,內(nèi)核會(huì)請(qǐng)求內(nèi)核守護(hù)進(jìn)程(kerneld)試圖加載合適的模塊。
3、與modules有關(guān)的命令:
lsmode :列出已經(jīng)被內(nèi)核調(diào)入的模塊
insmode:將某個(gè)module插入到內(nèi)核中
rmmod:將某個(gè)module從內(nèi)核中卸載
depmod: 生成依賴文件,告訴將來的 insmod 要從哪兒調(diào)入 modules。這個(gè)依賴文件就在/lib/modules/[您的kernel版本]/modules.dep。
Kerneld:負(fù)責(zé)自動(dòng)的將模塊調(diào)入內(nèi)核和把模塊從內(nèi)核中卸載。
舉例:
編譯一個(gè)最小的Linux內(nèi)核
必須要編譯到內(nèi)核中的內(nèi)容:
1、root所在的硬盤配置。哪果您的硬盤是IDE接口,就把 ide 的選項(xiàng)標(biāo)記下來。如果是SCSI接口,請(qǐng)把您的接口參數(shù)及 SCSI id 記標(biāo)下來。
2、選擇使用哪一個(gè)文件系統(tǒng)。Linux的默認(rèn)文件系統(tǒng)是是 ext2 ,那么就一定要把它標(biāo)記下來。如果機(jī)器中還其它的操作系統(tǒng),如win98或windows NT,您還會(huì)可能選擇FAT32或NTFS的支持,不過后面你可以通過手工加載的方式來加入新的模塊支持。
3、選擇Linux所支持的可執(zhí)行文件格式。這里有兩種格式可供選擇:elf:這是當(dāng)前Linux普遍支持的可執(zhí)行文件格式,必須編譯到內(nèi)核中 。
a.out: 這是舊版的Linux的可執(zhí)行文件各函數(shù)庫的格式,如果你確認(rèn)肯定用不到這種格式的可執(zhí)行文件,那么就可以不把它編譯到內(nèi)核當(dāng)中。
其它內(nèi)容凡是所有選項(xiàng)中m提示的,都選擇m,這樣可以通過手工的方式添加該模塊。
** Loadable module support*Enable loadable module support (CONFIG_MODULES) [Y/n/?]Set version
information on all symbols for modules (CONFIG_MODVERSIONS) [N/y/?]Kernel daemon support (e.g.
autoload of modules) (CONFIG_KERNELD) [Y/n/?]
分別回答 Y,N,Y 。其中 CONFIG_KERNELD 的 default 值是 N, 所以要注意選擇Y。
make config 完后,仍舊是 make dep; make clean。接下來要 make zlilo 或 make zImage。然后 make modules ; make modules_install 。完成之后,就編譯出一個(gè)沒有調(diào)入多余模塊的一個(gè)“干凈的”內(nèi)核映像文件了。
以上就是小編今天的分享了,希望可以幫助到大家。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com