熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

核心( Kernel )編譯與 Lilo 多重開機

2013-11-13 16:00:40  來源: Oracle 

  運作的更順暢!
  然而由於『核心的主要工作是在控制硬體!』所以編譯核心之前請先了解一下您的硬體配備與您這部主機的未來功能!由於核心是『越簡單越好!』所以只要將這部主機的未來功能給他編進去就好了!其他的就不用去理他啦!
  
  核心的版本與何處下載最新核心
  請特別留意!不同版本的核心之間最好不要互相升級!否則及容易發生問題!例如 Red Hat x 使用的是 xx 版本的核心那麼就不要使用 xx 的核心來編譯他!如果誤用的話很有可能造成您系統上面的服務無法正常的工作!還請特別留意呢!
  · 核心的版本
  要更新核心自然就得知道目前我的核心是哪一個啰!然後才能拿更新的核心來更新呀!您說是吧!那麼在哪裡找到這個核心的資訊呢?如果對於 系統指令 那一篇還有印象的話(忘記了就回去讀一讀吧!)應該還記得那個 uname 查看的資訊吧!沒錯!就是他了可以使用其功能來查詢目前在工作的核心版本
   
  · 看到了吧!那個東西就是核心版本的資訊啦!好了!我們依照 RPM 版本的先例也來談一談 kernel 的版本吧!基本上 kernel 的版本可以分為
  [主版本][次版本][修訂版本][附版本]
  在這當中需要特別留意的屬於第二個那個[次版本]啰!
  o 如果次版本是奇數的話例如 等等那表示他是一個『測試性質功能的核心版本』這種核心通常是在推出穩定版本的核心之前用來給 developer (核心維護更新測試者!)測試用的!雖然功能較為強大但是由於是屬於測試性質所以可能會有些許的 bug 也說不定
  o 如果次版本是偶數的話例如 等等那表示他是一個經過測試之後才釋出的穩定核心版本這種核心較為穩定不容易出錯比較適合一般個人或者是商業使用!
  所以啦!我們要升級的時候大多就是使用那種偶數的核心版本啦!不過這裡還是要再提一遍!就是『 是兩個具有相當大差異的核心版本兩者之間使用到的函式庫基本上已經不相同了所以在升級之前如果您的核心原本是 xx 版(Red Hat x 系列)那麼就升級到 xx 版本的最新版不要由 xx 直接升級到 xx 版否則到時可能會欲哭無淚~~』這個問題在討論區一再地被提起!這裡再次說明!
  此外 xx 與 xx 的比較中並不是 xx 就一定比 xx 還要新因為這兩種版本同時在進行維護與升級的工作!如果有興趣的話可以前往 Linux 核心網站 一看究竟您就可以了解目前的核心變動情況了!另外再提到額外的一點就是 可以升級到 版本這是因為這兩個是互相援用的 測試成功之後就將他轉成 的版本所以兩者的函式庫使用的情況是約略相同的這個情況也可以使用在 xx 與 xx 版本之中!也就是說您的 Red Hat x 的 xx 版本可以升級到 xx 版本去呦!但是您的 Red Hat x 的 kernel xx 則僅能更新到最新的 xx 或者是 xx 強烈的建議不需要更新到 xx ~~再次不厭其煩的提醒大家~
  好了!既然 Red Hat ~ 使用的是 kernel xx 版本我們又需要的是穩定型態的 xx 版本再由 網站資料上發現截至目前為止( // )最新的核心是 這一個所以您可以前往下載這一個版本的核心當然也可以由本站下載呢!嗯!底下的各個選項的擇定我們都是以這一個版本為例呦!需要特別的注意!由於較新的核心版本可能會多出一些選項因此若有不同的項目也沒有關系!稍微查看一下說明內容就可以了解啦!
  · 核心下載地點
  Linux 的核心目前是由其發明者 Linus 所屬團隊在負責維護的而其網站在底下的站址上在該網站上可以找到最新的 kernel 資訊!不過美中不足的是目前的核心越來越大了( linuxtargz 這一版這一個檔案大約 MB 了!)所以如果你的 ISP 連外很慢的話那麼使用台灣的映射站台來下載不失為一個好方法
  o
  o
  o 交大資科
  o 教育部
  基本上就如同前面所說的最好是在系統安裝完畢之後馬上就進行核心編譯工作免得以後每次裝一些特定功能的時候又要花一大輪時間編譯另外要說明的由於小弟是以 這一版的核心來做升級的動作所以以下是以 來做示范!
  
  開始設定核心的內容
  由於 VBird 都是在安裝完 Linux 之後立刻就給他編譯核心的所以通常我都是直接將該核心檔案燒錄起來或者是先捉到自己的電腦中再以 ftp 等等的動作將該檔案傳輸到 Linux 系統下!好了!目前我就假設您已經可以上網了所以您可以使用底下的方式來下載核心並將之解開在 /usr/src 當中!此外由於編譯核心的行為必須要是 root 才可以進行所以底下的動作使用者身份為 root 呦!
   
  需要比較留意的是核心所放置的地點『一定是 /usr/src/linux 』這一個目錄然而由於不論哪一版核心編譯都是這一個目錄底下編譯的所以我個人相當的建議將每一版的核心都使用不同的目錄來指定然後以 link 的方式將該目錄 link 到 linux 就可以啦!較為簡單而且明了!底下的動作請都在 /usr/src/linux 底下進行呦!
  另外在開始設定核心內容之前先來說明一下什麼是『模組』?以方便大家了解核心編譯的選擇!由於核心的更新速度雖然很快然而有些硬體的出版卻是不定時的另外有些軟體需要的載入程式可能也需要核心的支援才有辦法提供!然而如果每次一有新的硬體或者軟體推出則需要編譯一次核心那不是挺麻煩的嗎?要曉得的是編譯一次核心小一點的也要 分鐘左右(這與你的機器速度有關!)每次這麼編譯不是挺麻煩的嗎?所以啰就有所謂的『模組』出現了!由於目前的核心已經都具有『外掛模組』的功能(這個等一下我們在實際編譯的時候會提到!)所以只要將您『可能會用到』的功能的選項將他編譯成模組!那麼往後真的需要該功能的時候再將他載入到核心就可以啦!這麼做最大的優點就是當沒有使用到該功能的時候核心並不會主動的載入所以真正在核心內工作的程序就不會太多而耗掉系統資源!另外當您目前不需要的功能可以先編譯成模組未來真的有需要的時候就可以將他直接載入!嘿嘿!可以免除再一次編譯的繁復手續呢!!很棒吧!所以啰!如果可以編譯成為模組的那麼就直接先編成模組也是可以的哩!但是如果是『肯定不會』使用到的功能那麼就不需要編譯進來了!例如我的舊電腦當中根本就沒有 AGP 插槽那麼我自然就不需要在我的核心裡面編譯上 AGP 的支援啰!
  · 編譯之前
  在 Linux 當中安裝任何軟體的鐵則『注意看套件解壓縮之後的 INSTALL 或 README 檔案!』好了那麼請進入 /usr/src/linux 當中去瞧一瞧 README 先!再來由於害怕不小心前面有人已經先編譯過了核心則由於編譯過程當中會產生目的檔案(檔名為 o )為了避免此一問題請先執行 make mrproper 這個指令
   
  · 好了!現在您就已經具有相當完整的 Kernel source code 啰!接著下來則是選擇編譯模式咯!
  ·設定編譯模式
  目前的 Kernel 可以允許多種編譯的模式包括了
  o make config 這種模式需要逐行輸入所需要設定的項目無法往前修改設定所以目前很少使用這種方式來設定 Kernel 的項目了
  o make xconfig 這種模式則是使用 XWindow 為主要環境的設定模式!除非你有 XWindow 在執行否則沒有辦法使用這種模式
  o make menuconfig 這種模式有點像是文字界面的選單模式較為簡便而且可以在純文字界面下面執行編輯動作!是目前最常使用的模式
  我們就使用 make menuconfig 來進行核心的編譯設定內容吧!這個選單模式較為簡單的啦!
   
  出現如下圖示
   
  因為我是以 putty 捉的圖所以有點丑丑的!別見怪呦!好了!看到上面的圖示之後可以看到幾個元件
  o最底下的 之後按下『 Enter 』就可以進入該項目去作更進一步的細部設定啰!
  o在細部項目的設定當中如果前面有 [ ] 或 < > 符號時該項目才可以選擇而選擇可以使用『空白鍵』來選擇
  o若為 [*] <*> 則表示編譯進核心若為 則表示編譯成模組!盡量在不知道該項目為何時且有模組可以選那麼就可以直接選擇為模組啰!
  o當在細項目選擇 並按下 Enter 那麼就可以離開該細部項目啰!
  基本上建議只要『上下左右 空白 及 Enter 』這六個按鍵就好了!不要使用 Esc 否則一不小心就有可能按錯的!
  ·開始設定
  
   [root @test linux]# make mrproper   <==去除 o 的編譯過的檔案
  [root @test linux]# make menuconfig  <==以文字選單的模式進行編譯!
  底下開始編譯!
  Code maturity level options --->                  <==關於核心測試功能的 code 開啟項目;
    [ ] Prompt fo
From:http://tw.wingwit.com/Article/program/Oracle/201311/17667.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.