设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 其他开发语言 >> 用VMWARE搭建开发操作系统的环境
精品推荐
其他开发语言点击TOP10
·数字小键盘指法练习
·用C语言编通讯录程序(初学者级别的)
·Modem 常用AT指令集
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
·Thinking in C++ 简体中文第二版
·debug和release的区别
·error LNK2001: unresolved external symbol __ftol2 错误解决
·C库函数手册
·一个简单的C语言编译器
编程开发点击TOP10
·数字小键盘指法练习
·ASP.NET 程序中常用的三十三种代码
·用C语言编通讯录程序(初学者级别的)
·我写的Java学生成绩管理系统源代码
·CHK文件恢复工具
·Modem 常用AT指令集
·java笔试题
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
精选专题

用VMWARE搭建开发操作系统的环境

作者: 来源:网络文章 时间:2005-12-17 20:57:05

用VMWARE搭建开发操作系统的环境(1)

    很多人觉得开发底层系统用BOCHS会更好一些,能够跟踪每个指令的执行,不过我觉得开发过程中,需要利用EMULATER一步步跟踪指令的时间并不长,在设置了IDT表,启动了MONITOR功能之后就不需要了,而VMWARE提供的直接硬盘访问,串口互联等功能可能是BOCH都不具备的功能。(当然,最主要的原因是我还不太会用BOCHS)XML:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

环境需求:

(1) 内存:在256M以上

    我的机器是512M, 推荐这个数值或更大,因为在运行时需要同时启动两个虚拟系统,    以128M/64M来分配的话,就要占用192M的物理内存,再加上VMWARE本身占用的内存,在256M的机器上,我是调整成96M/32M才能同时启动(不是最大),虽然可行,但内存少也会导致虚拟系统运行效率降低。

(2) 操作系统XP或NT2000

    需要能够运行VMWARE软件,所以WIN95/98都不行。

    使用Linux作为宿主操作系统也行,但我没试过。

(3) 虚拟软件:VMWARE 4.0/4.5

    再低的版本没试,所以不知道是否可行,当然版本越高越好。

(4) 其它软件:Linux安装盘(映象文件)

    对LINUX的版本没什么要求,但要注意,我们要用到里面的开发/编译工具,版本越新,提供的工具版本也越新。另外该LINUX最好提供GRUB的安装.

(5) 有足够的硬盘空间,最好是有两块硬盘,而且有一个硬盘的某些分区是没使用的。

    除了在虚拟机上跑,应该还希望在实机上跑跑看吧。

    如果只用一个硬盘也可以,但要求你会使用GRUB引导WINDOWS.

 

搭建步骤:

(0) 安装VMWARE

(1) 在VMWARE上建立两个VM。一个用于编译/跟踪(develop_vm),一个用于运行(run_vm)

(2) develop_vm的创建

     Guest OS选择LINUX

     内存可以设大一些,因为在这上面要跑Linux,还要完成软件的编译和跟踪。

     硬盘可以采用Virtual Disk,容量可以设大一些。

        * 进入Advance设置

        * 设备连接点连到IDE 0:0

     需要安装网卡,采用Host-only模式即可。

(3) 在develop_vm上安装LINUX,安装模式随自已,但必需包含开发工具,

    即gcc, binutils,make等软件是必需安装的。minicom也应该有。安装后要注意安装VMWare Tools

(4) run_vm的创建

     Guest OS选择LINUX

     内存可以小一些,视内存情况而定,要确保deveop_vm和run_vm能同时运行。

     硬盘采用直接物理硬盘方式,可以激活所有分区。

        * 进入Advance设置

        * 设备连接点连到IDE 0:0

        * 在MODE中,选中Independent. 并选择Persistent。

(5) 在run_vm上安装LINUX, 选择最小模式安装.

     实际上run_vm并不需要安装任何操作系统,但我们利用LINUX安装可以实现两个目标

* 将一个分区格式化成EXT2(EXT3)格式系统。

