Linux內核最初創始人--Linus Torvalds管理一個Linus樹,linus樹也稱爲主線(mainline)。通常指的upstream,「上游」,也指這個linus樹或者各類開發樹。php
linus樹是以2.6.x這樣的三個數字來表示。好比Linux 2.6.18-164.el5xen 的linus樹中的內核版本就是2.6.18linux
這個是針對某個具體的內核版本進行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
好比ubuntu發佈版必要的源碼包是:開發
libncurses5-dev 基於控制檯(文字界面)設置時須要get
qt3-dev-tools 基於窗口(圖形界面)設置時須要源碼
g++ 基於窗口(圖形界面)設置時須要qt
kernel-package it
fakeroot
dpkg-dev
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
cd /home/yejianfeng/linux-source-XXXX
make menuconfig
exit -- 保存修改
(退出能夠看到根目錄下有個.config文件就是配置)
make
11.18 --
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