国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

核心( Kernel )編譯與模組管理

2024-07-21 02:36:04
字體:
供稿:網(wǎng)友

  什么是核心( Kernel )
  ·linux Distribution:
  假如您已經(jīng)從前面一路走來都沒有休息的話,那么問您一個問題好了,那就是『什么是 Linux distribution ?』呵呵!應(yīng)該還沒有忘記吧? Linux distribution 就是各個開發(fā) Linux 這個作業(yè)系統(tǒng)的公司所丟出來的安裝光碟啦!舉個截至目前為止(2002/10)市場占有率蠻高的幾個套件,例如:
   Red Hat , Mandrake , OpenLinux(Caldera)
   等等,這些都是開發(fā) Linux 作業(yè)系統(tǒng)的公司!好了,那么怎么這么多家公司呀!那他們都是 Linux 嗎?沒錯!他們都是相同的使用 Linux 的『核心』來進(jìn)行套件的開發(fā)的!也就是說,他們『本質(zhì)』上都是一樣的!比較不同的地方可能是他們使用的套件不同或者是新加入的某些工具不同而已!基本上,他們都是 Linux !所以啰,認(rèn)真的學(xué)習(xí)某一個 distribution 也就夠了!其他的 distribution 絕大部分都是相同的耶!
  ·Kernel:
  那么到底什么是核心呢?還記得我們在前面的 BASH shell 部分提到過:電腦真正在工作的東西其實(shí)是『硬體』,不是 Windows 、不是 Linux 也不是 Unix!其實(shí)就是 CPU 啦、記憶體啦、硬碟啦、音效卡啦、網(wǎng)路卡啦、、等等的硬體配備,那么如何控制這些硬體呢?那就是核心的工作了!也就是說,核心是一個『作業(yè)系統(tǒng)』最底層的咚咚啦!你所希望電腦幫你達(dá)成的各項(xiàng)工作,都需要透過『核心』的幫助才行!當(dāng)然啰,假如你想要達(dá)成的工作是核心所沒有辦法提供的,那么你自然就沒有辦法透過核心來控制電腦使他工作啰!又假如你想要有網(wǎng)路功能(例如 NAT 服務(wù)),但是你的核心偏偏忘記加進(jìn)去這項(xiàng)功能,那么不論你如何『賣力』的設(shè)定該網(wǎng)路套件,很抱歉!不來電??換句話說,你想要讓電腦進(jìn)行的工作,都必須要『核心有支援』才可以!!這個標(biāo)準(zhǔn)不論在 Windows 或 Linux 這幾個作業(yè)系統(tǒng)上都相同!假如有一個人開發(fā)出來一個『全新的硬體』,目前的核心不論 Windows 獲 Linux 都不支援,呵呵!那么不論你用什么系統(tǒng),哈哈!這個硬體都是英雄無用武之地啦!那么是否了解了『核心』的重要了呢?沒錯!所以我們需要來了解一下如何編譯我們的核心啦!
  關(guān)于驅(qū)動程式與核心的問題:很多朋友經(jīng)常感到困惑的,就是 Linux 上面針對最新硬體的驅(qū)動程式總是慢了幾個腳步,所以覺得好象 Linux 的支援度不足!其實(shí)不可以這么說的,為什么呢?因?yàn)樵?Windows 上面,對于最新硬體的驅(qū)動程式需求,基本上,也都是廠商提供的驅(qū)動程式才能讓該硬體工作的,因此,在這個『驅(qū)動程式開發(fā)』的工作上面來說,應(yīng)該是屬于硬體發(fā)展廠商的問題,因?yàn)樗覀冑I他的硬體,自然就要提供消費(fèi)者能夠使用的驅(qū)動程式啦!所以,假如大家想要讓某個硬體能夠在 Linux 上面跑的話,那么似乎可以發(fā)起一人一信的方式,強(qiáng)烈要求硬體開發(fā)商發(fā)展 Linux 上面的驅(qū)動程式!這樣一來,也可以促進(jìn) Linux 的發(fā)展呢!
  ·Linux 核心放在哪里?
  好問題!那么 Linux 核心放在哪里呢?嘿嘿!還記得我們之前在安裝 Red Hat 7.2 里頭就提過了吧!而且在開機(jī)的流程里頭也有說明過,那個開機(jī)的順序是:
  1. BIOS
  2. MBR(就是 Lilo 或 Grub )取得 boot loader;
  3. 取得核心 kernel 的資料并載入
  4. init
  5. 很多 scripts
  6. login 與 shell
  看到了吧!那個第三步驟就需要 kernel 啰!那個 kernel 其實(shí)就是 lilo.conf 里頭說的 image 指到的那個檔案,也就是 vmlinuz 這個檔案啦!放置在 /boot 里頭!我們需要的編譯出來的核心檔案就是這一個東西!除此之外,由于近來的核心通常是支援模組的,那個外掛模組則是放置在 /lib/modules/`uname -r` 里面啰!
  我干嘛要更新核心
  這個『核心』是除了 BIOS 之外,一個作業(yè)系統(tǒng)中最早被啟動的東西,他包含了所有可以讓硬體與軟體工作的資訊,所以,假如沒有搞定核心的話,那么你的系統(tǒng)肯定會有點(diǎn)小問題!好了,那么是不是將『所有目前核心有支援的東西都給他編譯進(jìn)去我的核心中,那就可以支援目前所有的硬體與可執(zhí)行的工作啦!』,這話說的是沒錯啦,但是你是否曾經(jīng)看過一個為了怕自己今天出門會口渴、會餓、會冷、會熱、會被車撞、會摔跤、會被性騷擾,而在自己的大包包里面放了大瓶礦泉水、便當(dāng)、厚外套、短褲、防撞鋼梁、止滑墊、電擊棒....等一大堆東西,結(jié)果卻累死在半路上的案例嗎?當(dāng)然有!但是很少啦!我相信不太有人會這樣做!(會這么做的人通常都已經(jīng)在醫(yī)院了~)取而代之的是會看一下天氣,冷了就只帶外套,熱了就只帶短衣、假如穿的漂亮一點(diǎn)又預(yù)計(jì)晚點(diǎn)回家就多帶個電擊棒、出遠(yuǎn)門到?jīng)]有便利商店的地方才多帶礦泉水....說這個干什么!對啦!就是要您了解到,核心的編譯重點(diǎn)在于『你要你的 Linux 作什么?』,是啦!假如沒有必要的工作,就干脆不要加在你的核心當(dāng)中了!這樣才能讓你的 Linux 跑得更穩(wěn)、更順暢!這也是為什么我們要編譯核心的最主要原因了!
  說到這里忽然想到以前國軍研究的『經(jīng)國號戰(zhàn)斗機(jī)』事件,在當(dāng)時,經(jīng)國號里頭的配備都是『最棒的!』包括測量儀器、瞄準(zhǔn)配備、武器系統(tǒng)等等,但是呢,卻配上一部普普通通的客機(jī)用引擎!挖哩ㄌㄟ?最早期試飛的時候,經(jīng)國號竟然只能『在跑道上滑行!』真是悲哀!同樣的道理, Linux 的核心也是這樣的,假如你的硬體與核心之間沒有辦法達(dá)到良好的配合,那么 Linux 確實(shí)可能會跑得不很順暢!!
  Linux 的核心有幾個主要的特色,除了『Kernel 可以隨時、隨各人喜好而更動』之外,Kernel 的『版本更動次數(shù)太頻繁』也是一個特點(diǎn)!所以啰,除非你有非凡需求,否則一次編譯成功就可以啦!不需要隨時保持最新的核心版本,而且也沒有必要(編譯一次核心要粉久的ㄋㄟ!)。
