UNIX v6(x86)版本的代码短小精悍,非常值得学习调试。而且代码量比较少,容易找到方向。
我使用的Ubuntu 12.04 32位的系统。
首先下载代码,下载地址 https://github.com/guilleiguaran/xv6。该版本的代码能运行在x86平台的。
接着安装 qemu,执行sudo apt-get install qemu即可。
解压下载的代码到某个目录,我这里使用unzip解压。
cd命令进入到代码的根目录,接着执行 sudo make qemu-gdb 命令编译xv6源码,同时运行qemu。
这时候,打开运行另外一个Terminal,同样cd命令进入到xv6代码的根目录,然后执行 gdb 命令进入调试。
设置断点到 bootasm.S 的代码中,地址为 0x7c00。如下图所示(接下去好好调试吧):