(新人友好!)操作系统作业:ubuntu安装及qemu+xv6编译运行

写在前面

Linux新人一枚,在作业完成过程中遇到了许多问题,网上教程大多对新人来说挑战较大,在借鉴了许多博主的经验之后准备写下自己的实验过程,有不对之处请指出。

步骤

  • 安装vmware和ubuntu
    虚拟机和Linux系统镜像下载。我用的是分别是vmware15和Ubuntu 18.04版本。具体资源可以到“软件安装管家”微信公众号下载(根据自己的系统选择合适的版本下载)。公众号中附有比较全面的教程,可以自行安装,但有几点需要注意!
    1、内存建议分4G空间,磁盘空间建议至少40G以上,防止后期因为容量问题造成运行困难。
    2、对新手小白来说,网络建议选择NAT模式。在NAT模式下,虚拟机通过宿主机联网。因此在宿主机能正常联网的情况下,虚拟机都可正常联网。

  • 最常用的操作指令简述

1、进入文件夹命令

cd+文件夹名字

2、列出文件夹下面的文件

ls或者ll

ll和ls的区别在于ll看到的更加详细一些,可以看到权限,文件大小,文件时间之类的。(效果如图)
(新人友好!)操作系统作业:ubuntu安装及qemu+xv6编译运行_第1张图片
3、在Linux下编辑一些配置文件

vi+文件名
#或者用下面的,但是部分系统没有vim
vim+文件名

文件编辑结束后
先按ESC(按过只有不会有变化),再输入:,再输入指令

保存:w
退出:q
强制退出,不保存内容:q!
保存并且推出:wq
保存退出:x

3、解压
解压有两种方法,一种可在界面上直接操作,另一种可用命令行解压
第一种
双击压缩包,会出现下方页面,点击提取,即可解压
(新人友好!)操作系统作业:ubuntu安装及qemu+xv6编译运行_第2张图片
第二种
zip命令

upzip+文件夹名字

注:以上只是几个最基础的命令,更多命令可以参考程序员最常用linux命令

  • 安装qemu

1、下载安装,输入

sudo apt-get install qemu

如果出现以下错误
(新人友好!)操作系统作业:ubuntu安装及qemu+xv6编译运行_第3张图片
说明可用于Linux下载的apt的包列表很久没有更新,输入

sudo apt-get update

如果提示如下,则更新成功
(新人友好!)操作系统作业:ubuntu安装及qemu+xv6编译运行_第4张图片
如果更新速度特别慢或者更新无法成功,建议更换软件源,换源方式见后文。
uodate 结束后,输入

sudo apt-get install qemu

2、再输入

qemu-system-i386

如果成功弹出虚拟机(如下图所示),则说明虚拟机qemu安装成功。
(新人友好!)操作系统作业:ubuntu安装及qemu+xv6编译运行_第5张图片

  • 编译xv6

1、下载xv6源代码文件
建议使用最新源代码,兼容性更强,避免后期编译运行发生错误。
输入

git clone https://github.com/mit-pdos/xv6-public

再输入

cd xv6-public

再输入make ,出现如下结果说明编译成功。
(新人友好!)操作系统作业:ubuntu安装及qemu+xv6编译运行_第6张图片
如果出现以下问题
(新人友好!)操作系统作业:ubuntu安装及qemu+xv6编译运行_第7张图片
则输入

sudo apt install make

如果出现
在这里插入图片描述
则说明缺少gcc,下载gcc即可解决。

2、运行xv6
先切换到xv6-public的目录下,输入

make qemu

如果出现以下问题,是因为在make(编译)的时候变量QEMu没有指定,我们来手动指定QEMU的位置。
(新人友好!)操作系统作业:ubuntu安装及qemu+xv6编译运行_第8张图片
首先找到目录Xv6-master(源代码)下的文件MakeFile (这个文件可以看成是linux下对工程源码进行编译的配置文件。)
#QEMU改为QEMU = qemu-system-i386

如果出现下列问题,原因是static_assert这个宏重复定义了,打开mkfs.c文件,将下面这行注释掉就可以了。
#define static_assert(a, b) do { switch (0) case 0: case (a): ; } while (0)

(新人友好!)操作系统作业:ubuntu安装及qemu+xv6编译运行_第9张图片
再输入make qemu
(新人友好!)操作系统作业:ubuntu安装及qemu+xv6编译运行_第10张图片
如果出现上图所示的情况,运行成功!
若出现qemu虚拟机一直闪烁的情况,说明xv6版本不匹配,用最新的源代码即可解决。

  • 参考资料
    [https://blog.csdn.net/troublemaker2014/article/details/49337161?utm_source=app]

你可能感兴趣的:(专业课)