内核源码
获取源码
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
源码树
目录描述
arch特定体系结构源码block块设备I/O层crypto加密APIDocumentation源码文档drivers设备驱动程序firmware某些驱动需要的设备固件fsVFS和各种文件系统include头文件init内核引导和初始化ipc进程间通信kernel核心子系统lib通用内核函数mm内存管理子系统和VMnet网络子系统samples实例代码scripts编译依赖的脚本security安全模块sound语音子系统usr早期用户空间代码tools工具virt虚拟化基础结构
实践
查看COPYING,CREDITS,MAINTAINERS,Makefile查看tools下的工具有哪些usr有什么内容arch 包含什么drivers里面包含哪些kernel 包含哪些,进程调度
总结
文件系统、驱动程序、进程间通信、内存管理、网络、安全模块、设备I/O、内核引导和kernel
编译
编译配置
make config 逐一遍历所有配置
make defconfig 使用默认配置
make oldconfig
实践
查看.config内容,理解.configzcat /proc/config.gz > ./configmake > /dev/null
安装新内核
make modules_install
内核开发特点
不能访问C库和标准C头文件必须使用GNU C没有内存保护机制难以执行浮点运算每个进程只有很小的定长堆栈时刻注意同步和并发
转载请注明原文地址: https://ju.6miu.com/read-659919.html