环境
虚拟机:VitrualBox,Centos8并安装有git
本篇博客主要讲解本人在环境配置遇到的问题的解决的方法.(初学MIT 6.828课程,如果有错误欢迎指出)
官网教程:
Lab1:Booting a PC
步骤
我们首先在主目录下创建一个名叫6.828的文件夹,后面会clone一个qemu的文件夹装用来跑JOS系统的虚拟机,另外一个lab文件夹用来装JOS系统。
cmd输入以下命令是讲JOS系统的源码clone到本地lab文件夹(lab文件夹自动创建):
athena% mkdir ~/6.828
athena% cd ~/6.828
athena% add git
athena% git clone https://pdos.csail.mit.edu/6.828/2017/jos.git lab
Cloning into lab...
athena% cd lab
athena% make
效果:
如果提示undefined reference to `__udivdi3’ 就说明你没有32位的GCC multilib 下载一个对应GCC版本的multilib就可以解决的。记住要对应版本的。
编译工具链
编译工具链是一个工具集包括c编译器,汇编编译器,连接器。
在命令行下执行
gcc -m32 -print-libgcc-file-name
如果输出
/usr/lib/gcc/i486-linux-gnu/version/libgcc.a
或
/usr/lib/gcc/x86_64-linux-gnu/version/32/libgcc.a
说明没有问题了。
否则执行
sudo apt-get install -y build-essential gdb
进行安装。在64位的机器上还需要安装32位支持库
sudo apt-get install gcc-multilib
否则后面make的时候可能会出现"__udivdi3 not found"的情况。
安装QEMU模拟x86机器
官网下载:
下载链接
以从git上下载为例:
1,2,3,4步直接执行。
第5步配置config语句替换为:
./configure --disable-kvm --disable-werror --target-list="i386-softmmu x86_64-softmmu"
报错:
出现:ERROR: Python not found. Use --python=/path/to/python
解决:添加–python=python3,
还是不行提示Note that Python 3 or later is not yet supported。安装python2.7,然后使用–python=python2.7选项。
报错2:
Ninja是Google的一名程序员推出的注重速度的构建工具,一般在UnixLinux上的程序通过make/makefile来构建编译,
而Ninja通过将编译任务并行组织,大大提高了构建速度,而qemu现在采用的是基于ninja的构建系统,所以我们得先安装ninja;
构造Ninja可使用CMake或python,需要先安装re2c
然后在qemu目录下执行make&&make install
再到lab下输入make qemu:
出现类似的界面就是成功了喔:
以上就是6.828实验的实验环境搭建部分,这里提示,如果出现安装过程混乱了的情况,可以把整个6.828文件夹删除重新再来,已经安装的包再安装不会冲突,系统会自动检测。只要每一步按顺序进行,就可以完成,这个过程中遇到的bug可以自己再查查,都能找到解决方案。
以上~