获取内核源代码:
从Linux官方内核网站可以随意获取 http://www.kernel.org
安装内核源代码:
解压缩:
tar xvjf linux-x.y.z.tar.bz2
不要把 /usr/src/linux 目录下的源码作为开发
使用补丁:
patch-pl < ../patch-x.y.z
编译内核:
1.配置:
可以配置的各种选项,以CONFIG_FEATURE形式表示,这些配置项要么是二选一,要么是三选一。二选一就是YES或NO,三选一就是Yes,No,module,module意味着该配置项被选定了,但编译的时候这部分功能的实现代码是以模块的形式生成的,驱动程序一般都用三选一的配置项。
配置选项也可以是字符串或整数,这些选项并不控制编译过程,而只是指定内核源码可以访问的值。
内核提供了各种不同的工具来简化内核配置,
最简单的一种是一个基于文本的命令行工具: make config
该工具会挨个遍历所有配置项,要求用户选择yes,no,module,由于这个过程往往要耗费很多时间,所以建议你利用
基于ncurse库编制的图形界面系统:
make menuconfig
或者,用基于X11的图形工具:
make xconfig
或者,用基于GTK+的图形工具
make gconfig
通过一条命令可以为你的体系结构创建一个默认配置(据说是Linus的配置)
make defconfig
这些配置项会存放在内核代码树根目录下的config文件中,
2、编译内核:
make
3、多个文件同时编译
把编译任务分成多个同时编译的作业,能有效提高效率,在实际中,每个处理器上一般分配1个或2个任务,例如在一个双处理器上,可以输入以下命令:
make -j4
4、安装内核
二、内核开发的特点
1、不能访问C库
2、必须使用GNU C
3、没有内存保护机制
4、浮点数很难使用
5、内核只有一个很小的定长堆栈
6、时刻注意同步和并发
7、要考虑可移植的重要性