Linux作為一個自由軟體,在廣大愛好者的支援下,核心版本不斷更新。新的核心修訂了舊核心的bug,並增加了許多新的特性。如果使用者想要使用這些新特性,或想根據自己的系統度身定製一個更高效,更穩定的核心,就需要重新編譯核心。
通常,更新的核心會支援更多的硬體,具備更好的進程管理能力,運行速度更快、 更穩定,並且一般會修複老版本中發現的許多漏洞等,經常性地選擇升級更新的系統核心是Linux使用者的必要操作內容。
為了正確的合理地設定核心編譯配置選項,從而只編譯系統需要的功能的代碼,一般主要有下面四個考慮:
l 自己定製編譯的核心運行更快(具有更少的代碼)
l 系統將擁有更多的記憶體(核心部分將不會被交換到虛擬記憶體中)
l 不需要的功能編譯進入核心可能會增加被系統攻擊者利用的漏洞
l 將某種功能編譯為模組方式會比編譯到核心內的方式速度要慢一些
選擇相應的配置時,有三種選擇,它們分別代表的含義如下:
Y--將該功能編譯進核心
N--不將該功能編譯進核心
M--將該功能編譯成可以在需要時動態插入到核心中的模組
如果使用的是make xconfig,使用滑鼠就可以選擇對應的選項。如果使用的是make menuconfig,則需要使用空格鍵進行選取。你會發現在每一個選項前都有個括弧, 但有的是中括弧有的是角括弧,還有一種圓括弧。用空格鍵選擇時可以發現,中括弧裡要麼是空,要麼是"*",而角括弧裡可以是空,"*"和"M"這表示前者對應的項要麼不要,要麼編譯到核心裡;後者則多一樣選擇,可以編譯成模組。而圓括弧的內容是要你在所提供的幾個選項中選擇一項。
在編譯核心的過程中,最煩雜的事情就是這步配置工作了,很多新手都不清楚到底該如何選取這些選項。實際上在配置時,大部分選項可以使用其預設值,只有小部分需要根據使用者不同的需要選擇。選擇的原則是將與核心其它部分關係較遠且不經常使用的部分功能代碼編譯成為可載入模組,有利於減小核心的長度,減小核心消耗的記憶體,簡化該功能相應的環境改變時對核心的影響;不需要的功能就不要選;與核心關心緊密而且經常使用的部分功能代碼直接編譯到核心中。下面就讓我們對常用的選項分別加以介紹。
1. Code maturity level options
代碼成熟等級。此處只有一項:prompt for development and/or incomplete code/drivers,如果你要實驗現在仍處於實驗階段的功能,比如khttpd、IPv6等,就必須把該項選擇為Y了;否則可以把它選擇為N。
2. Loadable module support
對模組的支援。這裡面有三項:
Enable loadable module support:除非你準備把所有需要的內容都編譯到核心裡面,否則該項應該是必選的。
Set version information on all module symbols:可以不選它。
Kernel module loader:讓核心在啟動時有自己裝入必需模組的能力,建議選上。
3. Processor type and features
CPU類型。內容蠻多的,不一一介紹了,有關的幾個如下:
Processor family:根據你自己的情況選擇CPU類型。
High Memory Support:大容量記憶體的支援。可以支援到4G、64G,一般可以不選。
Math emulation:副處理器模擬。副處理器是在386時代的寵兒,現在早已不用了。
MTTR support:MTTR支援。可不選。
Symmetric multi-processing support:對稱式多處理支援。除非你富到有多個CPU,否則就不用選了。
4. General setup
這裡是對最普通的一些屬性進行設定。這部分內容非常多,一般使用預設設定就可以了。下面介紹一下經常使用的一些選項:
Networking support:網路支援。必須,沒有網卡也建議你選上。
PCI support:PCI支援。如果使用了PCI的卡,當然必選。
PCI access mode:PCI存模數式。可供選擇的有BIOS、Direct和Any,選Any吧。
Support for hot-pluggabel devices:熱插拔裝置支援。支援的不是太好,可不選。
PCMCIA/CardBus support:PCMCIA/CardBus支援。有PCMCIA就必選了。
System V IPC
BSD Process Accounting
Sysctl support:以上三項是有關進程處理/IPC調用的,主要就是System V和BSD兩種風格。如果你不是使用BSD,就按照預設吧。
Power Management support:電源管理支援。
Advanced Power Management BIOS support:進階電源管理BIOD支援。
5. Memory Technology Device(MTD)
MTD裝置支援。可不選。
6. Parallel port support
串口支援。如果不打算使用串口,就別選了。
7. Plug and Play configuration
隨插即用支援。雖然Linux對隨插即用目前支援的不如Windows好,但是還是選上吧,這樣你可以拔下滑鼠之類的體驗一下Linux下隨插即用的感覺。
8. Block devices
塊裝置支援。這個就得針對自己的情況來選了,簡單說明一下吧:
Normal PC floppy disk support:普通PC磁碟片支援。這個應該必選。
XT hard disk support:
Compaq SMART2 support:
Mulex DAC960/DAC1100 PCI RAID Controller support:RAID鏡像用的。
Loopback device support:
Network block device support:網路塊裝置支援。如果想訪問網路位置的東西,就選上。
Logical volume manager(LVM)support:邏輯卷管理支援。
Multiple devices driver support:多裝置驅動支援。
RAM disk support:RAM盤支援。
14. I2O device support
這個也不清楚,協助裡說是這個需要I2O介面適配器才能支援的,在智能Input/Output(I2O)體系介面中使用,又是要硬體,不選了。
15. Network device support
網路裝置支援。上面選好協議了,現在該選裝置了,可想而知,內容肯定多得很。還好還好,裡面大概分類了,有ARCnet裝置、Ethernet (10 or 100 Mbit)、Ethernet(1000Mbit)、Wireless LAN(non-hamradio)、Token Ring device、Wan interfaces、PCMCIA network device support幾大類。我用的是10/100M的乙太網路,看來只需要選則這個了。還是10/100M的乙太網路裝置熟悉,內容雖然多,一眼就可以看到我所用的RealTeck RTL-8139 PCI Fast Ethernet Adapter support,為了免得麻煩,編譯到核心裡面好了,不選M了,選Y。耐心點,一般說來你都能找到自己用的網卡。如果沒有,你只好自己到廠商那裡去要驅動了。
16. Amateur Radio support
又一個不懂的,應該是配置業餘無線廣播的吧,沒有,不要了。
17. IrDA(infrared)support
這個要紅外支援,免了。
18. ISDN subsystem
如果你使用ISDN上網,這個就必不可少了。自己看著辦好了。
19. Old CD-ROM drivers(not SCSI、not IDE)
做的可真周到,原來那些非SCSI/IDE口的光碟機誰還在用啊,自己選吧,反正我是用的IDE的CD-ROM,不選這個。
20. Character devices
字元裝置。這個內容又太多了,先使用預設設定,需要的話自己就修改。把大類介紹一下吧:
I2C support:I2C是Philips極力推動的微控制應用中使用的低速串列匯流排協議。如果你要選擇下面的Video For Linux,該項必選。
Mice:滑鼠。現在可以支援匯流排、串口、PS/2、C&T 82C710 mouse port、PC110 digitizer pad,自己根據需要選擇。
Joysticks:手柄。即使在Linux下把手柄驅動起來意義也不是太大,遊戲太少了。
Watchdog Cards:雖然稱為Cards,這個可以用純軟體來實現,當然也有硬體的。如果你把這個選中,那麼就會在你的/dev下建立一個名為watchdog的檔案,它可以記錄你的系統的運行情況,一直到系統重新啟動的1分鐘左右。有了這個檔案,你就可以恢複系統到重啟前的狀態了。
Video For Linux:支援有關的音頻/視訊卡。
Ftape, the floppy tape device driver:
PCMCIA character device support:
21. File systems
檔案系統。內容又太多了,老法子,在預設選項的基礎上進行修改。介紹以下幾項:
Quota support:Quota可以限制每個使用者可以使用的硬碟空間的上限,在多使用者共同使用一台主機的情況中十分有效。
DOS FAT fs support:DOS FAT檔案格式的支援,可以支援FAT16、FAT32。
ISO 9660 CD-ROM file system support:光碟片使用的就是ISO 9660的檔案格式。
NTFS file system support:ntfs是NT使用的檔案格式。
/proc file system support:/proc檔案系統是Linux提供給使用者和系統進行互動的通道,建議選上,否則有些功能沒法正確執行。
還有另外三個大類都規到這兒了:Network File Systems(網路檔案系統)、Partition Types(分區類型)、Native Language Support(本地語言支援)。值得一提的是Network File Systems裡面的兩種:NFS和SMB分別是Linux和Windows相互以近端分享的形式訪問對方所使用的檔案系統,根據需要加以選擇。
22. Console drivers
控制台驅動。一般使用VGA text console就可以了,標準的80*25的文本控制台。
23. Sound
音效卡驅動。如果你能在列表中找到音效卡驅動那自然最好,否則就試試OSS了。
24. USB supprot
USB支援。很多USB裝置,比如滑鼠、數據機、印表機、掃描器等,在Linux都可以得到支援,根據需要自行選擇。