Simics虚拟机Solaris 8操作系统获取host 系统win7上的文件的两种方式

1 介绍

本文基于的环境设置如下:
  • 宿主操作系统:Windows 7 Ultimate
  • 寄生操作系统:Solaris 8 SPARC (SunOS 5.8)
  • 虚拟环境:Simics 3.0.4
    本文假定已在Simics 上安装好Solaris 8 SPARC 操作系统。
    动机:一个Unix下可以运行的二进制文件GraphGen,在单独的一台装有Ubuntu的电脑上不能运行,因为该电脑的硬件架构是基于X86的,而GraphGen是SPARC架构下才能运行的程序;在我的笔记本Win7系统上安装Virtual Box,然后安装SPARC 架构的Solaris 8,安装不成功,因为我的笔记本电脑AMD的,这条路也不通;可行的办法是在笔记本电脑上利用Simics 虚拟环境安装Solaris 8 SPARC 操作系统,然后将Win7 上的文件GraphGen “拷贝”到Simics 中的Solaris 8 操作系统中去,从而达到运行该GraphGen 程序的目的。这个“拷贝”的过程,由于涉及到宿主操作系统和寄生操作系统的通信,显得并不那么轻而易举。本主要就是讲解这个“拷贝”的方法和过程。

2 获取宿主系统上的文件的两种方式

2.1 利用mount cd 方式获取宿主系统上的文件

主要步骤如下:
  1. 将Win7 系统上需要被Solaris 8 SPARC 系统使用的文件打包成iso镜像文件的格式(这打包过程可以使用UltraISO 软件,我用的是UltraISO Premium Edition 9.6.2.3059,由于没有找到该软件的注册码,我仅仅使用的是试用版,不过不影响文件的打包。实际上具体哪个版本无所谓);例如,将Simics 安装目录下\import\sun4u 下的两个文件mount_simicsfs和simicsfs-sol8打包成文件myimage.iso (在UltraISO中的操作很简单,选择那两个文件,然后另存为 myimage.iso 即可)。
  2. 将打包好的iso 镜像文件放到Simics 的工作目录文件夹下(例如F:\OS\simics\workspace),例如,将myimage.iso拷贝到F:\OS\simics\workspace中。
  3. 在已经成功启动Solaris 8 寄生系统的情况下,在Simics 主界面上依次输入以下命令,new-file-cdrom myimage.iso 和cd0.insert myimage,如图1。
  
  Figure 1: 在Simics 输入加载iso文件的命令
  4. 此时,在寄生系统Solaris 8 SPARC 的文件夹/cdrom/cdrom0/下,你就会看到打包前的2个文件(参见图2),从而顺利实现了对宿主操作系统文件的访问。你可以将这些文件拷贝到你所需要的任何地方。你可以看到,寄生系统Solaris 8 只保留了文件名的前8位,但文件内容本身不会变化。

Figure 2: 在寄生系统Solaris 8 SPARC 中查看iso中的文件

2.2 进行相应的设置直接访问宿主系统上的文件

我们在经常使用寄生系统的情况下,会感觉到mount cd的方式获取宿主系统的文件会不方便,那么最好是采用一种方法直接访问宿主系统的某个驱动盘(例如,Win7 系统C盘下的内容)。实现上述目标的方法为:
1. 在寄生系统Solaris 8 SPARC 中新建一个文件夹(mkdir /usr/lib/fs/simicsfs/),利用mount cd 的方式将Simics 安装目录下\import\sun4u 下的文件mount simicsfs放到上述文件夹,并且重命名为mount;类似地,将Simics 安装目录下\import\sun4u 下的文件simicsfs-sol8 放到寄生操作系统的文件夹/usr/kernel/fs/sparcv9/中,并命名为simicsfs (实际上寄生系统会自动对文件名截断为8位,在Solaris8中,我们看不到文件名simicsfs-sol8 的,如图2)。

2. 在寄生系统Solaris 8中编辑/etc/vfstab 文件,在其中添加一行(空格分隔-),
                         simicsfs -   /host   simicsfs   -    no    -
注意,使用vi编辑该文件的时候,屏幕显示内容不是真正的文件内容,利用上下箭头按键在显示的内容上来回走一遍才显示真正的内容。添加该内容后,及时使用cat 命令查看是否添加的规范。
3. 在寄生系统的根目录下,创建host文件夹(mkdir host)。
4. 在寄生系统下执行mount /host 命令,这时你就会发现在host 文件夹中就全是Win7 系统中C盘下的内容了。如图3。

Figure 3: 在寄生系统Solaris 8 SPARC 中直接获取Win7中C盘内容

3 保存寄生系统的工作状态

Simics 下的虚拟机操作系统是非记忆性的,当你下次重新启动寄生操作系统时,所有关于上次操作系统的更改都会消失。在利用上述两种方式获取到宿主操作系统的文件后,或者为了保存某些响应的设置,我们就必须将寄生操作系统的工作状态保存下,以方便下次启动时使用。该步骤如下:
    保存某时刻的状态:
    1. 在Simics 命令输入区输入stop;
    2. 在Simics 命令输入区输入save-persistent-state [自己起的状态名];
    3. 在Simics 命令输入区输入run,继续系统的运行。

    从某个状态启动:
    1. 从peanut-common.simics 开启new session;
    2. 在Simics 命令输入区输入load-persistent-state [自己起的状态名];
    3. 在Simics 命令输入区输入run,运行系统。
    例如,我为2.2小节的状态起的名为solaris_8_sf.boot。

4 问题

从图3中可以看出,我已顺利将GraphGen 程序拷入到了寄生操作系统上了,可以在Solaris 8 SPARC 中运行该程序了。心中窃喜,可是,程序仍然没有运行成功,出现如下结果:
               ld.so.1: ./GraphGen: fatal: libstdc++.so.2.10.0: open failed:no such file or directory
可以看出,这个程序可以在Solaris 8 SPARC 上运行了,只是少了一个shared library。可见,已突破了硬件架构的限制,离成功运行该程序更进了一步。

参考博文: http://xilinx.eetop.cn/viewthread-463116
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值