操作系统学习日志 02

开发 #OS
目录

获取 BenOS

我们可以在 github 上找到 BenOS 的源码,地址

我们使用 git clone 命令下载到本地:

code
git clone https://github.com/runninglinuxkernel/arm64_programming_practice.git

编译 BenOS

我们需要安装编译工具链:

code
sudo apt install qemu-system-arm libncurses5-dev gcc-aarch64-linux-gnu build-essential git bison flex libssl-dev

我们进入到chapter02/lab01_hello_benos/BenOS目录下,执行如下命令编译:

code
make

然后目录下就会生成benos.bin可执行文件以及benos.elf文件,如果你的 qemu 支持树莓派 4,可直接使用make run命令来调用 qemu 虚拟机来模拟树莓派运行:

code
make run
#较新的 qemu 支持树莓派 4B: qemu-system-aarch64 -machine raspi4b -nographic -kernel benos.bin
Welcome BenOS!

GDB 调试

我们可以使用 GDB 调试器来调试 BenOS,首先安装 gdb:

code
sudo apt install gdb-multiarch

然后我们需要设置 qemu 的串口以及进入调试模式:

code
qemu-system-arm -machine raspi4b -serial null -serial mon:stdio -nographic -kernel benos.bin -S -s
# 要退出 qemu,按下 Ctrl-A X 即可。

接着我们在另一个终端执行 gdb 命令:

code
gdb-multiarch --tui build/benos.elf

图 0

进入这个界面后回车,然后依次输入三个命令:

code
target remote localhost:1234
b _start
c

结果如下图:

图 1

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

图 2

总结

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

目录