Linux內核知識

版本

linus樹

Linux內核最初創始人--Linus Torvalds管理一個Linus樹,linus樹也稱爲主線(mainline)。通常指的upstream,「上游」,也指這個linus樹或者各類開發樹。php

linus樹是以2.6.x這樣的三個數字來表示。好比Linux 2.6.18-164.el5xen 的linus樹中的內核版本就是2.6.18linux

stable樹

這個是針對某個具體的內核版本進行bug修復,使其更加穩定的樹。這個樹的版本號是在linus樹的版本號後加一個數字。好比Linux 2.6.18-164.el5xen 的linus樹中的內核版本就是2.6.18,stable版本是164。ubuntu

發佈版內核

基於linus樹或者stable樹添加特有擴展和bug修改,以知足一些特定的用戶的需求而發行的一些版本就叫作發行版。好比Fedora,Ubuntu,Centos等。ui

獲取上游內核能夠從http://www.kernel.org獲取es5

如何對內核進行編譯

1 獲取源代碼

2 設置

3 編譯

4 根據發佈版生成相應的源碼包

5 安裝內核印象和模塊

 

好比ubuntu發佈版必要的源碼包是:開發

libncurses5-dev   基於控制檯(文字界面)設置時須要get

qt3-dev-tools  基於窗口(圖形界面)設置時須要源碼

g++ 基於窗口(圖形界面)設置時須要qt

kernel-package it

fakeroot

dpkg-dev

 

具體步驟

1 獲取源碼:

apt-get install linux-source

cp /usr/src/linux-source-XXXX.tar.bz2  /home/yejianfeng/

cd /home/yejianfeng

tar xjf linux-source-XXXX.tar.bz2

2 設置

cd  /home/yejianfeng/linux-source-XXXX

make menuconfig

exit -- 保存修改

(退出能夠看到根目錄下有個.config文件就是配置)

3 編譯

make

11.18 --

4 安裝內核

make modules_install

make install

遇到問題:

第二步 make menuconfig的時候出現錯誤:

** Unable to find the ncurses libraries or the

*** required header files.

*** 'make menuconfig' requires the ncurses libraries.

***

*** Install ncurses (ncurses-devel) and try again.

***

解決方法:

http://ubuntuforums.org/showthread.php?t=1097968

apt-get install libncurses5-dev

內核模塊

Linux內核是單內核(monolithic kernel),也就是全部的內核功能都集成在一個內核空間內。可是內核具備模塊功能,能夠將各個功能作成模塊添加到內核空間中去。

內核模塊是能夠動態添加到Linux內核空間的,文件擴展名爲ko

相關文章
相關標籤/搜索