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

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

為最佳性能而調(diào)優(yōu) Red Hat(4)

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

  為什么定制內(nèi)核?
  
  任何 linux 系統(tǒng)的核心是內(nèi)核本身。這部分講述編譯定制的內(nèi)核、為什么要定制內(nèi)核、構(gòu)建內(nèi)核的兩個(gè)基本方法、編譯內(nèi)核的步驟以及應(yīng)該知曉的各種選項(xiàng)。
  
  一般來說,Linux 的長期用戶很少在他們的系統(tǒng)中使用標(biāo)準(zhǔn)內(nèi)核。這并不是因?yàn)槎鄶?shù)分發(fā)版提供的內(nèi)核存在嚴(yán)重錯(cuò)誤 — 實(shí)際上,Red Hat 在他們的產(chǎn)品中提供的內(nèi)核是穩(wěn)定的而且“做工精良”,這是婦孺皆知的。問題是,多數(shù)主流發(fā)行商編譯的內(nèi)核需在盡可能多的體系結(jié)構(gòu)和系統(tǒng)中穩(wěn)定運(yùn)行。所以,幾乎可以肯定地說,適合于廣大用戶的內(nèi)核并不是為您的系統(tǒng)和需求而優(yōu)化的。
  
  編譯定制內(nèi)核的一些常見理由是:
  
  越少越好:一般來說,為某個(gè)系統(tǒng)編譯的內(nèi)核要比標(biāo)準(zhǔn)內(nèi)核運(yùn)行得快而且在日常操作中更穩(wěn)定。
  定制的內(nèi)核往往使用更少的內(nèi)存。這將減少 I/O 開銷(內(nèi)存中的內(nèi)核代碼從不被轉(zhuǎn)移到交換區(qū)),釋放系統(tǒng)資源,供其它進(jìn)程使用。
  在標(biāo)準(zhǔn)內(nèi)核被發(fā)布后,定制內(nèi)核使您能夠利用改進(jìn)的代碼、新的驅(qū)動程序和錯(cuò)誤修正。
  當(dāng)您從內(nèi)核中除去沒用的驅(qū)動程序和功能后,新內(nèi)核自然要比標(biāo)準(zhǔn)內(nèi)核更安全。
  把重要的功能和驅(qū)動程序構(gòu)建到內(nèi)核中去而不是把它們作為模塊裝入,這樣做能提高系統(tǒng)的響應(yīng)速度。
  很多人不愿編譯內(nèi)核的主要原因很可能是以為編譯過程很復(fù)雜(或者說可怕)。希望通過學(xué)習(xí)這部分內(nèi)容能使您熟悉到編譯過程并不復(fù)雜。
  
  
  兩種思路……
  
  在編譯內(nèi)核時(shí)有兩種基本的思路:基于模塊的和單塊的。
  
  在單塊的內(nèi)核中,所有的系統(tǒng)服務(wù)、功能和驅(qū)動程序都被直接構(gòu)建到內(nèi)核中。
  在與之相對的基于模塊的內(nèi)核中,只有一些要害組件才被構(gòu)建到內(nèi)核中,其余的組件將在需要的時(shí)候作為模塊被裝入。
  正如 Linux 中的許多其它作法那樣,常用的定制方法是兩種方法并用。要害的服務(wù)和驅(qū)動程序被編譯到內(nèi)核中去,較少用到的組件被構(gòu)建成模塊。一般的規(guī)律是,為某一個(gè)系統(tǒng)構(gòu)建的內(nèi)核往往更少使用模塊。為多個(gè)系統(tǒng)構(gòu)建的內(nèi)核往往更多地使用模塊。
  
  內(nèi)核編譯概述,
  
  只要您仔細(xì)地完成某些步驟,構(gòu)建內(nèi)核并不象有些人想象的那樣困難。簡而言之,構(gòu)建的步驟如下:
  
  決定構(gòu)建內(nèi)核。
  下載所需的源代碼 tarball 并將它移到 /usr/src。
  “cd”至 /usr/src。
  為安全起見,刪除當(dāng)前內(nèi)核源代碼的現(xiàn)有的符號鏈接(symbolic link)( rm -rf /usr/src/linux )。當(dāng)前內(nèi)核軟件包被解壓到名為 /usr/src/linux-kernel-version 的目錄,但一些舊的軟件包仍按舊的約定被解壓到 /usr/src/linux — 這將覆蓋現(xiàn)有的 Linux 源代碼樹。
  解壓源代碼軟件包( tar xvzf linux-kernel-version )。
  再次創(chuàng)建先前刪除的符號鏈接( ln -sf /usr/src/linux-kernel-version linux )。
  “cd”至 /usr/src/linux。
  輸入 make mrPRoper 。這個(gè)命令將清理源代碼樹并刪除所有舊的目標(biāo)文件?,F(xiàn)有的 .config 文件也將被刪除(.config 保存著編譯選項(xiàng)),所以,假如您想保存該文件中的設(shè)置,請把該文件復(fù)制到安全的位置,等 make 進(jìn)程完成后再把它復(fù)制到 /usr/src/linux。
  下一頁將完成定制過程。
  
  內(nèi)核編譯概述
  
  在前一頁,我們已開始構(gòu)建內(nèi)核的過程:下載和解壓源代碼,清理源代碼樹。在這頁中我們將完成構(gòu)建內(nèi)核的過程。
  
  根據(jù)您偏愛的界面,輸入 make config、make menUConfig、make xconfig 或 make oldconfig。make config 是基于控制臺的配置過程;make menuconfig 提供基于光標(biāo)的菜單配置界面;make xconfig 是基于 X-Window 的界面;假如您想用現(xiàn)有的內(nèi)核配置來構(gòu)建新的內(nèi)核而且您只想看到新內(nèi)核樹中存在的新選項(xiàng),請使用 make oldconfig。
  當(dāng)您作出合適的配置選擇后,請輸入 make dep ; make clean 。
  為了實(shí)際構(gòu)建內(nèi)核,請輸入 make bzImage 或 make install。前一個(gè)命令構(gòu)建內(nèi)核映象但并不把它安裝到 /boot 目錄;后一個(gè)命令構(gòu)建并安裝內(nèi)核映象。
  假如內(nèi)核編譯時(shí)有錯(cuò)誤,請輸入 make modules && make modules_install。這兩個(gè)命令將構(gòu)建并安裝所有基于模塊的組件。
  最后,把新的內(nèi)核復(fù)制到 /boot(假如您使用了 make bzImage 命令)。假如您運(yùn)行的是 Red Hat 的分發(fā)版,那么您還得更新 System.map 和 initrd 映象。
