Linux内核设计与实现:从内核出发
Linux内核设计与实现:从内核出发
获取内核源码
- 登录Linux内核官网 http://www.kernel.org 获取当前Linux内核版本。
- 使用Git拉取最新Linux内核版本。
内核源码树
内核源码树由许多目录组成。
目录 描述 arch 特定体系结构的源码 block 块设备I/O层 crypto 加密API Documentation 内核源码文档 drivers 设备驱动程序 firmware 使用某些驱动程序而需要的设备固件 fs VFS和各种文件系统 include 内核头文件 init 内核引导和初始化 ipc 进程间通信代码 kernel 像调度程序这样的核心子系统 lib 通用内核函数 mm 内存管理子系统和VM net 网络子系统 samples 示例、示范代码 scripts 编译内核所用的脚本 security Linux安全模块 usr 早期用户空间代码 tool 在Linux开发中有用的工具 virt 虚拟化基础结构
编译内核
- 使用
make config
命令遍历所有配置项,要求用户选择yes
、no
或者module
。 - 使用
make menuconfig
命令或make gconfig
命令开启图形化界面配置内核。 - 使用
make defconfig
命令使用默认配置。 - 内核配置好之后,使用
make
命令编译内核。
内核开发的特点
- 不能访问C库也不能访问标准的C头文件
- 必须使用GUN C
- 缺乏像用户空间那样的内存保护机制
- 难以执行浮点运算
- 内核给每个进程只有一个很小的定长堆栈
- 必须时刻主要同步和并发
- 考虑可移植性
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!