史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 網路疑難應用技術研討區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2003-08-12, 11:08 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 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等,所以使用這些發行版本的用戶如果按照上面的步驟進行內核昇級則會導致漢化失敗、系統執行不穩定等後果。用戶需要等待廠家發行新內核的漢化包,然後到廠家指定的下載站點下載,按照其中的說明進行升
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
回覆時引用此帖
舊 2003-08-13, 11:55 AM   #2 (permalink)
長老會員
 
貝斯特 的頭像
榮譽勳章
UID - 90669
在線等級: 級別:1 | 在線時長:11小時 | 升級還需:1小時
註冊日期: 2003-08-06
住址: The Gates of Hell
文章: 1758
現金: 15064 金幣
資產: 5185909 金幣
預設

正在研究Linux中.......
__________________

給自己看也給所有需要這些話鼓勵的人看!

認真不一定會得到美好的結果,但是不認真就一定沒有

想要有什麼結果,就秉持你的雙手
放手去做
總比什麼都沒付出最後失敗了才嘆氣來的好吧
沒努力的人.沒有資格說放棄
努力過的人.更要有勇氣繼續努力下去
貝斯特 目前離線  
送花文章: 1, 收花文章: 38 篇, 收花: 123 次
回覆時引用此帖
舊 2003-08-13, 02:58 PM   #3 (permalink)
mikehsu
榮譽勳章

勳章總數
UID -
在線等級:
文章: n/a
精華:
預設

似乎很難耶...
看不懂..

還是一句話
不錯ㄉ文章
謝謝分享阿
 
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
舊 2003-08-14, 07:53 AM   #4 (permalink)
kkao
榮譽勳章

勳章總數
UID -
在線等級:
文章: n/a
精華:
預設

為以後省錢,研究中..
不過Linux中文化bug真不少..
 
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 05:31 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.


Search Engine Friendly URLs by vBSEO 3.6.1