眾多的Linux用戶在經歷了對Linux由好奇到熟悉的過程之後,是否希望按照自己機器的實際配置對Linux進行定制,從而獲得最佳的系統性能呢?也許有用戶會認為在自己使用Linux的過程中沒有碰到到任何問題,Linux確實象人們所宣傳的那樣“永遠不會崩潰”,因此完全沒有必要冒著風險對系統內核進行的改動。其實,對Linux系統內核進行定制和修改並不向很多人想象中的那麼復雜。如果用戶能夠根據自己的實際情況對Linux系統內核進行合理的修改,可以有效的簡化Linux內核,去除不需要的組件,從而提供更快的系統啟動速度,釋放更多的內存資源。 下面我們對Linux系統內核做一下簡單介紹。 所謂系統內核實際上是系統設計人員編寫的控制系統的各個組件,在不同程序之間分配系統資源,同時協調系統與硬件和外設之間數據傳遞的系統核心程序代碼。與Windows系統的內核不同,Linux系統的內核是可配置的,用戶可以根據自己的實際需要,在對系統內核進行定制。例如,用戶可以針對自己機器CPU的具體型號對系統內核進行優化。 盡管不同廠商在推出其各自的Linux產品之前,都已經針對某些具體的硬件設備或網絡協議對系統內核進行了設置,但是用戶還是可以針對自己所實際使用的機器對Linux系統內核進行進一步的修改,從而將Linux系統的性能提升到新的高度。 本文將主要結合目前較為流行同時也是較為成熟的Red Hat Linux版本對系統內核的定制進行詳細的介紹。使用其它廠商推出的Linux產品的用戶也可以參照本文的介紹,對Linux內核進行定制。 准備工作 盡管重新編譯Linux系統內核的操作大多數可以自動完成而且也並不復雜,但是一旦出現錯誤,將可能導致Linux系統無法正常啟動。因此,為了預先防范可能出現的任何問題,用戶一定要在對Linux系統內核進行任何的改動之前,制作一張Linux系統啟動盤(注:用戶在安裝Linux系統的過程中可能已經被要求制作了系統啟動盤,如果用戶沒有現成的系統啟動盤,可以按照本文隨後的介紹重新制作一張),同時還應當將一些重要的數據進行及時的備份。 下面,我們就來看一下如何實現Linux系統內核的定制。 用戶需要以管理員root帳號登錄Linux系統。因為本文的所有命令都是通過命令方式實現,所以用戶最好選擇以命令方式登錄。如果用戶機器上的Linux系統默認登錄到圖形方式的話,可以使用圖形環境下的終端命令窗口(單擊GNOME桌面任務條中以計算機圖案顯示的按鈕)。 制作啟動盤 一般在Linux系統的安裝過程中,安裝程序都會要求用戶制作一張Linux系統啟動盤,這樣當Linux系統出現嚴重錯誤而無法正常啟動時,用戶就可以使用啟動盤重新啟動Linux系統。如果用戶沒有任何現成的啟動盤,可以按照如下所述方法自己動手制作。 假設用戶使用的是Red Hat 推出的Linux產品,首先在命令模式或命令終端窗口下輸入“more /etc/lilo.conf”命令,然後回車。該命令將會分屏顯示Linux加載程序,即Linux Loader(簡稱LILO)的配置文件。用戶在文件中找到如下條目“image=/boot/vmlinuz-2.2.12-20”。該項指出的路徑正是用戶每次啟動Linux系統時首先被裝載的Linux系統內核的位置。其中“vmlinuz-”項後的數字代表用戶目前所使用的Linux系統內核的版本,實際顯示值視用戶的具體情況可能會有所不同。記下該數字之後,輸入“q”返回到命令方式。 隨後用戶輸入“mkbootdisk --verbose --device /dev/fd0 2.212-20 ”命令,其中的Linux系統內核版本號以用戶的實際版本數字為准。回車之後,Linux將會要求用戶插入一張軟盤,然後自動為我們制作一張系統啟動盤。 設置系統內核 現在,我們開始對Linux系統內核進行定制。首先,用戶輸入命令“cd /usr/src/linux”,將當前的工作目錄轉換到/usr/src/linux。 Linux系統為用戶提供了兩種系統內核的設置接口,分別為menUConfig和xconfig。其中,用戶可以在任何命令方式下通過輸入命令“make menuconfig”啟動menuconfig,然後使用方向鍵和Tab鍵進行選擇和修改。對於xconfig,用戶只能在X Windows下通過命令“make xconfig”啟動。xconfig提供了更加友好的用戶界面,用戶可以通過鼠標點擊選擇選擇各項菜單和按鈕。本文將主要介紹xconfig使用方法,用戶可以通過使用menuconfig實現同樣的功能。 用戶輸入命令“make xconfig”按回車,在一連串文字飛快顯示之後,將會彈出xconfig的主窗口。該窗口包含許多按鈕選項,點擊其中任意一項會彈出對Linux系統內核進行具體設置的設置窗口。例如,用戶點擊xconfig窗口中的第二項“Processor type and features“之後,就可以在相應的彈出窗口中對用戶自己機器處理器進行設置。 在每一個設置窗口中,用戶可以通過選擇“Y”或“N”選項啟動或關閉任意功能。此外,用戶還可以選擇“M”選項,把某些功能作為模塊進行編輯。所謂模塊並不是系統內核的組成部件,但是在需要時系統內核會連接指定的模塊從而共同提供特定的功能。在默認情況下,設置窗口中的許多功能都是作為不同的模塊被編輯的。 如果用戶在具體的設置過程中對某一個具體功能的設置不清楚的話,可以點擊該功能選項的幫助按鈕,啟動相應的幫助文本。幫助文本能夠提供所有功能選項的詳細說明。如果用戶發現自己可能選擇了錯誤的選項而希望恢復以前的設置的話,可以選擇直接返回主窗口而不保存任何所做的改動。 用戶在完成了所有需要改動的設置之後,可以點擊xconfig主窗口的“Save and Exit“,保存用戶設置並退出xconfig。 編輯系統內核 用戶在按照個人的實際需要完成對系統內核的設置之後,需要對新的系統內核進行編譯。 用戶在關閉所有打開的程序之後,在命令方式下輸入“make bzImage”命令。該命令會自動完成對新系統內核的編輯,大約需要10到30分鐘,具體時間取決於用戶機器的性能。 編譯完系統內核之後,返回到命令方式。這時如果出現報錯信息,則表示用戶對系統內核進行了錯誤的設置,例如沒有啟動某一個功能所必須的其它附加功能等。這時用戶所能做的只能是從頭開始,從新設置系統內核。 在順利編譯完新的系統內核之後,用戶還需要對配置系統內核過程中設定的各種功能模塊進行編譯和安裝。具體為:輸入“make modules”命令,然後按回車。該命令將會完成對內核模塊的編譯。完成編譯之後,輸入“make modules_install”命令,該命令會自動安裝已編譯模塊。 收尾工作 在完成了對新系統內核以及模塊的編譯之後,我們需要把新的系統內核復制到Linux的啟動目錄中。用戶可以輸入以下命令“cp arch/i386/boot/bzImage /boot/vmlinuz-mykernel”。此外,我們還需要對LILO進行相應的修改,以便使LILO在系統啟動時能夠找到新的系統內核。我們可以使用任何一種Linux系統下的文本編輯工具對LILO配置文件進行修改。這裡我們使用pico文本編輯器。輸入“pico /etc/lilo.conf”命令,啟動pico編輯器,並載入LILO配置文件。找到“image=“項,用“/boot/vmlinuz-mykernel”替代該項的現有值。建議用戶記下“image=“項的當前值,這樣如果出現任何問題,就可以方便的恢復到安全設置。完成修改之後,按Ctrl-X,選擇“Y”然後回車,保存設置並退出pico編輯器。 這樣,我們已經完成了定制Linux系統內核的所有工作。重新啟動機器再次進入Linux系統之後,用戶將會感受到新的系統內核所帶來的新的體驗。