linux内核 听课笔记

[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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值