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系统下)。
这门课采用软件模拟的方式来调试整个操作系统,也就是说让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
currently defined by
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
*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删除之后就是警告了,不是错误。