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 进行讨论。