Linux內核知識


版本

linus樹

Linux內核最初創始人--Linus Torvalds管理一個Linus樹,linus樹也稱為主線(mainline)。一般指的upstream,“上游”,也指這個linus樹或者各種開發樹。

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

stable樹

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

發布版內核

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

獲取上游內核可以從http://www.kernel.org獲取

如何對內核進行編譯

1 獲取源代碼

2 設置

3 編譯

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

5 安裝內核印象和模塊

 

比如ubuntu發布版必要的源碼包是:

libncurses5-dev   基於控制台(文字界面)設置時需要

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

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

kernel-package

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM