Mamba spirit

Gra55

愿背井离乡、追寻梦想的你归来仍是少年

【MIT 6.828】2. 实验环境准备

做实验之前,对需要的 toolchain 进行安装

gra55

1-Minute Read

0x00 简述

我的实验环境:

  • CentOS 7

0x01 工具安装

整个实验环境需要两类工具:ToolChain、QEMU 模拟器

ToolChain 工具链

ToolChain 包含汇编器、连接器、C 编译器和 debug 工具。

一般的现代 Linux 系统都自带了 6.828 需要的 ToolChain,命令 objdump -igcc -m32 -print-libgcc-file-name 如果都能执行成功,说明 ToolChain 工具链已经就绪。

我的 CentOS 自带了 ToolChain 工具链,所以没有安装,如果有问题或者需要自己安装 ToolChain 工具链,可以参考官方文档B 站 UP 主的视频指导,推荐B 站 UP 主的视频指导,该视频讲解的很详细。

更新补充: 使用 linux 自带的工具链还是有些问题,需要到 JOS 中将 conf/env.mk 中的 GCCPREFIX= 注释掉,比较麻烦,估计坑也不少,建议按照官方文档安装。

本人打包好的工具链安装包:点击下载

安装命令如下:

tar xjf gmp-5.0.2.tar.bz2;cd gmp-5.0.2;./configure --prefix=/usr/local;make;make install;cd ..

tar xjf mpfr-3.1.2.tar.bz2;cd mpfr-3.1.2;./configure --prefix=/usr/local;make;make install;cd ..

tar xzf mpc-0.9.tar.gz;cd mpc-0.9;./configure --prefix=/usr/local;make;make install;cd ..

tar xjf binutils-2.21.1.tar.bz2;cd binutils-2.21.1;./configure --prefix=/usr/local --target=i386-jos-elf --disable-werror;make;make install;cd ..

i386-jos-elf-objdump -i

tar xjf gcc-core-4.6.4.tar.bz2;cd gcc-4.6.4;mkdir build;cd build
../configure --prefix=/usr/local --target=i386-jos-elf --disable-werror --disable-libssp --disable-libmudflap --with-newlib --without-headers --enable-languages=c MAKEINFO=missing
make all-gcc
make install-gcc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib # 可以加到 ~/.bashrc 文件中,避免每次手动导入
make all-target-libgcc
make install-target-libgcc
cd ../..

i386-jos-elf-gcc -v

tar xjf gdb-7.3.1.tar.bz2;cd gdb-7.3.1;./configure --prefix=/usr/local --target=i386-jos-elf --program-prefix=i386-jos-elf- --disable-werror;make all;make install;cd ..

git clone https://github.com/mit-pdos/6.828-qemu.git qemu
./configure --disable-kvm --disable-werror --prefix=/usr/local --target-list="i386-softmmu x86_64-softmmu"
make && make install

# 下载课程 jos 代码:
git clone https://pdos.csail.mit.edu/6.828/2018/jos.git lab

QEMU 模拟器

QEMU 建议安装 6.828 专用的 path 版本,仓库为 https://github.com/mit-pdos/6.828-qemu.git,可参考官方文档安装,安装时的简单报错可以根据提示很容易修复。

0x02 Troubleshooting

  1. 安装 QEMU 时 pixman 报错

    • 首选:yum install pixman-devel
    • git submodule update --init pixman 把 pixman 代码下载下来即可
  2. 编译 QEMU 时出现 glib-2.22 gthread-2.0 is required to compile QEMU

    • yum install glib2yum install glib2-devel

0xff 参考

MIT 6.828 参考资料

Recent Posts

Categories

About

Ordinary but not mediocre, fighting