部分一:准备工作

1.安装VMWare Workstation

没什么好多说的,点击下方官方网站下载VMWare Workstation 15,官网下载需要填写个人资料,这个如实填写即可,下载后按照提示步骤安装。需要注意的是,不要去一些诸如软件之家之类的网站下载,因为里面的软件可能是魔改过的,之前试过一次,然后虚拟机死活连不上网,算是被坑了一道。

官方网站:

https://www.vmware.com/www.vmware.com

2.激活VMWare Workstation

怎么激活呢(手动狗头)?官网购买吗?建议打开万能的綯寳,有能力的同学可以直接用浏览器找。建议在安装前就准备好,安装最后一步直接输入即可。

3.装载ubuntu镜像文件

这里需要注意,装载的ubuntu镜像文件最好选择最新的20版本,如果选用老版本是无法直接安装qemu直接跑的,可能会有一些奇奇怪怪的问题,所以直接选用最新的版本[1]




qemu虚拟机ping宿主机不通 qemu vmware_qemu虚拟机ping宿主机不通


如上图,如何确定你当前的ubuntu版本可不可行呢,如果输入指令:


cat /etc/debian_version


显示的是:


bullseye/sid


就说明你使用的ubuntu版本是可行的,而倘若是:


buster/...


就说明你该去装最新版本啦

这里给出阿里云的ubuntu镜像文件[2],进去链接下载后缀为iso的文件即可:

Index of /ubuntu-releases/20.04/mirrors.aliyun.com


下载好iso文件以后装载的步骤如果不会可以自行百度一下,也可以参考注释[3],安装好后如下图:


qemu虚拟机ping宿主机不通 qemu vmware_qemu虚拟机ping宿主机不通_02


部分二:安装qemu

1.升级apt并更换虚拟机的服务器镜像

按Ctrl+Alt+T打开命令行终端,输入下面的命令更新apt


sudo apt update


这里也简单介绍一下apt是什么,apt的全称为高级打包工具(英语:Advanced Packaging Tools,缩写为APT)是Debian及其派生的Linux软件包管理器。APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程[4]

更换虚拟机的服务镜像很简单,给出我参考的链接[5],接下来简述步骤。打开主页下方的Show Applications,再搜索Software&Update并打开:


qemu虚拟机ping宿主机不通 qemu vmware_ubuntu_03


点击Source code勾选,再点击下方的Download From选择服务器源选择Other,在里面找到China项目,选择阿里云服务器源即可:


qemu虚拟机ping宿主机不通 qemu vmware_ubuntu离线安装gcc_04


选择以后,点击右下角的Close,再点击Reload刷新缓存即完成了服务器的换源:


qemu虚拟机ping宿主机不通 qemu vmware_qemu虚拟机ping宿主机不通_05


此外,如果你使用的是无图形化界面的ubuntu,那么就需要更改文件source_list换源,这种方法在此不再赘述,百度即可

2.使用命令下载前置相关包

这些包是要运行qemu不可或缺的前置组件[6],直接打开命令行终端复制粘贴运行即可安装。注意,这里安装包能否成功运行是和你的ubuntu版本有关系的,不懂的同学可以回去看部分一的第3小节,截图如下:


sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev


qemu虚拟机ping宿主机不通 qemu vmware_ubuntu离线安装gcc_06


3.安装riscv64-unknown-elf-gcc

也是前置组件之一,直接打开终端运行安装即可


sudo apt install riscv64-unknown-elf-gcc


部分三:安装xv6

1.从git克隆远程库到本地

先在ubuntu虚拟机中安装好git软件,随后打开你想放置xv6的目录,然后直接利用git clone语句从远程库克隆到本地[7](注意:git clone指令会直接将远程库克隆到你当前cd打开的文件夹,因此一定要先cd打开你想放置本地库的文件夹,否则就用mv指令移动了,比较麻烦)


git clone git://github.com/mit-pdos/xv6-riscv.git


2.测试前置组件是否安装完成

测试步骤参考从官网搬运的下图:


qemu虚拟机ping宿主机不通 qemu vmware_qemu虚拟机ping宿主机不通_07


即,依次输入语句:


riscv64-unknown-elf-gcc --version

qemu-system-riscv64 --version


如果输入以后显示两者的软件版本信息,就说明已经安装成功了,可以继续下一步

3.make指令安装xv6[8]


qemu虚拟机ping宿主机不通 qemu vmware_qemu虚拟机ping宿主机不通_08


先打开本部分步骤1中git clone下来的库,名称应该是xv6-riscv,cd进去,然后输入指令:


make


qemu虚拟机ping宿主机不通 qemu vmware_ubuntu离线安装gcc_09


输入以后你应该会看到一大堆输出,这里表示我们的xv6系统正在编译

在这些输出完成以后,输入指令:


make qemu


编译我们的qemu系统,输出如下:


qemu虚拟机ping宿主机不通 qemu vmware_ubuntu_10


最后如果看到终端显示出:init: starting sh,如下图:


qemu虚拟机ping宿主机不通 qemu vmware_ubuntu_11


这就说明我们的安装成功啦,可以愉快地完成后续的任务了,还可以再输入ls验证一下:


qemu虚拟机ping宿主机不通 qemu vmware_ubuntu_12


参考

  1. ^MIT官网 https://pdos.csail.mit.edu/6.828/2020/tools.html
  2. ^ubuntu阿里云镜像 http://mirrors.aliyun.com/ubuntu-releases/20.04/
  3. ^iso镜像文件安装 
  4. ^维基百科 https://zh.wikipedia.org/wiki/Debian
  5. ^虚拟机换源 
  6. ^MIT官网 https://pdos.csail.mit.edu/6.828/2020/tools.html
  7. ^MIT官网 https://pdos.csail.mit.edu/6.828/2020/xv6.html
  8. ^MIT官网 https://pdos.csail.mit.edu/6.828/2020/tools.html