MIT-6.828 环境搭建

实验环境

win10支持WSL,在windows上也能享受到原生linux一样的体验。用Xshell登陆本地WSL.

可参考https://www.cnblogs.com/zzhaolei/p/11068189.html。

 

编译工具链

编译工具链是一个工具集包括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进行安装(Ubuntu系统下)。

 

QEMU模拟器安装

 这门课采用软件模拟的方式来调试整个操作系统,也就是说让xv6操作系统运行在一个用软件仿真出来的x86计算机上。这个仿真软件就是QEMU,这个仿真器有一个非常好的优点,就是它能和调试器GDB共同配合使用,这样的话我们就可以一条指令一条指令的调试运行在QEMU里面的xv6操作系统了。

安装步骤:

1. git clone  git://git.qemu-project.org/qemu.git 这样就把QEMU的源文件都下载到本地了,此时目录下面多了一文件夹,叫qemu。  (在这一步之前最好先安装一下这些:

sudo apt-get install libsdl1.2-dev

 sudo apt-get install libz-dev

sudo apt-get install libpixman-1-dev)

2.先cd到qemu目录下;然后执行./configure --disable-kvm --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,然后使用--python2.7选项

报错:
Disabling libtool due to broken toolchain support

解决:apt-get install libtool*

参考文章:https://blog.csdn.net/aiyimo_/article/details/78655372

 

3.执行make && make install.

 出现错误:

qga/commands-posix.c: In function ‘dev_major_minor’:
qga/commands-posix.c:633:13: error: In the GNU C Library, "major" is defined
 by . For historical compatibility, it is
 currently defined by as well, but we plan to
 remove this soon. To use "major", include
 directly. If you did not intend to use a system-defined macro
 "major", you should undefine it after including . [-Werror]
         *devmajor = major(st.st_rdev);

其实根据错误提示解决方法:在qga/commands-posix.c的 头文件后面加就可以了。

 另一个错误:

block/blkdebug.c: In function ‘blkdebug_refresh_filename’:
block/blkdebug.c:749:31: error: ‘%s’ directive output may be truncated writing up to 4095 bytes into a region of size 4086 [-Werror=format-truncation=]
                  "blkdebug:%s:%s",

 

将 config-host.mak 文件中最后几行中的-Werror删除之后就是警告了,不是错误。

 

 

你可能感兴趣的:(MIT-6.828 环境搭建)