- 論壇徽章:
- 0
|
Linux內(nèi)核配置文檔。!(make menuconfig)
2.Loadable module support:對模塊的支持。
預(yù)備知識:
模塊就像你特意插入核心中的某些東西,如果辦公室有一個(gè)小網(wǎng)絡(luò)并且有時(shí)想用一下(但并不經(jīng)常),也許你想把網(wǎng)卡編譯成一個(gè)模塊。使用這個(gè)模塊,機(jī)器必運(yùn)行和存取/libs下的模塊,意思是驅(qū)動程序(IDE,SCSI等但必須是NFS支持的網(wǎng)卡),文件系統(tǒng)(通常是ext2但也可以是nfs)和核心類型(最好是elf)必須編譯在內(nèi)核并且不能是模塊,模塊只有核心引導(dǎo)時(shí)才起作用,驅(qū)動程序(來網(wǎng)絡(luò))的存取,和文件系統(tǒng)安裝。這些文件必須編譯在核心內(nèi)否則將能安裝啟動分區(qū)。如果安裝啟動分區(qū)和網(wǎng)絡(luò),你需要網(wǎng)絡(luò)系統(tǒng)文件,和己經(jīng)編譯的網(wǎng)卡。為什么要使用模塊? 模塊化使核心變的更簡捷,它減少核心釋放大量的受保護(hù)的空間。模塊的安裝和卸載使用的空間是可重復(fù)分配利用的。如果你打開機(jī)器有90%以上的時(shí)間用到一個(gè)模塊,編譯它。運(yùn)用這類模塊是浪費(fèi)內(nèi)存的,原因是一旦你編譯了模塊它們同樣將占用大量的內(nèi)存,核心需要一些代碼來掛上模塊。記住,核心在保護(hù)空間運(yùn)行,但模塊并不是。這么說,并不經(jīng)常使用我的設(shè)備,把它編譯成只支持ext2,ide和elf。而一直使用的網(wǎng)卡,把其它的編譯成模塊:如a.out, java, floppy, iso9960, msdos, minix, vfat,smb,nfs,smcultra(ethernetcard),serial,printer,sound,ppp,等等。它們許多只是在這或那用上那么幾分鐘。嚴(yán)格的說,這樣做會使核心增大許多而降低它的執(zhí)行速度。這時(shí)我們就可以把這些可能會用的驅(qū)動程序編譯成一個(gè)—個(gè)的模塊,在需要用的時(shí)候才用insmod這個(gè)指令加入核心,不用的時(shí)候也能rmmod把它從核心移除,或是用lsmod察看目前所載入的模塊。
2.1.Enable loadable module support.
除非準(zhǔn)備把所有需要的內(nèi)容都編譯到內(nèi)核里面,否則該項(xiàng)應(yīng)該是必選的。
2.2.Set version information on all module symbols.
通常,我們更新核心版本之后,模塊耍重新的編譯。這個(gè)選項(xiàng)使您不必更新編譯模塊而能使用以前的模塊?梢圆贿x它。但如果您選y,則按照它的說明,您必須有g(shù)enksyms這個(gè)程序(可用whereis指令查看有無此程序)。
2.3.Kernel module loader.
讓內(nèi)核在啟動時(shí)有自己裝入必需模塊的能力,建議選上。注意:在開機(jī)就會 mount 上來的 partition 的 FS 、device driver 記得要 compiler 進(jìn) kernel,不能把它弄成 modules。請不要夸張到為了完全模組化而忘了把ext2fs和IDE dirver compiler 進(jìn) kernel 里。
經(jīng)驗(yàn)談:
a.可加載模塊是指內(nèi)核代碼(kernel code)的一些片斷,比如驅(qū)動程序,當(dāng)編譯內(nèi)核的時(shí)候它們也被單獨(dú)編譯。 因此,這些代碼不是內(nèi)核的一部分,但是當(dāng)你需要它的時(shí)候,它可以被加載并使用。 通常的建議是如果可能,將內(nèi)核代碼編譯成可加載模塊,因?yàn)檫@樣可以使內(nèi)核更小,而且更穩(wěn)定。 警告!千萬不要將文件系統(tǒng)(File System)部分的代碼編譯為可加載模塊,如果你犯了這個(gè)錯(cuò)誤,將文件系統(tǒng)(File System)部分的代碼編譯為可加載模塊,結(jié)果將是內(nèi)核無法讀取它自己的文件系統(tǒng)。 然后內(nèi)核無法加載它自己的配置文件——一些很明顯是在正常啟動Linux時(shí)所必需的東西。 我很少使用可加載模塊:我喜歡我的內(nèi)核能夠直接和硬件對話,但這只是我自己的偏好。
|
|