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