前言
Linux內核是操做系統的核心,也是操做系統最基本的部分。linux
Linux內核的體積結構是單內核的、可是他充分採用了微內核的設計思想、使得雖然是單內核、但工做在模塊化的方式下、而且這個模塊能夠動態裝載或卸 載;Linux負責管理系統的進程、內存、設備驅動程序、文件和網絡系統,決定着系統的性能和穩定性。如是咱們在瞭解Linux內核的基礎上根據本身的需 要、量身定製一個更高效,更穩定的內核,就須要咱們手動去編譯和配置內核裏的各項相關的參數和信息了。
注意、若是兩個內核模塊的版本不徹底相同是不能夠跨版本使用的。
正文
首先咱們要去得到Linux內核的壓縮文件、得到的路徑不少了、最直接的就是去內核官網得到了(http://www.kernel.org),也能夠到各鏡像站上去下載、這裏就再也不說明了。
注意:/usr/src;通常而言、咱們製作linux內核的時候源碼通常放在這個路徑下、而且有一個連接叫linux什麼的、因此展開時應該放在這個路徑下。
我這裏下載有一個3.13.2版本的內核、展開時指定一個展開路徑就能夠了,文件比較大、70多M、可能須要點時間的。
# tar xf linux-3.13.2.tar.xz -C /usr/src/vim
展開以後在/usr/src/這個目錄下就看到了生成一個linux-3.13.2的文件了
爲之後使用方便、咱們給他建立一個連接:
# ln -sv linux-3.13.2 linux網絡
咱們cd到linux目錄裏面看一下里面的文件看:
# cd /usr/src/linuxapp
裏面的目錄我這裏就不一一介紹了、有興趣的朋友能夠去了解一下哦。
到下一步就是去配置內核了、這步配置內核的方法有多種、每個make就是一種方法、咱們只在選一種就能夠了:模塊化
make config:遍歷選擇所要編譯的內核特性 make allyesconfig:配置全部可編譯的內核特性 make allnoconfig:並非全部的都不編譯,而是能選的都回答爲NO、只有必須的都選擇爲yes。 make menuconfig:這種就是打開一個文件窗口選擇菜單,這個命令須要打開的窗口大於80字符的寬度,打開後就能夠在裏面選擇要編譯的項了 下面兩個是能夠用鼠標點選擇的、比較方便哦: make kconfig(KDE桌面環境下,而且安裝了qt開發環境) make gconfig(Gnome桌面環境,而且安裝gtk開發環境) menuconfig:使用這個命令的話、若是是新安裝的系統就要安裝gcc和ncurses-devel這兩個包才能夠打開、而後再裏面選擇就能夠了、通這個方法也是用得比較多的:
若是想方便點又不想用別的方法那就複製當前系統上的/boot/config-版本-平臺,這個文件到/usr/src/linux/.config覆 蓋這個文件,再改一下里面的配置信息;哪些用得着就保留、哪些用不着就刪除了均可以、有什麼新的也能夠加進來、這就是按本身的需求來配置了;性能
注意:若是編譯是在遠程鏈接上的話、make會出問題的、若是遠程鏈接斷開的話那運行的進程是否是也都斷開了、這個make的進程必定是當前系統上運行的子進程、有些一旦父進程掛了、子進程也將不復存在、俗話說:皮之不存毛將焉附,是這個道理吧;測試
因此咱們使用一個叫screen這個命令來操做,沒安裝本身安裝上就是了、能夠在一個窗口上啓動n個虛擬的桌面,即便退出了也會保留以前的內容,切換進screen就能夠看到窗口標題欄上的screen標誌了:spa
# screen -ls:能夠查看當前啓用了多少個screen
按Ctrl+a,鬆開再按d能夠隱藏screen桌面
由於編譯內核須要比較長的時間、因此咱們在screen上編譯、而後再把screen桌面隱藏就能夠了;
從新接入screen:
# screen -r 跟上screenID就能夠了
而後咱們就開始編譯吧;(我這裏編譯差很少用了兩小時、make的時候我不指定cpu的核心數、默認就是用一個核來編譯、因此好久)操作系統
# make設計
編譯好了以後咱們就能夠進行下一步了:
# make modules_install
這步完了以後你能夠查看一下/lib/modules/目錄下就會生成一個以版本號命名的一個文件模塊了
modules以後再往下走、敲命令吧
# make install
安裝完以後會在/boot/目錄下生成一個內核文件vmlinuz-3.13.二、還有幾個跟你當前編譯的版本同樣的文件、能夠ls去看一下:
# ls /boot/
若是沒出什麼問題到這裏咱們應該算是編譯好了一個新內核了;能夠到grub.conf配置文件時看一下:
# vim /boot/grub/grub.conf
好了、要不咱們重啓一下看看、OK、重啓吧!若是順利的話就能夠進到內核選擇界面了,選項咱們編譯的新內核就OK了,好了、到這就結束了!
1、獲取內核源碼,解壓至/usr/src # tar xf linux-3.13.5.tar.xz -C /usr/src # ln -sv /usr/src/linux-3.13.5 /usr/src/linux 2、配置內核特性(選擇一種方法就能夠了) make config:遍歷選擇所要編譯的內核特性 make allyesconfig:配置全部可編譯的內核特性 make allnoconfig:並非全部的都不編譯 make menuconfig:這種就是打開一個文件窗口選擇菜單 make kconfig(KDE桌面環境下,而且安裝了qt開發環境) make gconfig(Gnome桌面環境,而且安裝gtk開發環境) 3、編譯內核 # make [-j #] : #號最多爲CPU物理核心總數的兩倍,這樣會快點哦 4、安裝內核模塊 # make modules_install 5、安裝內核 # make install 6、驗正並測試 # cat /boot/grub/grub.conf 查看新內核是否已經添加, 然後重啓系統並測試
結束: 其實編譯一個新的內核好像也不是很難是吧、跟咱們以前源碼編譯的httpd的步驟差很少、也就是第一步麻煩點、細心點就OK了,固然若是有什麼不對的地方還望各路諸侯多多提點!