話說到這里又忽然想到今天看到的一篇文章,大意是說老板想要雇用的人會希望是 Linux 的老手,因?yàn)樗麄儽容^輕易了解問題的所在,除此之外,假如有任何問題發(fā)生,由于其使用 Linux 是可以隨時修補(bǔ)漏洞的!但是假如是 Windows 的話,就得要將機(jī)器關(guān)閉,直到 MS 推出修補(bǔ)套件后才能再啟用~
  那么是否『我就一定需要在安裝好了 Linux 之后就趕緊給他編譯核心呢?』,老實(shí)說,『并不需要的』!這是因?yàn)閹缀踉诿恳粋€ distribution 當(dāng)中,他們已經(jīng)預(yù)設(shè)好了相當(dāng)大量的模組了,所以幾乎使用者經(jīng)常或者可能會使用到的資料都已經(jīng)被編譯成為模組(這個『模組』的意義后面會再解釋),也因此,呵呵!我們使用者確實(shí)不太需要重新來編譯核心!尤其是『一般的使用者,由于系統(tǒng)已經(jīng)將核心編譯的相當(dāng)?shù)倪m合一般使用者使用了,因此一般入門的使用者,基本上,不太需要編譯核心』。OK!那么鳥哥閑閑沒事干跑來寫個什么東西?既然都不需要編譯核心還寫編譯核心的分享文章,鳥哥賣弄才學(xué)呀!?很抱歉, VBird 雖然是個『不學(xué)有術(shù)』的混混,卻也不會平白無故的寫東西要您來指教~當(dāng)然是有需要才會來編譯核心啦!編譯核心的時機(jī)可以歸納為幾大類:
  ·新功能的需求:我需要新的功能,而這個功能只有在新的核心里面才有,那么為了獲得這個功能,只好來重新編譯我的核心了(例如 iptables 這個防火墻機(jī)制只有在 2.4.xx 版本里面才有,而新出產(chǎn)的 AGP 顯示卡,很多也需要新的核心推出之后,才能正常而且有效率的工作!)再舉個例子,在之前的 Red Hat 7.2 的版本中,由于預(yù)設(shè)是將 CD-ROM 編譯成核心的『模組』,也就是說,核心本身還沒有支援 CD-ROM 的功能,必須要掛上模組之后才能使用與讀取這個 CD-ROM !是否覺得很麻煩呢?呵呵!那么這個時候,假如你想要直接讓 kernel 支援 CD ROM 的話,就得要重新編譯核心啰;
  ·原本核心太過臃腫:假如您是那種對于系統(tǒng)『穩(wěn)定性』很要求的人,那么對于核心多編譯了很多莫名其妙的功能而不太喜歡的時候,那么就可以重新編譯核心來取消掉該功能啰;
  ·與硬體的搭配穩(wěn)定性:由于原本 Linux 的核心大多是針對 Intel 的 CPU 來作開發(fā)的,所以假如你的 CPU 是 AMD 的系統(tǒng)時,有可能(注重!只是有可能,不見得一定會如此)會讓系統(tǒng)跑得『不太穩(wěn)!』就 VBird 的經(jīng)驗(yàn)來看,使用舊的 Pentum 系列的舊機(jī)器安裝 Linux 的結(jié)果,還沒有胡亂當(dāng)機(jī)的經(jīng)驗(yàn)!但是安裝在 K6-2, K6-3 上面的 Linux ,通常需要重新編譯一下核心會比較穩(wěn)定一些!
  ·其他:就是你需要非凡的環(huán)境需求時,就得自行設(shè)計(jì)你的核心啰!(像是一些商業(yè)的套裝軟體系統(tǒng),由于需要較為干凈的作業(yè)系統(tǒng),那么他們的核心就需要更簡潔有力了!)
  另外,需要注重重新編譯核心雖然可以針對你的硬體作最佳化的步驟(例如剛剛提到的 CPU 的問題!),不過由于這些最佳化的步驟對于整體效能的影響可能還不到百分之五,因此假如是為了增加效能來編譯核心的話,基本上,效益不大!然而,假如是針對『系統(tǒng)穩(wěn)定性』來考量的話,那么就有絕對充分的理由來支持您重新編譯核心啰!
  『假如系統(tǒng)已經(jīng)運(yùn)行很久了,而且也沒有什么大問題,加上我又不增加冷門的硬體設(shè)備,那么建議就不需要重新編譯核心了!』,因?yàn)橹匦戮幾g核心的最主要目的是『想讓系統(tǒng)變的更穩(wěn)!』既然您的 Linux 主機(jī)已經(jīng)達(dá)到這個目的了,何必再編譯核心?不過,就如同前面提到的,由于預(yù)設(shè)的核心不見得適合您的需要,加上預(yù)設(shè)的核心可能并無法與您的硬體配備相配合,所以 VBird 通常都是『一安裝完 Linux ,第一個動作(在還沒有進(jìn)行任何的設(shè)定之前,也沒有上網(wǎng),也沒有更新套件等等,反正就是安裝完畢 Linux ,第一次進(jìn)入 Shell 時!)馬上就是以最新版本的 kernel 重新編譯一個屬于我這部主機(jī)的核心!』以讓我的核心都能夠相當(dāng)?shù)姆衔业挠搀w配備,讓系統(tǒng)運(yùn)作的更順暢!
  然而由于『核心的主要工作是在控制硬體!』所以編譯核心之前,請先了解一下您的硬體配備,與您這部主機(jī)的未來功能!由于核心是『越簡

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 文成县| 龙南县| 隆林| 田阳县| 巴塘县| 车致| 九龙县| 永德县| 阜宁县| 任丘市| 宜州市| 夏津县| 从化市| 遂溪县| 于都县| 武安市| 始兴县| 灵丘县| 峨眉山市| 永川市| 新建县| 饶阳县| 元氏县| 泗水县| 青龙| 谷城县| 蓝山县| 中方县| 武城县| 依兰县| 扶沟县| 光山县| 建水县| 贵阳市| 文成县| 鄂州市| 叙永县| 马尔康县| 开江县| 新河县| 北辰区|