内核开发过程中,阅读源码和查看源码定义,以及查看函数调用处是必不可少的功能,本节推荐在 BiscuitOS 下使用 ctags 和 grep 工具协助源码阅读. 参考如下命令进行部署和使用(在部署之前请确保已经部署 BiscuitOS 开发环境,如果未部署请参考 《BiscuitOS 用户手册 - 1.2》):

# 切换到 BiscuitOS 项目目录
cd /BiscuitOS
# 选择开发环境,如果已经选择过可以跳过,这里与 linux 6.10 X86 为例
make linux-6.10-x86_64_defconfig
make docker
# 切换到 Linux 内核源码目录
cd /BiscuitOS/output/linux-6.10-x86_64/linux/linux
# 生成源码 ctags 数据库
#  不同的 Architecture 命令存在差异
#  1. X86   => ARCH=x86_64
#  2. ARM32 => ARCH=arm
#  3. ARM64 => ARCH=arm64
#  4. i386  => ARCH=i386
make ARCH=x86_64 tags -j98

# 添加全局配置

在 “~/.vimrc” 文件里添加全局配置,可以使用 “set tags” 命令同时支持多个 CTAGS 数据库, 也可以在 vim 打开源码的时候,使用 “:set tags=XXX” 方式动态添加 CGTAGS 数据库.

当需要查看某个函数的定义时,可以将光标移动到函数位置,然后同时按下 “Ctrl” 和 “]” 两个按键,既可以跳出函数的定义,如果该函数符号有多个定义,可以在给出的选项中使用数字进行跳转选择. 当需要从函数定义中返回,可以同时按下 “Ctrl” 和 “t” 两个按键. 但需要查看某个函数在哪些地方调用,可以参考如下命令:

# 切换到 Linux 内核源码目录
cd /BiscuitOS/output/linux-6.10-x86_64/linux/linux
#  使用 grep 命令,例如 start_kernel
grep start_kernel * -nR --include "*.c"

以上便是 BiscuitOS 推荐的源码浏览工具,开发者可以根据需要自行部署.