前言
6.828:Operating System Engineering
操作系统课程实验环境配置教程
课程地址:https://pdos.csail.mit.edu/6.828/2018/schedule.html
按照labs->tools中教程进行配置即可,不过用到的很多文件及依赖已经被淘汰了,可能会有一些报错,可参考本文中的解决方法。
实验环境选用VMware即可,博主用的腾讯云轻量应用服务器
操作系统:Ubuntu Server 20.04 LTS 64bit
Compiler Toolchain
Test Toolchain
1 | $ objdump -i // second line says elf32-i386 |
测试gcc
1 | $ gcc -m32 -print-libgcc-file-name |
成功则显示
腾讯云搭载了部分基础的应用及依赖,虚拟机新系统可能没有,可运行以下指令安装。
1 | $sudo apt-get install -y build-essential gdb git vim |
Build Toolchain
Download Package
官方网站的gmp下载链接可能无法访问,按以下链接下载即可。
- https://mirrors.sjtug.sjtu.edu.cn/gnu/gmp/gmp-5.0.2.tar.bz2
- https://www.mpfr.org/mpfr-3.1.2/mpfr-3.1.2.tar.bz2
- http://www.multiprecision.org/downloads/mpc-0.9.tar.gz
- http://ftpmirror.gnu.org/binutils/binutils-2.21.1.tar.bz2
- http://ftpmirror.gnu.org/gcc/gcc-4.6.4/gcc-core-4.6.4.tar.bz2
- http://ftpmirror.gnu.org/gdb/gdb-7.3.1.tar.bz2
Unpack and Build
Install gmp-5.0.2
1 |
|
若第三条指令显示No usable m4 in $PATH or /usr/5bin是缺失库文件,执行以下指令再重新执行第三条指令。
1 |
Install mpfr-3.1.2
1 |
|
Install mpc-0.9
1 |
|
Install binutils-2.21.1
1 |
|
测试结果
1 |
安装成功则输出以下信息
Install gcc-core-4.6.4
gcc需要单独的目录否则编译不成功
1 | $tar xjf gcc-core-4.6.4.tar.bz2 |
若第八条指令报错configure-target-libgcc
则执行以下命令后重新执行第八条指令
1 | $export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib |
测试安装结果
1 |
成功后输出以下信息
Install gdb-7.3.1
1 | $tar xjf gdb-7.3.1.tar.bz2 |
若第四条指令报错no termcap library found,缺少库文件,执行以下指令安装termcap后重新执行。
1 |
|
QEMU
QEMU是一种现代且快速的 PC 模拟器,828课程要求该课程定制的QEMU版本。
直接用官方教程中的指令可能会报错,可以尝试更换python版本。
Install Tools
1 |
若执行第一条指令后发现apt,git等指令无法正常使用,报错undefined symbol: __gmpz_limbs_write,则执行以下指令:
1 | cd /usr/local/lib |
Install QEMU
1 | $git clone https://github.com/mit-pdos/6.828-qemu.git qemu |
遇到报错如下:
解决方法:在 qga/commands-posix.c文件中的 #include <sys/types.h> 下面增加#include <sys/sysmacros.h>
Test QEMU
下载实验源码进行测试
1 | $git clone https://pdos.csail.mit.edu/6.828/2018/jos.git lab |
测试成功界面