* 在引导扇区和文件系统上安装GRUB

     安装LINUX时建议如下:

        * 使用GRUB作BOOT LOADER, 安装到MBR上

        * 不需要安装多个分区目录,只要建立"/"分区即可。甚至SWAP也可以没有.

(6) 分别在develop_vm和run_vm上分别添加串口(Serial)

    属性选择"使用命名管道"(Use named pipe)

    两个VM中的管道名需要一致。

    在develop_vm中选择“This end is the server",在run_vm中选择"This end is the client"

    都选择"The other end is a virtual machine.

(7) 在run_vm中启动Linux,修改Boot loader的引导配置文件. 我使用的是GRUB. 下面只以GRUB为例

    % cd /boot/grub

    % vi grub.conf

    文件改成如下内容:

    #grub.conf

    default=0

    timeout=1

    title Self Develop OS

        root (hd0,0)

        kernel /boot/xxxx-0.1 ro root=/dev/hda1

    #eof

    关于kernel那一行,root=??? 需要根据你在run_vm的安装的分区情况页定。

(8) 在develop_vm上,执行添加硬盘设备操作。

    * 选择直接物理硬盘方式(该硬盘即run_vm使用的硬盘)

    * 启用Advance设置

    * 将该硬盘挂到IDE0:1

    * 在MODE中,选中Independent. 并选择Persistent.

(9) 在develop_vm上启动LINUX, 创建目录/mnt/devos

    目录名其实是随意的,我只是举例。

(10) 如果你习惯使用SourceInsight或VC等的编辑工具(不习惯vi),可以将源码建在WINDOWS中的某个目录下,然后使用VMWARE的Shared Folders功能将其MOUNT到develop_vm中。(注意只有在develop_vm上安装了VMWare Tools之后才能有这个功能),

这样就可以在WINDOWS下写代码,在develop_vm虚拟机下编译,在run_vm虚拟机上测试运行了。

 

开发事项和疑问解答:   

(1) 使用gcc/gas作为开发的编译工具

    linux是开发操作系统最好的借鉴代码,所以gcc/gas应该是最合适的工具。

(2) 遵守MultipleBoot规范。可以参考GRUB的文档,非常简单!

(3) 使用root帐号进行编译,在MAKEFILE中,添写将执行程序COPY到run_vm中的过程

    #......

    xxxxos-0.1: ?????

        ......

        mount /dev/hdb? /mnt/devos  <- 注意这里的hdb?和run_vm的hda?是对应的!

        cp -f xxxxos-0.1 /mnt/devos/boot/xxxxos-0.1

        umount /mnt/devos

    执行mount时,会有警告提示,完全可以忽略不管。

(4) 如果你想用实机测试,那么只需要用run_vm使用的硬盘引导就OK了。

 

(5) 如果宿主机使用LINUX, 是不是就不需要设置两个虚拟机了

develop_vm除了用来编译之外,另一个功能是通过minicom(或其它串口应用)让develp_vm与run_vm通信互联。宿主机使用LINUX,可以完成编译的功能,但无法完成与run_vm通信的功能。

(6) develop_vm和run_vm之间用串口互联的目的是什么。

在开发初期,这个串口可以用来作为标准输入输出,实现基本的交互(要比实现KEYBOARD/VGA简单)。 但我更倾向于利用这个串口作MONITOR. 这样就可以对代码进行跟踪了(这样才能替代BOCHS的优势)。

使用串口不是必需的,但如果有,而且实现了Monitor功能,你就能体会到它的好处。

(7) 为什么不将编译的代码放到develop_vm上,在run_vm用网络引导的模式。

如果只是开发操作系统那样用。但这种模式不只可用开发编写操作系统,也可以用开发BOOT LOADER,适用性更强些。

 

共2页 9 7 [1] [28 :>

用VMWARE搭建开发操作系统的环境 相关文章:
用VMWARE搭建开发操作系统的环境 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com