日期:2014-05-16  浏览次数:20709 次

linux内核 听课笔记
内核空间+用户空间
通过系统调用和硬件中断完成从用户空间到内核空间的转移

内核七大组成
SCI: 为用户空间提供标准的系统调用函数
PM: 进程调度(fork, exec, kill, exit, 通信)
MM: 内存管理
VFS: 为文件操作提供统一的接口
Network Stack: 网络协议栈
Arch: 特定的CPU体系架构
DD: 设备驱动

编译内核
1 清理
make clean 清除生成的文件, 但保存配置
make mrproper 清除生成的文件和配置
make distclean mrproper+删除编辑器的bak文件和补丁文件

2 确定目标系统的软硬件配置

3 配置内核
make config 文本模式
make menuconfig 菜单模式
make oldconfig 文本模式配置新特性
make xconfig 图形化配置

4 编译内核
make zImage
make bzImage
区别: 在X86平台, zImage只能用于小于512K的内核
编译选项为*的文件
编译好的内核位于arch/<cpu>/boot/目录下

本机正在运行的内核的配置文件是/boot/config-版本.el5

5 编译内核模块
make modules
编译选项为m的文件

6 安装内核模块
make modules_install
将编译好的内核模块复制到/lib/modules下

7 制作int ramdisk
mkinitrd initrd-$version $version
例如:
mkinitrd initrd-2.6.29 2.6.29
$version可以到/lib/modules下的目录得到

内核安装(X86平台)
1 cp arch/x86/boot/bzImage /boot/vmlinuz=$version
2 cp $initrd /boot/
3 修改/etc/grub.config