目录
开发环境搭建
准备开发主机
开发者首先准备一台 Linux 发行版电脑,推荐 Ubuntu 16.04/Ubuntu 18.04, Ubuntu 电
脑的安装可以上网查找相应的教程。准备好相应的开发主机之后,请参照如下文章进行开
发主机细节配置。
BiscuitOS 开发环境搭建
安装基础开发工具
在编译系统之前,需要对开发主机安装必要的开发工具。以 Ubuntu 为例安装基础的开发
工具。开发者可以按如下命令进行安装:
sudo apt-get install -y qemu gcc make gdb git figlet
sudo apt-get install -y libncurses5-dev iasl
sudo apt-get install -y device-tree-compiler
sudo apt-get install -y flex bison libssl-dev libglib2.0-dev
sudo apt-get install -y libfdt-dev libpixman-1-dev
如果开发主机是 64 位系统,请继续安装如下开发工具:
sudo apt-get install lib32z1 lib32z1-dev
第一次安装 git 工具需要对 git 进行配置,配置包括用户名和 Email,请参照如下命令
进行配置
git config --global user.name "Your Name"
git config --global user.email "Your Email"
获取源码
基础环境搭建完毕之后,开发者从 GitHub 上获取项目源码,使用如下命令:
git clone https://github.com/BiscuitOS/BiscuitOS.git
cd BiscuitOS
BiscuitOS 项目是一个用于制作精简 linux/xv6 发行版,开发者可以使用这个项目获得各种
版本的 linux/xv6 内核,包括最古老的 linux 0.11, linux 0.97, linux 1.0.1 等等,也可
以获得最新的 linux 4.20, linux 5.0 等等。只需要执行简单的命令,就能构建一个可
运行可调式的 linux/xv6 开发环境。
BiscuitOS 编译并运行
BiscuitOS 编译
获得 BiscuitOS 项目之后,可以使用 BiscuitOS 构建 xv6 的开发环境。开发者
只需执行如下命令就可以获得 xv6 完整的 BiscuitOS,如下:
cd BiscuitOS
make MIT-xv6_rev11_defconfig
make
执行 make 命令的过程中,BiscuitOS 会从网上获得系统运行所需的工具,包括
binutils, GNU-GCC,ROOTFS 等工具,以此构建一个完整的 Rootfs。编译过程中需要输入
root 密码,请自行输入,但请不要以 root 用户执行 make 命令。编译完成之后,在命令
行终端会输出多条信息,其中包括 xv6 源码的位置,BiscuitOS 的位置,以及 README
位置。如下:
____ _ _ _ ___ ____
| __ )( _ ) ___ ___ _ _ ( _ ) | _ / _ \/ ___ |
| _ \| / __|/ __ | | | | | __ | | | \ ___ \
| | _ ) | \ __ \ ( __ | | _ | | | | _ | | _ | | ___ ) |
| ____ /|_|___/ \ ___ |\ __ , _ | _ |\ __ |\ ___ /|____/
*******************************************************************
Kernel Path:
BiscuitOS /output/x v6 - rev11 /xv6/x v6 /
README:
BiscuitOS /output/x v6 - rev11 / README . md
Blog
https: // biscuitos . github . io
*******************************************************************
开发者首先查看 README 中的内容,README 中介绍了 xv6 等编译方法,按照 README
中的提示命令进行编译。例如 README 内容如下:
xv6-rev11 Usermanual
----------------------------
# Build Kernel
```
cd BiscuitOS/output/xv6-rev11/xv6/xv6
make
```
# Running Kernel
```
cd BiscuitOS/output/xv6-rev11/xv6/xv6
make qemu
```
Reserved by @BiscuitOS
运行 xv6 内核
完成上面的步骤之后,开发者就可以运行 xv6 内核,使用如下命令即可:
cd BiscuitOS/output/xv6-0.11/xv6/xv6
make qemu
编译 xv6 内核
配置完内核之后,接下来就是编译内核,根据 README 里提供的命令进行编译,具体命
令如下:
cd BiscuitOS/output/xv6-rev11/xv6/xv6
make
编译输出如下 log,以此编译完成
至此,一个 xv6 内核已经运行,开发者可以根据自己兴趣和需求对内核进行魔改。
xv6 内核调试
BiscuitOS 的 xv6 内核也支持多种调试,其中比较重要的方式就是 GDB 调试,开发者
可以使用 GDB 对内核进行单步调试,具体步骤如下:
首先使用 QEMU 的调试工具,将内核挂起等待调试,使用如下命令:
cd BiscuitOS/output/xv6-rev11/xv6/xv6
make qemu
附录
BiscuitOS Home
BiscuitOS Driver
BiscuitOS Kernel Build
Linux Kernel
Bootlin: Elixir Cross Referencer
赞赏一下吧 🙂