在vmware上直接运行xv6

0、前言        

        对于操作系统原理的学习,xv6是一个非常好的项目。它还原的是有名的unix v6操作系统,而且还增加了对多处理器的支持。

        官方给我运行环境是qemu,当时好奇在想,能不能用vmware来运行呢,因为vmware不也是给操作系统模拟了一个二进制代码的执行环境吗?但是搜遍全网也没有找到方法,后面自己找到了方法,验证了自己的想法。

        当时的思维路径是,操作系统是放在磁盘上的起始位置的,那么我把xv6的代码写到磁盘的起始位置不就可以了。另一个问题是操作系统镜像和根文件系统是分开的,要分别写到两块磁盘中。我的环境是vmware15.5.2+centos7.8.2003,下面是操作步骤:

1、编译xv6

下载代码,解压后进入目录,编译操作系统镜像及根文件系统,命令如下:

make xv6.img&&make fs.img

2、写入磁盘

在vmware创建两块磁盘,操作路径为:虚拟机设置->增加->磁盘->SCSI->创建新虚拟磁盘->大小0.005(立即分配、单个文件)->将磁盘命名为os,表示这个磁盘放的是操作系统。

相同方法创建另一块磁盘fs,用来放根文件系统。

这时/dev/目录下应该多了sdb和sdc(sda是当前操作系统本身),如果没有看到设置则重启操作系统。用以下命令将操作系统和根文件系统写入到磁盘中:

dd if=./xv6.img of=/dev/sdb bs=4k count=1000
dd if=./fs.img of=/dev/sdc bs=4k count=1000

poweroff停掉当前虚拟机,确保文件已经落地到磁盘。这时两个镜像就已经写入到磁盘中了,vmware把磁盘保存成了一个文件,位置在当前虚拟机的目录下,名为os.vmdk、fs.vmdk,下一步会将这两个文件加载到新的虚拟机中,作为其它启动盘。

3、创建xv6的虚拟机

创建一个空的虚拟机,操作步骤为,自定义(高级)->下一步->稍后安装操作系统->操作系统类型选择其它(版本也选择其它)->虚拟机名称取为xv6(随意)->随后使用默认配置一路“下一步”到完成即可。

在创建好的虚拟机右键设置,将刚默认创建的磁盘删掉。将上一步创建的磁盘文件添加到当前虚拟机中。方法为添加->“磁盘”->ide(注意这里是IDE而不是SCSI磁盘,因为xv6读取的是IDE格式的磁盘)->使用现有虚拟盘->选择第二步中生成的os.vmdk->完成

相同方法再添加fs.vmdk,注意要先添加os.vmdk,因为os.vmdk是操作系统,它需要是第一块硬盘,先加载操作系统镜像嘛,操作系统再去加载文件系统。

启动虚拟机,熟悉的xv6就成功启动起来了。

4、为什么可以成功运行起来,主要是如下几个知识点:

a、操作系统是放在磁盘起始位置的

b、使用dd命令可以将文件直接拷贝到磁盘中

c、磁盘设置在vmware中是保存为一个文件的,这个文件可以被别的虚拟机用

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值