首页 理论教育 HCX文件格式:操作系统实现指南

HCX文件格式:操作系统实现指南

更新时间:2025-01-18 工作计划 版权反馈
【摘要】:HCX文件会被GUI shell读取,并以图标的方式显示在应用程序列表内。后续版本的HCX文件格式可能会有变动,但是会保持向前兼容性。首先是一个HCX文件格式头,这个文件头定义如下:其中HCX签名用于标识一个合法的HCX文件。否则认为不是一个合法的HCX文件,放弃进一步的执行。因为HCX文件有可能应用了高版本操作系统的一些特性。这是HCX文件的主要内容,所有可执行指令和相关数据,都存放在这个部分中。

HCX文件包含了可执行代码、初始化的全局数据、应用程序版本信息、应用程序图标等信息。HCX文件会被GUI shell读取,并以图标的方式显示在应用程序列表内。一旦用户点击应用程序图标,则应用程序就会被加载并执行。

当前HCX文件格式版本是V1.0,主要为Hello China V1.75版本定制。后续版本的HCX文件格式可能会有变动,但是会保持向前兼容性。下面是HCX V1.0文件的格式描述。

首先是一个HCX文件格式头,这个文件头定义如下:

其中HCX签名用于标识一个合法的HCX文件。操作系统在试图执行一个HCX文件时,首先把该文件读入内存,然后就检查该文件的签名是不是0xE9909090。如果是,则认为是一个合法的HCX文件,并试图执行。否则认为不是一个合法的HCX文件,放弃进一步的执行。

在以x86 CPU为处理器的平台上,HCX签名实际上是三个nop指令加一个跳转指令(跳转指令的目标地址,就是dwEntryOffset)。这样安排的目的,是操作系统完成HCX文件的合法性检查之后,可直接跳转到文件的开头去执行,无需进一步检索入口点。

另外一个需要解释的是AppName,这是应用程序的可视化名字,即显示在GUI shell中的应用程序列表中的名字。这个名字与HCX文件名可以不一样。建议取一个能够直接显示应用程序本身功能的名字。(www.xing528.com)

应用程序主版本号和次版本号构成了一个管理应用程序版本的机制。在升级应用程序的时候,Hello China会判断新应用程序的版本是否高于当前应用程序。如果是,则允许升级,否则会给出提示。

最后的目标操作系统版本号,指明了能够运行当前HCX文件的最低操作系统版本。如果当前操作系统的版本低于该版本号,则会拒绝HCX文件的执行。因为HCX文件有可能应用了高版本操作系统的一些特性。

紧跟HCX头,就是可执行二进制代码和初始化的全局数据。这是HCX文件的主要内容,所有可执行指令和相关数据,都存放在这个部分中。这部分内容是由编译器生成的。

最后是一个应用程序图标,以RGB方式存放,当前只支持128×128像素的BMP文件,且颜色深度必须是24位。GUI shell会在应用程序列表中显示这个图标(以及应用程序的可视化名字)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