LINUX的核心升級

來源:互聯網
上載者:User

LINUX核心升級

 

  Linux的一個重要的特點就是其原始碼的公開性,全世界任何一個軟體工程師都可以將自己認為優秀的代碼加入到其中,由此引發的一個明顯的好處就是Linux修補漏洞的快速以及對最新軟體技術的利用。而Linux的核心則是這些特點的最直接的代表。


  為什麼要升級核心


  正如它的名字的字面意義,Linux的核心承擔著Linux作業系統的最為核心的任務,是其它程式和硬體等運行過程中的仲裁者:它要管理所有進程的記憶體,保證它們都能平等得到處理器的時隙。此外,它還提供者和硬體之間的介面等功能。

  通常,更新的核心會支援更多的硬體,具備更好的進程管理能力,運行速度更快、更穩定,並且一般會修複老版本中發現的許多漏洞等,經常性地選擇升級更新的系統核心是Linux使用者的必要操作內容。

  一般,核心的版本序號使用三個數字表示,如2.2.14,版本號碼越高表示功能越強。版本號碼分為兩個系列:一種是產品系列,以偶數命名,例如,1.2.x、2.0.x、2.2.x等,運行穩定,已經經過較為周密的測試;另外一種是開發測試系列,以奇數命名,用以進行最新功能的測試,不建議初學者和生產過程中使用。

  本文的後面部分將分別以核心2.0.34到2.2.14的升級過程介紹核心升級用到的步驟、概念、注意事項以及可以參考的更多文檔,文中出現的斜體字是直接輸入的命令。


  核心的配置與編譯


  Linux當前支援的CPU類型包括x86、ARM、DEC Alpha、SUN Sparc、M68000、MIPS、PowerPC等,應該說上述類型已經包括絕大多數使用者使用的CPU型號。在安裝與配置過程中,Linux會自動識別這些型號。

  通常要啟動並執行第一個命令是:#cd /usr/src/linux;make mrproper。確保原始碼目錄下沒有不正確的.o檔案以及檔案的互相依賴。

  接下來的核心配置過程比較煩瑣,但是配置的適當與否與日後Linux的運行直接相關,有必要瞭解一下一些主要的且經常用到的選項的設定。

  配置核心可以根據需要與愛好使用下面命令中的一個:

  #make config (基於文本的最為傳統的配置介面)

  #make menuconfig (基於文本選單的配置介面)

  #make xconfig (基於圖形視窗模式的配置介面)

  #make oldconfig (如果只想在原來核心配置的基礎上修改一些小地方,會省去不少麻煩)

  進行配置時,大部分選項可以使用其預設值,只有小部分需要根據使用者不同的需要選擇。例如,如果需要核心支援DOS分區的檔案系統,則要在檔案系統部分選擇FAT或DOS系統支援;系統如果配有網卡、PCMCIA卡等,需要在網路設定中選擇相應卡的類型。

  選擇相應的配置時,有三種選擇,它們分別代表的含義如下:

  “Y”- 將該功能編譯進核心

  “N”- 不將該功能編譯進核心

  “M”- 將該功能編譯成可以在需要時動態插入到核心中的模組。

  將與核心其它部分關係較遠且不經常使用的部分功能代碼編譯成為可載入模組,有利於減小核心的長度,減小核心消耗的記憶體,簡化該功能相應的環境改變時對核心的影響。許多功能都可以這樣處理,例如像上面提到的網卡的支援、對FAT等檔案系統的支援。

  配置完核心,接下來需要對核心原始碼檔案的依賴性和完整性進行檢驗,並且進行編譯,此時要保證系統所使用的gcc版本在gcc-2.7.2以上:

  #make dep (確保關鍵檔案在正確的位置)

  #make clean (確保所有有關檔案都處於最新版本狀態)

  #make zImage (編譯壓縮形式的核心)

  在需要核心支援較多的外設和功能時,核心可能變得很大,此時可以編譯大核心:

  #make bzImage

  編譯的時間與機器的硬體條件及核心的配置等因素有關,以筆者的64MB記憶體的賽揚300為例,編譯核心一次大致需要20多分鐘。所獲得的核心的位置在/usr/src/linux/arch/i386/boot目錄下,當然這裡假設使用者的CPU是x86型的。

  如果選擇了可載入模組,編譯完核心後,要對選擇的模組進行編譯:

  #make module (編譯選擇的模組)

  #make module-install (將編譯後的模組轉移到系統標準位置)

  模組在系統中的標準目錄位於/lib/modules/x.y.z,後面的x.y.z是版本號碼,為安全起見,在運行#make modules-install之前最好對/lib/modules進行備份。模組通常是帶有副檔名.o的檔案,使用命令#lsmod可以對當前核心的模組進行列表。


  軟體下載與解包


  選擇相對快速並且具有權威性的網站下載最新的核心原始碼包,例如條件允許的話可以到下面的網站下載:

  ftp://sunsite.unc.edu/pub/linux/kernel

  國內Linux使用者可以到下面的網站下載:

  http://studio.openunix.org

  http://www.clinuxworld.com

  注意,如果升級版本的跨度很大,並且預計會配置外部模組時,還要下載最新的模組工具modules-x.y.z.tar.gz。

  Linux系統的核心代碼存放於目錄/usr/src/linux,實際上,該目錄是一個連結,指向當前所用的核心版本的目錄,例如如果當前使用的版本是2.0.34,則該核心的實際目錄應該是:/usr/src/linux-2.0.34。而新下載的核心中的目錄是linux,這樣,直接在/usr/src下解包會導致原來的核心目錄被覆蓋。所以穩妥的做法是,首先刪除連結linux,然後解包、更名、重新連結。

  在解包前要確認在/usr/src目錄下沒有叫linux的目錄,或者不再想保留該目錄。

  另外,隨著Linux核心功能的增強及對更多外設的支援,檔案包也越變越大,當前最新的穩定版2.2.14核心壓縮包的大小約為14MB,但實際上解壓縮及編譯等環節,要求/usr/src目錄所在的分區的空閑空間大於60MB位元組。


  啟用新核心


  將編譯好的新核心拷貝到系統目錄/boot下,例如

  #cp /usr/src/linux/arch/i386/boot/zImage /boot/zImage-2.2.14

  然後,編輯系統引導設定檔/etc/lilo.conf,仿照原有選項添入新核心選項,給它起一個明顯好記的標籤(label),記住此時最好保留原有核心以及相應的選項,這樣不用害怕升級失敗而機器啟動不了,至少還可以使用舊的核心引導自己的電腦。儲存編輯後退出,此時要記住運行命令:#lilo,更新系統引導映象,這樣對lilo.conf的修改才能起作用。

  重啟機器後,在LILO的提示符下按“Tab”鍵,則應該看到加入的新核心選項。

  對於當前國內進行漢化後的Linux版本,由於其中的幾個主要版本是在核心中進行,例如衝浪平台的Xteam Linux、藍點Bluepoint Linux等,所以使用這些發行版本的使用者如果按照上面的步驟進行核心升級則會導致漢化失敗、系統運行不穩定等後果。使用者需要等待廠家發行新核心的漢化包,然後到廠家指定的下載網站下載,按照其中的說明進行升級。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.