[size=x-large]内核空间+用户空间[/size]
通过[color=red]系统调用和硬件中断[/color]完成从用户空间到内核空间的转移
[img]http://dl.iteye.com/upload/attachment/336389/c7389042-19dd-30fe-b101-c85b5134cb2c.png[/img]
[size=x-large]内核七大组成[/size]
SCI: 为用户空间提供[color=red]标准的系统调用函数[/color]
PM: 进程调度(fork, exec, kill, exit, 通信)
MM: 内存管理
VFS: 为文件操作提供统一的接口
Network Stack: 网络协议栈
Arch: 特定的CPU体系架构
DD: 设备驱动
[img]http://dl.iteye.com/upload/attachment/336391/fffd9bb2-47cd-34f3-8855-8bd4dd4e2916.png[/img]
[size=x-large]编译内核[/size]
[size=medium]1 清理[/size]
make clean 清除生成的文件, 但保存配置
make mrproper 清除生成的文件和配置
make distclean mrproper+删除编辑器的bak文件和补丁文件
[size=medium]2 确定目标系统的软硬件配置[/size]
[size=medium]3 配置内核[/size]
make config 文本模式
make menuconfig 菜单模式
make oldconfig 文本模式配置新特性
make xconfig 图形化配置
[size=medium]4 编译内核[/size]
make zImage
make bzImage
区别: 在X86平台, zImage只能用于小于512K的内核
编译选项为*的文件
编译好的内核位于arch/<cpu>/boot/目录下
本机正在运行的内核的配置文件是/boot/config-版本.el5
[size=medium]5 编译内核模块[/size]
make modules
编译选项为m的文件
[size=medium]6 安装内核模块[/size]
make modules_install
将编译好的内核模块复制到/lib/modules下
[size=medium]7 制作int ramdisk[/size]
mkinitrd initrd-$version $version
例如:
mkinitrd initrd-2.6.29 2.6.29
$version可以到/lib/modules下的目录得到
[size=x-large]内核安装(X86平台)[/size]
1 cp arch/x86/boot/bzImage /boot/vmlinuz=$version
2 cp $initrd /boot/
3 修改/etc/grub.config
通过[color=red]系统调用和硬件中断[/color]完成从用户空间到内核空间的转移
[img]http://dl.iteye.com/upload/attachment/336389/c7389042-19dd-30fe-b101-c85b5134cb2c.png[/img]
[size=x-large]内核七大组成[/size]
SCI: 为用户空间提供[color=red]标准的系统调用函数[/color]
PM: 进程调度(fork, exec, kill, exit, 通信)
MM: 内存管理
VFS: 为文件操作提供统一的接口
Network Stack: 网络协议栈
Arch: 特定的CPU体系架构
DD: 设备驱动
[img]http://dl.iteye.com/upload/attachment/336391/fffd9bb2-47cd-34f3-8855-8bd4dd4e2916.png[/img]
[size=x-large]编译内核[/size]
[size=medium]1 清理[/size]
make clean 清除生成的文件, 但保存配置
make mrproper 清除生成的文件和配置
make distclean mrproper+删除编辑器的bak文件和补丁文件
[size=medium]2 确定目标系统的软硬件配置[/size]
[size=medium]3 配置内核[/size]
make config 文本模式
make menuconfig 菜单模式
make oldconfig 文本模式配置新特性
make xconfig 图形化配置
[size=medium]4 编译内核[/size]
make zImage
make bzImage
区别: 在X86平台, zImage只能用于小于512K的内核
编译选项为*的文件
编译好的内核位于arch/<cpu>/boot/目录下
本机正在运行的内核的配置文件是/boot/config-版本.el5
[size=medium]5 编译内核模块[/size]
make modules
编译选项为m的文件
[size=medium]6 安装内核模块[/size]
make modules_install
将编译好的内核模块复制到/lib/modules下
[size=medium]7 制作int ramdisk[/size]
mkinitrd initrd-$version $version
例如:
mkinitrd initrd-2.6.29 2.6.29
$version可以到/lib/modules下的目录得到
[size=x-large]内核安装(X86平台)[/size]
1 cp arch/x86/boot/bzImage /boot/vmlinuz=$version
2 cp $initrd /boot/
3 修改/etc/grub.config