歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 淺談Linux的內核

淺談Linux的內核

日期:2017/2/25 10:39:20   编辑:Linux教程
  inux是由1991年Linus B. Torvalds在網絡上組織人員為PC機寫的第一個免費的UNIX內核(KERNEL),發展成的一個能在PC機上可靠穩定工作的UNIX/X-WIN操作系統。從此,個人擁有工作站已不再是夢想。每個計算機愛好者都可以把自己的PC變成類似Sun Station或BSD UNIX系統的工作站。Linux系統具有最新UNIX的全部功能:真正的多任務,虛擬存儲,共享庫函數,即時負載,優越的存儲管理和TCP/IP,UUCP網絡工具。從技術上講, Linux只是內核。它與諸如編譯器、編輯器、窗口管理器等程序一起,組成了發布版。因此,雖然有不同的發布版,但其內核是相同的。
  內核是Linux的心髒,它是在引導時裝入的程序,用來提供用戶層程序和硬件之間的接口,執行發生在多任務系統中的實際任務轉換,處理讀寫磁盤的需求,處理網絡接口,以及管理內存。一般情況下,自動安裝的內核無需任何改動就可以在機器上運行,但若要為新的設備添加支持程序或削減內核支持的設備列表,以降低內存需求,則需要配置內核。
  通常,內核源代碼樹以一個名為linux-X.X.XX.tar.gz的文件出現,X.X.XX為內核的版本號。內核的版本號分為三部分(以2.0.35為例):
  1、主版本號:此內核是2。它表明對內核的重大改進,很少改變。
  2、次版本號:此內核是0。它表明內核的穩定性。偶數號(如0、2、4等)的內核是穩定的產品版本。而奇數號(如1、3、5等)的內核是處於開發過程中的內核,一般包含著最近開發的試驗性代碼,它不太穩定,有時可能包含著致命的錯誤。
  3、修訂號:此內核是35。它表明這一發布版本的增補級。
  下面我們來看看如何升級內核(以2.0.35版為例):
  1、獲取源代碼樹:linux-2.0.35.tar.gz。
  2、解開內核:
  cd /usr/src/ (進入到目錄 /usr/src/)
  rm -rf /usr/src/linux (將舊的內核源代碼刪除,也可以將其移走)
  cp linux-2.0.35.tar.gz /usr/src/ (將新的內核文件拷貝到剛才的目錄)
  tar xzf linux-2.0.35.tar.gz (將內核文件解壓縮,產生新目錄/usr/src/linux)
  3、創建符號鏈接:
  cd /usr/include (進入到目錄 /usr/include)
  rm -rf linux asm scsi (刪除所有的老的頭文件)
  ln -s /usr/src/linux/include/linux linux ln -s /usr/src/linux/include/asm-i386 asm ln -s /usr/src/linux/include/scs csi (創建符號鏈接將你的系統指向包含有新內核代碼的新的頭文件)
  cd /usr/src/linux (進入目錄 /usr/src/linux)
  make mrproper (清除任何將引起問題的附加額外的源代碼)
  4、配置內核:
  cd /usr/src/linux (進入目錄 /usr/src/linux)
  make menuconfig (用菜單形式配置內核。根據自己的要求,配置內核,不確定的用缺省配置。另有make config----文本界面,make xconfig----圖形界面命令可選。此外注意保存配置)
  5、創建內核(在目錄 /usr/src/linux下):
  make dep (此命令用來分析內核的配置並創建相應的相關樹,決定那些內容該編譯,那些內容不該編譯)
  make clean (此命令用來清楚所有以前編譯的痕跡)
  make zImage (編譯內核,如果內核較大,用make bzImage)
  make modules (編譯模塊)
  make modules_install (安裝模塊)
  cp /usr/src/linux/arch/i386/boot/zImage /boot/zImage (將zImage拷貝到/boot)
  6、把新內核放入lilo:
  vi /etc/lilo.conf (用vi編輯/etc/lilo.conf)
  寫清/image=/boot/zImage 保存退出。
  lilo (執行lilo命令)
  7、起用新內核 注意,以上工作需以root身份完成。
  此,內核的升級就結束了,由於本人水平有限,難免有不妥之處,歡迎大家批評指正。
Copyright © Linux教程網 All Rights Reserved