內核可以看成是一?架於程式和硬件之間的界面操作系靳╋離開了核心╋什麼東西都用不了。 而內核的編譯的好壞╋也會影響到系統的性能╋甚至╋一些系統功能(如 tcp/ip)╋也必須要編進核心才行。 操作系統性能的好壞、穩定不穩定╋其中一?很關鍵的因素是核心的體積短小精悍。 一?臃腫的核心╋?邋╋能提供樣樣俱到的功能╋但也會犧牲系統性能和穩定性。 所以在編譯核心的?候╋‘將核心編得盡量的小’╋是最高原?。 在我們動手升級內核前還須問一下自己為什麼要進行升級!? a、為了好玩,趕潮流或做實驗,那就可以大膽的進行下面的操作! b、為了支持新硬件,為了得到更好的性能,那麼請問:有沒有已經對系統進行了備份! 1、選擇下載內核版本 http://www.kernel.org/pub/Linux/kernel/ 這裡有最新的內核版本 因為紅旗3.0內核版本為V2.4.17-1 我們就選擇一個V2.4.20的最新穩定內核來進行升級 下載一個完整內核文件名為linux-2.4.20.tar.bz2 a) 在任何一個子目錄下(但通常是在/usr/src/下,我們先在/root下解開)解開新的內核源程序: # bzip2 -d linux-2.4.20.tar.bz2 ;解壓將會在當前目錄下生成linux-2.4.20.tar # tar xvf linux-2.4.20.tar ;解包 # mv linux-2.4.20 /usr/src ;把解開的數據移動到/usr/src目錄下 b) 建立一個符號連接到你的新內核目錄,這一步可以不做,只是為了操作方便 # ln -s /usr/src/linux-2.4.20 /usr/src/linux ;以後對新內核的訪問就通過linux 這個連接進行 c)配置內核前的准備工作 # cd /usr/include # rm -rf asm linux scsi # ln -s /usr/src/linux/include/asm-i386 asm # ln -s /usr/src/linux/include/linux linux # ln -s /usr/src/linux/include/scsi scsi d)配置內核 我是在不刪除原有內核的情況下進行編譯,如果你不想保留原有內核,建議先做好啟動盤 啟動盤制作:#mkbootdisk --device /dev/fd0 `uname -r` ;`uname -r` 是取得當前內核版本號 對於我們紅旗3.0來說可以使用 #mkbootdisk --device /dev/fd0 2.4.17-1 重新啟動機子╋確定啟動盤能正確引導。 轉到目錄/usr/src/linux下 進行編譯配置 1)#make mrproper ;清除任何將引起問題的附加額外源代碼 2)#make xconfig ;這是在X window下的圖形界面,很方便 或 make menUConfig ;如果是在字符下建議使用 或 make config ;這個方法不建議使用很麻煩, 不好用! 選擇好新內核中要開啟的選項,這一步將/usr/src/linux目錄下生成一個配置文件.config文件 3)#make dep ;確定那些文件已經改動,那些需要重新編譯;確保關鍵文件在正確的位置. 4)#make clean ;刪除那些不需要的舊文件(例如:內核原有的拷貝);確保所有東西均保持最新狀態. 5)#make zImage ;將一個新內核建立在一個壓縮文件中(會生成/usr/src/linux/arch/i386/boot/zImage文件) ;注意有大小寫區分 如果提示System is too big.出錯進用make bzImage進行壓縮建立(會生成/usr/src/linux/arch/i386/boot/bzImage文件) e)如果你用了模塊,你還需要建造和安裝模塊 make modules make modules-install depmod -a f)安裝新內核 復制內核文件到/boot目錄 # cp /usr/src/linux/System.map /boot/System.map-2.4.20 # cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.4.20 編輯/etc/lilo.conf文件添加 image=/boot/vmlinuz-2.4.20 label=linux-2.4.20 root=/dev/hda1 ;這一項可以參考原來的root項 #lilo ;只有執行了lilo命令之後╋ LILO 才會真正裝到系統之上 g)重啟 #shutdown -r now 提示:開機啟動LILO、出現系統選擇時選擇“linux-2.4.20”用新內核來啟動我們的Linux 進入後可以用#uname -r 來查看當前的內核版本 h)問題 有可能如果系統不能正常啟動或有些設備不認時,可能是我們在make menuconfig時有些選擇不正確,只有在來從這一步來一次! 內核升級不可能一次成功,除非您對內核中的每個選項非常了解 而且升級後是否穩定,這也是個問題因為有些問題不可能一下子就會發生,可能要過很長時間才會暴露出來! 但從內核升級的過程中您將會更加了解Linux的工作流程,希望以上的內容對大家在學習中有所幫助!