定製Linux核心,發揮Linux潛能(轉)

BSDLite發表於2007-08-11
定製Linux核心,發揮Linux潛能(轉)[@more@]   眾多的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系統之後,使用者將會感受到新的系統核心所帶來的新的體驗。

[ 本帖最後由 yo 於 2006-7-25 15:46 編輯 ]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-944637/,如需轉載,請註明出處,否則將追究法律責任。

相關文章