xv6实验环境搭建与指导
环境搭建
xv6环境的搭建可参考lab tool,但是在搭建的过程中遇到了许多的问题,故记录下来。
环境介绍
这门课采用软件模拟的方式来调试整个操作系统,也就是说让xv6操作系统运行在一个用软件仿真出来的x86计算机上。这个仿真软件就是QEMU,这个仿真器有一个非常好的优点,就是它能和调试器GDB共同配合使用,这样的话我们就可以一条指令一条指令的调试运行在QEMU里面的xv6操作系统了。
在按照lab tool配置环境的过程中,安装qemu时出现了种种问题,下面列举出安装过程。
QEMU Emulator 安装
git clone git://git.qemu-project.org/qemu.git
./configure --disable-kvm
- ERROR: zlib check failed
Make sure to have the zlib libs and headers installed.sudo apt-get install zlib1g-dev
- ERROR: glib-2.22 gthread-2.0 is required to compile QEMU
sudo apt-get install libglib2.0-dev zlib1g-dev
- ERROR: pixman >= 0.21.8 not present. Your options:
(1) Preferred: Install the pixman devel package (any recent distro should have packages as Xorg needs pixman too). (2) Fetch the pixman submodule, using: git submodule update --init pixman
git submodule update --init pixman
- ERROR: DTC (libfdt) version >= 1.4.0 not present. Your options:
(1) Preferred: Install the DTC (libfdt) devel package (2) Fetch the DTC submodule, using: git submodule update --init dtc
git submodule update --init dtc
- ERROR: zlib check failed
make && make install
- (cd /home/ljm/qemu/pixman; autoreconf -v –install)
/bin/sh: 1: autoreconf: not found
make: *** [/home/ljm/qemu/pixman/configure] Error 127sudo apt-get install dh-autoreconf
- (cd /home/ljm/qemu/pixman; autoreconf -v –install)
利用QEMU来运行xv6操作系统
安装好QEMU之后,我们就可以用它来运行我们的操作系统啦~
当然第一步就是把操作系统的源代码拷贝下来
首先打开一个terminal,然后任意cd到一个目录下,比如我都是在~/Documents这个目录下工作的。
然后输入 git clone https://github.com/fatsheepzzq/6.828mit.git 即可
这样你就会在你的当前目录下面看到一个文件夹6.828mit,这个文件夹下面有一个子文件夹lab,这里面存放的就是所有操作系统源码
然后我们就要先编译这个操作系统源码,来生成能够运行在Qemu上的操作系统映像文件,我们只需要在lab目录下输入命令
make
这样计算机会为我们自动编译整个xv6操作系统,如果你的屏幕上显示下列信息,代表你已经编译成功
我们可以看一下它生成的最后一个信息 mk obj/kern/kernel.img,这个kernel.img就是内核映像文件,另外obj目录在make之前是没有的,它是make指令生成的,它里面将会有许多的文件我们之后会重点观察。
编译完内核源码,我们就可以把它运行在QEMU上!
首先还要是在lab目录下面,输入 make qemu,此时qemu就开始自动加载我们的操作系统内核映像文件了,如果你的屏幕上打印如下信息,就代表你终于运行成功了!
从6828 decimal.. 那句话开始之后的信息都是由xv6操作系统内核显示出来的~
到目前为止,你已经完成了在ubuntu上仿真x86计算机,并且运行xv6操作系统内核了!!
参考资料: