发布于
操作系统学习日志 02
获取 BenOS
我们可以在 github 上找到 BenOS 的源码,地址
我们使用 git clone 命令下载到本地:
git clone https://github.com/runninglinuxkernel/arm64_programming_practice.git
编译 BenOS
我们需要安装编译工具链:
sudo apt install qemu-system-arm libncurses5-dev gcc-aarch64-linux-gnu build-essential git bison flex libssl-dev
我们进入到chapter02/lab01_hello_benos/BenOS目录下,执行如下命令编译:
make
然后目录下就会生成benos.bin可执行文件以及benos.elf文件,如果你的 qemu 支持树莓派 4,可直接使用make run命令来调用 qemu 虚拟机来模拟树莓派运行:
make run
#较新的 qemu 支持树莓派 4B: qemu-system-aarch64 -machine raspi4b -nographic -kernel benos.bin
Welcome BenOS!
GDB 调试
我们可以使用 GDB 调试器来调试 BenOS,首先安装 gdb:
sudo apt install gdb-multiarch
然后我们需要设置 qemu 的串口以及进入调试模式:
qemu-system-arm -machine raspi4b -serial null -serial mon:stdio -nographic -kernel benos.bin -S -s
# 要退出 qemu,按下 Ctrl-A X 即可。
接着我们在另一个终端执行 gdb 命令:
gdb-multiarch --tui build/benos.elf

进入这个界面后回车,然后依次输入三个命令:
target remote localhost:1234
b _start
c
结果如下图:

然后我们在 gdb 里输入s命令来单步执行,可以看到程序的执行流程:

总结
本文介绍了如何获取 BenOS,编译,以及使用 GDB 调试器来调试 BenOS,下一篇我们来解构 BenOS 的源码。