MIT Operating System - 1 - 环境配置

# MIT Operating System - 1 - 环境配置 ## 1.1 克隆项目源代码至文件夹code ~~~ git clone https://pdos.csail.mit.edu/6.828/2018/jos.git lab ~~~
## 1.2 编译工具链 由于项目使用gcc进行编译,我们需提前准备好编译工具,同时,我们的项目是运行在32位系统上的,如果虚拟机时32位的则需要配置32位开发环境 执行 ~~~ sudo apt-get install -y build-essential gdb sudo apt-get install gcc-multilib ~~~ 之前在安装编译环境时,我使用上述方法,安装了最新版本的build-essential,但是后面发现,由于项目使用较老版本的C语言风格,需使用6.x版本的gcc,所以此次配置环境,我们使用`apt-cache search build-essential` 寻找合适的开发工具版本,查找结果如下、 <img src=1.png> 并没有旧版本的build-essential,看来是我在想peach了,一会再做一遍吧
## 1.3 QEMU模拟器的安装 从官方git仓库下载 ~~~ git clone https://github.com/mit-pdos/6.828-qemu.git qemu ~~~ 再config之前,我们需要先做一些配置 1. 安装python2.7 `apt-get install python2.7`,并在命令中添加`--python=python2.7`选项 2. 安装pkg config    `apt-get install -y pkg-config` 3. 安装 `apt-get install zlib1g-dev ` 4. 安装 `apt-get install libglib2.0-dev` 5. 安装 `apt-get install libpixman-1-dev` 最后执行配置 ~~~ ./configure --disable-kvm --target-list="i386-softmmu x86_64-softmmu --python=python2.7"  ~~~ 出现如下输出,即表示配置成功 <img src="2.png"> 最后,我们执行遇到问题最多的 make && make install #### 问题1: 出现: <img src="3.png"> 我们打开文件/qga/command-posix.c <img src="4.png"> 添加 `include <sys/sysmacros.h>` 一句 #### 问题2: 出现: <img src="5.png"> 可以看到时fprintf的问题,这个问题搜了很久,有回答说是gcc7.x对fprintf加大了检查力度,导致我们的老代码无法执行,所以,我们把gcc降级 第一步 安装  执行 `sudo apt-get install gcc-6` 第二步 重新建立软连接  ~~~ cd /usr/bin    #进入/usr/bin文件夹下 sudo rm -r gcc  #移除之前的软连接 sudo ln -sf gcc-6 gcc #建立gcc4.7的软连接 sudo rm -r g++  #同gcc sudo ln -sf g++-6 g++ ~~~ #### 问题3: 出现: <img src='6.png'> 可以发现不能找到c++命令,这个问题困扰了我很久,装了许多C++相关的包,都不起作用,最后,知识把c++绑定到gcc,就可以了 在 /usr/bin 下执行 `ln -sf gcc-6 c++` 即可
最后我们再 执行 `make install` 出现 <img src="7.png"> 即代表 安装成功 ## 编译执行lab所需内容 ~~~ make make qemu ~~~ 如果看到 <img src="8.png"> 即代表环境配置成功
上一篇:Operating System: Semaphore


下一篇:理解talib历史脉络及python安装