Hello China操作系统在Virtual PC上的安装和使用
http://blog.csdn.net/hellochina15/article/details/7253350
本文介绍如何在Windows 7操作系统和Virtual PC 2007虚拟机上安装Hello China操作系统,Hello China的版本是V1.75。对于Windows XP等非Windows 7操作系统,由于不能直接支持虚拟硬盘,不能按照本文介绍的方法安装Hello China的GUI功能,但是可以安装内核和基于字符界面的shell。
HelloChina在Virtual PC上的启动过程
首先介绍一下Hello ChinaV1.75在Virtual PC上的启动过程。为了最大可能的降低安装和使用的复杂性,V1.75版本在Virtual PC上是通过虚拟软盘启动的。Hello China的内核和核心驱动程序(比如键盘驱动、鼠标驱动、IDE接口硬盘驱动、文件系统等)等文件都集成在了虚拟软盘中。这样通过虚拟软盘启动计算机,操作系统的核心模块就直接从虚拟软盘中加载到内存并执行。内核初始化完成之后,Hello China会进入字符shell模式,这时候用户就可以运行字符模式命令了。
在字符模式下,用户输入GUI命令,即可进入图形模式的shell。一旦用户输入gui命令,Hello China会在硬盘的第一个分区(用C:标识,与Windows类似)的PTHOUSE目录下,寻找hcngui.bin文件,这个文件即是Hello China图形模式模块的可执行二进制文件。一旦找到这个文件,Hello China内核就会把它读入内存,然后运行该模块。因此要在虚拟机上支持图形模式,则必须创建一个虚拟硬盘,并分区和格式化。完成后在其第一个分区上创建PTHOUSE目录,把hcngui.bin等文件拷贝到该目录上就可以了。
GUI模块创建图形shell线程和其它图像模式的核心线程,然后初始化安装在Hello China上的应用程序。所谓初始化应用程序,指的是GUI模块读取所有应用程序的特征数据,比如应用程序名字,应用程序的图标,等等,然后把所有这些应用程序显示在图形界面的主窗口上。最终的启动结果如下:
其中左边部分就是图形界面主窗口,里面列举出了所有已安装在Hello China上的应用程序。一旦用户用鼠标点击某个应用程序,该程序就会被运行。
在Hello China V1.75的实现中,所有应用程序都是安装(实际上就是拷贝)在硬盘第一个分区(C:分区)的HCGUIAPP目录下。在GUI模块的初始化过程中,会读取该目录下的所有文件,一旦发现一个合法的应用程序,则就会进一步读取其特性数据,比如名称(上图中的显示名称)、图标等,然后加载到主窗口中。因此,要运行Hello China V1.75的应用程序,还必须在硬盘的第一个分区上创建一个HCGUIAPP目录,然后把所有应用程序文件拷贝到该目录即可。
Hello China V1.75应用程序就是一个后缀是HCX(Hello China eXecutable)的文件,该文件包含了应用程序的可执行二进制代码、应用程序的图标、应用程序的名称和版本等信息。HCX文件是由一个叫做hcxbuild(随Hello China V1.75的SDK一起发行)的程序构建的,具体构建方法,请参考下一个章节。
总结起来,在Virtual PC上安装Hello China,需完成下列工作:
1、 创建虚拟软盘文件,用于引导Hello China;
2、 创建一个虚拟硬盘,并至少创建一个分区,格式化该分区(建议格式化为NTFS)。Hello China会自动把分区的分区标识设置为C:;
3、 在C:分区上创建PTHOUSE和HCGUIAPP两个目录,把Hello China的外围模块(比如GUI模块)拷贝到PTHOUSE目录下,把应用程序(HCX文件)拷贝到HCGUIAPP目录下。
这样即可启动Hello China了。
Windows 7操作系统添加了对虚拟硬盘的支持,这样就使得上述过程变得非常简单,下面进行详细说明。
HelloChina V1.75安装包说明
Hello China安装包中包含了安装需要的所有文件和辅助工具,主要有:
1、 虚拟软驱文件(vfloppy.vfd)文件;
2、 Hello China的内核模块;
3、 Hello China的外围模块,比如GUI模块等;
4、 一些应用程序文件;
5、 相关辅助工具。
针对Virtual PC的安装包,放在bin/VirtualPC目录下。下面在介绍安装步骤的时候,会对上述文件的使用进行说明。
步骤一:下载和安装Virtual PC 2007
Virtual PC 2007(以上版本也可)可从Microsoft的官方网站上下载,具体可在google上搜索Virtual PC 2007,找到Microsoft网站上的具体链接,点击下载即可。该软件完全免费,也无需注册。而且根据作者的经验,下载速度也非常快。
下载后双击即可安装,无需做特殊设置,采用其默认安装设置即可。
步骤二:创建一个虚拟机
这个步骤也简单,运行步骤一中安装的VirtualPC,在Virtual PC的控制台中点击“New…”菜单,即可启动一个虚拟机的创建过程。假设创建的虚拟机名字是“Hello China”,无需做特殊设置,采用默认设置即可。但是在创建虚拟硬盘一步时,选择“A new hard disk”,如下:
在下一步中,指定虚拟硬盘的存放位置(可采用缺省位置)即可。对于虚拟硬盘的尺寸,可以直接使用缺省尺寸,也可以指定一个尺寸。若指定尺寸,建议至少在256M以上。
最后点击finish按钮,即可完成虚拟机的创建。
对于非Windows 7操作系统,由于不能直接支持虚拟硬盘的创建和操作,因此下列介绍的步骤三、四、五不能适用。读者可直接跳到步骤六,完成基于字符界面的Hello China的安装。
步骤三:对虚拟硬盘进行分区并格式化
Windows 7已经支持虚拟硬盘功能。在“我的电脑”上点击右键,点击“管理”菜单,启动windows计算机管理工具。在计算机管理工具上,点击左边导航树中“磁盘管理”选项,出现磁盘管理界面。点击右面面板的“更多操作”菜单,可出现虚拟硬盘操作菜单。进一步选择“附加VHD”菜单,在显示的对话框中,选择步骤三中创建的虚拟硬盘文件,点击确定即可。这时候windows的磁盘管理器就会把这个虚拟硬盘挂接到磁盘管理界面上了,比如下图中:
其中“磁盘2”就是刚刚挂接的虚拟硬盘。
在上图中“没有初始化“位置处点击右键,在弹出的菜单中选择”初始化硬盘“,采用默认设置初始化该硬盘即可。所谓初始化,指的是操作系统会建立这个硬盘的MBR扇区,并写入相关数据。需要注意的是,虚拟硬盘刚刚创建完成时,是没有任何数据的。要使这个虚拟硬盘可用,必须对之进行初始化。
初始化完成之后,只是写入了MBR扇区,但是具体分区操作还没有完成。这时候可在初始化后的磁盘上,点击鼠标右键,在出现的菜单中,选择“新建简单卷…“,采用默认设置,即可完成虚拟硬盘的分区和格式化工作。
完成格式化后,虚拟硬盘就可用了。可以看到,系统会增加一个新的盘符,这时就可以像使用普通硬盘一样使用虚拟硬盘了。
假设windows 7为新增加的虚拟硬盘分配的盘符是J:,本文后续部分将会以J:为标识引用该虚拟硬盘。
步骤四:准备Hello China V1.75安装目录
把Hello China软件包中bin目录下的VirtualPC目录,拷贝到任意一个本地硬盘(注意,这里不是虚拟硬盘)上,然后把VirtualPC目录下的install目录,在拷贝到虚拟硬盘上(即J:盘)。
步骤五:在虚拟硬盘上安装Hello China
进入J:盘的install目录,运行batch.bat文件,即可完成Hello China在虚拟硬盘J上的安装。Batch.bat文件主要是创建了HCGUIAPP和PTHOUSE两个目录,然后把相关文件拷贝到了这两个目录下。同时也拷贝了一些相关文件到J盘的根目录下。下列是成功安装后J:盘的内容:
其中PTHOUSE目录中存放的是HelloChina的外围功能模块,比如GUI模块、网络模块等。而HCGUIAPP目录中存放的是基于GUI模块的HelloChina应用程序,即HCX文件。
步骤六:将虚拟软驱与虚拟机进行关联
由于Hello China是使用虚拟软盘启动虚拟机的,最后一步就是把虚拟软盘文件(vfloppy.vfd)与虚拟机进行关联,该文件在VirtualPC目录下。在Virtual PC的控制台中,双击步骤二中创建的虚拟机,启动之。由于没有可启动设备,虚拟机无法正常启动。使用鼠标拖住vfloppy.vfd文件,拖到虚拟机窗口下面的软驱图标上,这时候就实现了虚拟软驱与虚拟机的关联。
重新启动虚拟机,正常情况下应该可进入HelloChina的字符模式了。
步骤七:验证Hello China是否成功安装
完成上述步骤之后,虚拟机应该可以正常启动,并进入Hello China的字符操作界面了。在字符界面下执行help命令,可看到一些帮助信息。运行version命令,可看到Hello China的版本信息,如下:
在字符模式下,运行fs命令,进入文件系统操作程序。执行fslist,应该可以看到C:分区,如下:
输入“exit“,退出fs程序,然后输入gui命令,即可进入图形模式,显示所有图形应用程序。点击任何一个应用程序即可运行,比如点击”CPI统计“程序,运行结果如下:
在图形模式下,输入“ctrl+alt+del“组合键(虚拟机下,可点击Action菜单,选择该组合键),即可退到字符模式。
Hello China V1.75测试版源代码和安装文件,可从下列链接下载:
http://download.csdn.net/detail/hellochina15/4059717
任何技术问题,欢迎加入QQ群:38467832 进行讨论。
Hello China操作系统在Virtual PC上的安装和使用的更多相关文章
- Centos操作系统在虚拟机VMware上的安装
1.下载centos操作系统,提供百度云盘链接:http://pan.baidu.com/s/1pLHOR03 2.打开上篇在VMware中新建好的空白虚拟机,将centos安装在此空白虚拟机上,步骤 ...
- Win7下虚拟机个人使用小结:Virtual PC,VMware和VirtualBox
想来用了很多年的虚拟机了,换了Win7之后,种种原因又需要使用虚拟机,这里就简单介绍和比较一下. 点击小图看大图. Virtual PC: 如果想做Windows虚拟机的话,Virtual PC在之前 ...
- Hyper-V和Virtual PC的不同
微软在2003年收购了推出了Virtual PC软件的Connectix公司,并在其后推出了Virtual Server服务器虚拟化软件 Hyper-V跟微软自家的Virtual PC.Virtual ...
- 在virtual pc中搭建基于ubuntu 的git环境
1. 在virtual pc 上安装 ubuntu http://www.hanselman.com/blog/InstallingUbuntu104LTSOnWindowsVirtualPCOnWi ...
- PC上安装多个操作系统
目 录 第1章 绪论 1 1.1 目标 1 1.2 适宜的读者 1 第2章 制作启动U盘 2 2.1 初级安装 2 2.2 启动分析 3 2.3 高级安装 1 ...
- 系统重装 如何在PC上安装Mac OS,苹果操作系统
[苹果系统 无影精品]<精睿 无影技术Mac OS X 中文优化正式会员版V10.14和V10.16>◆ 系统前沿:==================================== ...
- virtual pc中添加软盘支持
最近对操作系统挺有兴趣的,实验了一下!准备找一个虚拟机,之前在xp上使用virtual pc感觉不错,准备在本机上装一下,但是发现居然不支持软盘了! 查阅了各种资料,终于找到了解决的办法. 1. 下载 ...
- Hello China操作系统STM32移植指南(二)
移植步骤详解 下面就以MDK 4.72为开发环境,详细说明Hello China内核向STM32的移植过程.MDK 4.72评估版只支持32K代码的编译,这对Hello China的内核来说,裁剪掉一 ...
- Hello China操作系统STM32移植指南(一)
Hello China操作系统移植指南 首先说明一下,为了适应更多的文化背景,对Hello China操作系统的名字做了修改,修改为"Hello X",或者连接在一起,写为&quo ...
随机推荐
- VLAN 模式下的 OpenStack 管理 vSphere 集群方案
本文不合适转载,只用于自我学习. 关于为什么要用OpenStack 管理 vSphere 集群,原因可以有很多,特别是一些传统企业,VMware 的使用还是很普遍的,用 OpenStack 纳管至少会 ...
- 【原创】源码角度分析Android的消息机制系列(二)——ThreadLocal的工作过程
ι 版权声明:本文为博主原创文章,未经博主允许不得转载. 在上一篇文章中,我们已经提到了ThreadLocal,它并非线程,而是在线程中存储数据用的.数据存储以后,只能在指定的线程中获取到数据,对于其 ...
- 2018Pycharm激活方法
1.将"0.0.0.0 account.jetbrains.com"添加到hosts文件中 2.打开http://idea.lanyus.com/ 3.获取激活码,粘贴到第二个选项 ...
- iOS-键盘监听YYKeyboardManager
如果键盘弹出覆盖了原有的试图,这种效果并不好,所以我们就要在键盘弹出的时候,监听键盘的位置来改变我们一些试图的位置,例如tableView列表等:在这里推荐一个大牛ibireme写的YYKeyboar ...
- iOS-时间戳(或date)转字符串
1.时间戳转字符串 ///时间戳转化为字符转0000-00-00 00:00 + (NSString *)time_timestampToString:(NSInteger)timestamp{ NS ...
- 使用TensorFlow Object Detection API+Google ML Engine训练自己的手掌识别器
上次使用Google ML Engine跑了一下TensorFlow Object Detection API中的Quick Start(http://www.cnblogs.com/take-fet ...
- verilog实验1:基于FPGA蜂鸣器演奏乐曲并数码管显示
一.实验任务 利用FPGA进行代码开发,使蜂鸣器演奏出乐曲<生日快乐>,将音调显示在数码管.原理为蜂鸣器为交流源蜂鸣器,在引脚上加一定频率的方波就可以发声,而且发声的频率由所加方波决定.这 ...
- Xposed快速hook关键点
0x01 导读 工作中,常常需要针对各种app进行快速代码定位,找到代码修改和调试各种功能,就不得不面对xposed来进行一系列快速定位关键代码的问题了.那么问题来了,如何快速找到代码呢? 这里值这针 ...
- JS原型学习之旅(一)之一图了解原型链关系
目前正在学JS的原型思想(准确的说是从昨天2018.1.29开始正式接触),琢磨了两天,在chrome的console不停的敲了好多代码测试__proto__和prototype的关系,有了些小收获( ...
- ajax请求 readyState为0 可能原因之一
问题:同样的代码逻辑,PC端和iOS都能正常访问,但是Android系统请求都是报错: 上网查阅,关于ajax请求失败且状态码都是0的情况有很多,最后排查的原因是:域名证书问题: