Linux Kernel 源码介绍
kernel 代码特性
- 移植性好
- kernel 代码是用
GNU C
实现,非 ANSI C
,区别- kernel 代码不能访问标准
C程序库(libc)
和 头文件
(例如打印使用 printk
,非 printf
)
- kernel 程序是
可抢占的(preemptive)
,支持 多处理 Symmetrical Multiprocessing(SMP)
和 异步中断(Asynchronous Interrupt)
,所以开发 kernel 程序时需考虑并发和同步
开发工具
配置步骤:
- 环境准备:vscode 安装
C++ Intellisense
插件 - 下载安装内核源码并执行一次编译
cd linux
make defconfig
make -j4
# 1. clone 代码
git clone git@github.com:amezin/vscode-linux-kernel.git .vscode
# 2. 修改 .vscode/c_cpp_properties.json 中的 intelliSenseMode 为 x64 架构
# 3. 生产 compile_commands.json
python .vscode/generate_compdb.py
# 4. 打开
code .