0.LAB1介绍
实验3个部分:
1.熟悉x86汇编语言,QEMU模拟器,bootstrap过程
2.测试os(jos)内核的bootloader(在lab中boot文件夹下)
3.探究最初的jos
1.LAB1软件准备
0.使用git管理实验资源Git手册 中文版
1.下载 jos包与工具链
git clone https://pdos.csail.mit.edu/6.828/2018/jos.git lab
#安装编译工具链
sudo apt-get install -y gcc-multilib build-essential gdb
2.安装6.828打补丁版的qemu:
#下载qemu包
git clone https://github.com/mit-pdos/6.828-qemu.git qemu
sudo apt install libsdl1.2-dev libtool-bin libglib2.0-dev libz-dev libpixman-1-dev
./configure --disable-kvm --disable-werror
#注意需要python2版本,如果没有可以直接apt-install python安装
#如果是python3版本则移动旧的软连接后建立新的软链接
sudo mv /usr/bin/python .../python3
ln -s .../python2 /usr/bin/python
python -V #查看软连接版本
#如果出现libfdt包缺失执行下面的语句:
sudo apt-get install libfdt-dev
#重新生成configure ./configure --disable-kvm --disable-werror
make && make install
#如果遇到未定义major() and minor()的问题,在出错文件里加上头文件<sys/sysmacros.h>就好了。
2.正式实验
Part 1:PC Bootstrap
1.熟悉x86汇编(这本书是intel格式的,我们要用的是unix下AT&T格式的):两种语法格式的区别介绍
(ps:可以参考csapp第三章汇编语言那部分的内容。)阅读:80386手册
2.Simulating the x86()
cd lab
make
make qemu
出现如下图所示的qemu界面:
3.The ROM BIOS
探究处理器的启动过程:
在lab文件夹下打开两个终端,分别打开qemu-gdb和gdb(注意先打开qemu调试器再打开gdb)
make qemu-gdb #等待处理器执行第一条指令