別忘了在引導(dǎo)裝入程序的配置中加入新的內(nèi)容,這樣做的目的是為了在內(nèi)核引導(dǎo)失敗的情況下使用戶仍然能夠回到系統(tǒng)中,作出合適的修改。
  Red Hat 提供一個(gè)綜合的實(shí)用指南,該指南具體描述了如何編譯內(nèi)核(請參閱參考資料)。對于初次構(gòu)建 Linux 內(nèi)核的人來說,這個(gè)指南值得一讀。
  
  配置竅門和提示
  
  構(gòu)建優(yōu)化的 Linux 內(nèi)核的最重要的步驟是前面提到的 make configure/menuconfig/xconf/oldconfig 過程。在這個(gè)過程中,您選擇把哪些系統(tǒng)、服務(wù)和驅(qū)動程序包括在內(nèi)核中,哪些東西被構(gòu)建成模塊。在這個(gè)過程中,最常見的問題是“在配置中包括哪些東西、不包括哪些東西?”和“哪些組件被構(gòu)建到內(nèi)核中去、哪些組件被構(gòu)建成模塊?”
  
  對第一個(gè)問題的簡短回答是“只包括您所需的并使系統(tǒng)按您的要求運(yùn)行的東西”(別忘了,越少越好)。對于第二個(gè)問題,回答是“摸著石子過河”,這有點(diǎn)令人費(fèi)解。甚至有經(jīng)驗(yàn)的治理員也未必能夠在第一次配置后就能使系統(tǒng)達(dá)到最佳性能。假如編譯過程失敗或者您得到的是無法引導(dǎo)的內(nèi)核,那么請使用引導(dǎo)裝入程序的備用選項(xiàng),返回系統(tǒng)后仔細(xì)檢查配置;試試另一組選項(xiàng)。
  
  第二個(gè)問題(哪些組件被構(gòu)建到內(nèi)核中去、哪些組件被構(gòu)建成模塊?)的回答取決于您將怎樣使用系統(tǒng)。還有經(jīng)驗(yàn)。例如,假如 Maestro3 聲音驅(qū)動程序被編譯到內(nèi)核中去,那么該驅(qū)動程序無法在某些 Dell 筆記本電腦上運(yùn)行 — 出于某些原因,應(yīng)該以模塊的形式裝入這個(gè)驅(qū)動程序。在其它使用主流硬件的系統(tǒng)中,您可以把任何需要的東西構(gòu)建到內(nèi)核中去。在這里,系統(tǒng)配置和經(jīng)驗(yàn)經(jīng)常決定了您的選擇。
  
  內(nèi)核配置中的重要選項(xiàng)
  
  為了使初學(xué)者熟悉內(nèi)核配置的過程,下幾頁將講述值得注重的一些重要選項(xiàng),這些選項(xiàng)可能提高或降低系統(tǒng)性能。
  
  在我們開始以前,請注重,在使用 menuconfig 和 xconfig 配置界面的時(shí)候,您可以獲得大多數(shù)選項(xiàng)的描述,方法是選擇您有問題的選項(xiàng),用 Tab 鍵選中 help 按鈕,再按 Enter 鍵。
  
  還有,不同版本的內(nèi)核的配置選項(xiàng)是不相同的。假如您在內(nèi)核中沒有看到某個(gè)選項(xiàng)而您需要這個(gè)功能,那么您有兩種選擇:試試另一個(gè)內(nèi)核,或者查找合適的 diff 文件,然后手工修補(bǔ)內(nèi)核。假如您想了解如何使用補(bǔ)丁,請參閱前面提及的 Kernel-HOWTO 文件(請參閱參考資料)。
  
  內(nèi)核配置選項(xiàng):代碼成熟程度和級別選項(xiàng)
  
  第一個(gè)需要注重的選項(xiàng)是列表中的第一個(gè)菜單項(xiàng):Code maturity level options。除非您選擇“Prompt for development and/or incomplete code/drivers”,否則您將無法看到許多內(nèi)核配置選項(xiàng)。
  
  General setup 和 Loadable module support 中的缺省值適合于大多數(shù)系統(tǒng)。
  
  在 Processor type and features 中,請注重內(nèi)核編譯的目標(biāo)處理器的類型(缺省值是 Pentium 3/Celeron)。SMP 是缺省值;假如您在為單處理器系統(tǒng)構(gòu)建內(nèi)核,請您取消選擇這個(gè)選項(xiàng)。當(dāng)前的內(nèi)核為“Preempible Kernel”提供支持。請選擇這個(gè)選項(xiàng)。該功能的描述中說:“在響應(yīng)實(shí)時(shí)或交互式事件時(shí),通過使優(yōu)先級較低的進(jìn)程失效(即便它在內(nèi)核模式中執(zhí)行系統(tǒng)調(diào)用),減少內(nèi)核的等待時(shí)間。即使在系統(tǒng)負(fù)載不大的時(shí)候,該功能也能使應(yīng)用程序運(yùn)行地更穩(wěn)定?!?br />  
  內(nèi)核配置選項(xiàng):電源治理選項(xiàng)
  
  在列表的下面,下一個(gè)值得注重的菜單組是 Power management options。一般來說,膝上型電腦的用戶至少需要某種形式的電源治理,但在這方面,BIOS 在與操作系統(tǒng)交互時(shí)經(jīng)常會出現(xiàn)問題,這一點(diǎn)是眾所周知的。除非您確信您的系統(tǒng)完全支持 ACPI,請使用簡單的 APM。除了少數(shù)一些筆記本電腦,啟用 ACPI 將使所構(gòu)建的內(nèi)核在引導(dǎo)時(shí)碰到麻煩。對于臺式機(jī)用戶和服務(wù)器治理員來說,設(shè)置電源治理就象設(shè)置“個(gè)人偏愛”那樣無關(guān)緊要。
  
  Bus options 包括對各種總線拓?fù)浣Y(jié)構(gòu)的支持,例如 PCI、EISA、MCA 和 PCI 熱插拔支持。除了一個(gè)值得注重的選項(xiàng)外,其它缺省值已被合適地設(shè)好。假如您預(yù)備使用 PCMCIA 網(wǎng)絡(luò)或無線卡并計(jì)劃使用 pcmcia-cs 驅(qū)動程序代碼而不是 Linux 內(nèi)核提供的驅(qū)動程序,那么請?jiān)?Network device support 菜單中禁用 PCMCIA/Cardbus 支持選項(xiàng)但啟用 PCMCIA network device support。
  
  內(nèi)核配置選項(xiàng):設(shè)備支持選項(xiàng)
  
  配置菜單上的大多數(shù)設(shè)備支持選項(xiàng)不需要非凡的說明:假如您需要某個(gè)選項(xiàng)的支持,請選擇它;否則就別選它。需要非凡說明的是 Network device support。目前的 2.5.x 開發(fā)內(nèi)核在缺省情況下啟用一小部分設(shè)備,但一些舊的內(nèi)核缺省地啟用許多設(shè)備(作為模塊)。仔細(xì)地查看每個(gè)選項(xiàng),不選所有今后用不到的選項(xiàng)。建議您把一個(gè)或兩個(gè) EtherEXPressPro/100 選項(xiàng)構(gòu)建到內(nèi)核中去,因?yàn)樵S多一般的網(wǎng)卡支持這種芯片組,而且預(yù)備一個(gè)備用網(wǎng)絡(luò)設(shè)備選項(xiàng)是不錯(cuò)的主意。
  
  Filesystems 菜單是另一個(gè)需要仔細(xì)選擇的菜單。假如您選擇 ReiserFS 或 EXT3 文件系統(tǒng),那么必須啟用相關(guān)的支持并把它構(gòu)建到內(nèi)核中去;否則,您的系統(tǒng)將無法引導(dǎo)(在系統(tǒng)初始化時(shí),Linux 必須能訪問分區(qū)上的文件系統(tǒng))。
建議您選擇 EXT2 選項(xiàng)。它所包含的代碼相對較少,在出現(xiàn)問題時(shí),內(nèi)核中的 EXT2 支持可能有用。假如您預(yù)備通過 Samba 連接到 Windows 共享文件系統(tǒng),那么請?jiān)?Filesystems-->Network files systems

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 西和县| 河源市| 二手房| 布尔津县| 和林格尔县| 沁阳市| 天祝| 乐清市| 谷城县| 团风县| 晴隆县| 卓尼县| 乐陵市| 大洼县| 连山| 剑河县| 宁都县| 台东市| 临洮县| 米泉市| 江陵县| 延安市| 静安区| 贵溪市| 巫山县| 白玉县| 错那县| 聂拉木县| 随州市| 南平市| 龙井市| 宜春市| 丰镇市| 天柱县| 陇南市| 井陉县| 呼伦贝尔市| 绍兴县| 农安县| 济宁市| 南康市|