第二章 从内核出发

本文详细介绍了如何从获取内核源码到安装新内核的整个过程,包括使用git获取源码、安装、配置、编译、安装内核模块以及内核开发注意事项。重点强调了配置内核的不同方式,如命令行、ncurses图形界面和gtk+工具,并提供了编译加速的技巧。
摘要由CSDN通过智能技术生成

第二章 从内核出发


获取内核源码

Linux内核官方网站:http://www.kernel.org
可以完整的压缩形式(tar创建的),也可以是增量补丁形式。
也可以使用git获取内核源代码,下面只是一个例子:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

更新分支:

git pull

安装内核源码

内核压缩有gzip和bzip两种形式

bzip解压命令:
tar xvjf linux-x.y.z.tar.bz2
GNU的zip解压命令:
tar xvzf linux-x.y.z.tar.gz

内核源码一般安装在/usr/src/linux目录下。不要把这个源码树用于开发,不要以root身份对内核进行修改。

补丁

应用增量补丁,从内核源码树开始,运行:

patch -pl < ../patch-x.y.z

编译内核

配置内核

在编译内核前,必须对其进行配置,对内核的功能进行选择和设置。
有许多工具用来简化这种配置。

1.命令行,逐一选择,耗时
make config
2.基于ncurse的图形化界面
make menuconfig
3.基于gtk+的图形工具
make gconfig
make defconfig

会基于体系结构创建一个默认的配置。
配置项被放在内核代码树根目录下的.config文件中,这个文件可以直接修改。
在配置新的代码树时,应该验证和更新配置:

make oldconfig

配置选项CONFIG_IKCONFIG_PROC把完整的压缩过的内核配置文件放在/proc/config.gz下:

zcat /proc/config.gz > .config
make oldconfig

配置好后,进行编译:

make
如果要加快速度的话,可以使用
make -jn
n是作业数,具体例子
make -j32 >/dev/null

内核信息输出

把垃圾信息重定向

make >  ..  /detritus
或者
make > /dev/null

安装新内核

内核编译好后需要进行安装,具体安装和体系结构即启动引导工具有关。
模块的安装是自动的,独立于体系结构的。

make modules_install

内核开发

内核开发与用户空间内应用程序的开发有很大区别,需要特别注意,

  1. 无libc库,无标准头文件
  2. GNU C
  3. 没有内存保护机制
  4. 难以支持浮点数
  5. 容积小而固定的栈
  6. 同步和并发
  7. 可移植
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值