
再开始 lab 之前,我们先进行环境配置。
配置环境
看 xv6 网站上的教程,安装依赖软件包
https://pdos.csail.mit.edu/6.828/2023/tools.html
使用 Debina/Ubuntu 系统,
apt-get update |
依赖安装完成后,编译运行 xv6,
git clone git://g.csail.mit.edu/xv6-labs-2023 |
特别备注: 执行 make qemu
会进入 xv6 系统里,想退出 qemu, 先按 ctrl + a, 紧接着按 x 即可退出 qemu。
配置 vscode 自动代码跳转
当使用 vscode 编写 xv6 代码时候,即使安装 clangd,也是没有代码自动跳转的。因为 clangd 需要compile_commands.json
理解项目代码,才能实现正确的代码跳转。对于 xv6 项目,我们使用 bear 将整个项目完整编译一遍,bear 会为我们生成需要的 compile_commands.json
。
apt install bear |
More: https://clangd.llvm.org/installation.html#compile_commandsjson
禁用 vscode clangd 插件自动插入头文件
有时候,vscode 的 clagnd 会自动为我们加入 glibc 的头文件,
因为 xv6 不是 linux,也不使用 glibc,所以 clangd 自动加入的头文件也是错误的。 在 vscode 设置的 clangd 插件添加 --header-insertion=never
命令行选项,禁用自动插入头文件。重启 vscode 生效。
路径:Settings -> Extensions -> clagnd -> Clangd: Arguments -> Add Item
配置 clang-format 代码格式化
clang-format 可以用于自动格式化 C/C++ 代码,为我们 xv6 写一个 .clang-format 文件后,使用 vscode 的快捷键可以自动格式化代码。
apt install clang-format |
使用如下配置,此配置的风格和 xv6 代码风格最为相似,
BasedOnStyle: LLVM |
clang-format 支持很多配置项,自定义一个自己的喜欢代码风格也不是一件难事。
More: https://clang.llvm.org/docs/ClangFormatStyleOptions.html