经过HelloX开发团队近四个月的努力,在HelloX V1.77版本基础上,增加许多功能特性,并对V1.77版本的一些特性进行了进一步优化之后,正式形成HelloX V1.78测试版本,经相对充分的测试和验证之后,现正式发布。相关代码,已全部上载到githu上(github.com/hellox-project/HelloX_OS),欢迎对HelloX感兴趣的朋友下载测试和试用,并进一步反馈问题。
除继续保持V1.77所有特性之外,V1.78版本主要对下列特性进行了支持或优化:
1. 移植了一个被业界广泛接受,面向嵌入式应用的Java虚拟机JamVM。在字符界面下,输入“jvm”命令,即可查看JamVM的相关版本信息和帮助信息;
2. 专门开发了一个制作引导介质的工具,通过该工具,可以创建虚拟硬盘,用于引导虚拟机,也可以创建USB引导盘,用于引导实际的计算机;
3. 对文件系统进行了进一步的优化,现在可以比较完善的支持FAT32文件系统,包括物理硬盘或虚拟硬盘的读写及控制;
4. 改进了GUI功能,把GUI模块正式作为一个组件进行发布。可以在shell模式下,输入“gui”命令,进入图形模式。如果希望从图形模式退出,可以按下“ctrl+alt+del”组合键;
5. 对于开发工具,V1.78正式迁移到MicrosoftVisual Studio Community版。该版本的VS是面向开源社区的免费版本,功能特性和用户体验更加完善;
6. 为了支撑JamVM的移植,实现了一个符合POSIX标准的C语言支持库。通过对HelloX的内核功能进行封装,实现了诸如线程控制,同步,文件访问,时间管理等等常用功能的API,后续可以支持更加广泛的开源组件移植;
7. 最后,为了支撑最新的Java虚拟机等特性,对内核功能进行了进一步的丰富,增加了诸如条件等待(Condition Wait),线程的非主动挂起和恢复,初步的进程模型等功能。
开发团队中的Mr. Tywind Huang充分发挥其高超的编程技术和丰富的经验,独立开发了引导介质制作工具,优化了文件系统,实现了部分的POSIX支持库,并做了其它一些测试或优化工作,在整个HelloX V1.78版本的开发中做出了突出贡献。Mr. Erwin Wang则在FAT32长文件名的支持,内核性能提升,USB启动广泛性测试,以及GUI的优化上,做出了大量工作。同时,HelloX讨论群组中的很多朋友,都对最新的版本进行了实际测试和试用,给出了很多改进优化建议,在此统一表示感谢。
作为物联网操作系统,HelloX后续将继续聚焦物联网“三大难题”,持续开发和优化:
1. 解决物联网面临的“软硬件不分离”问题,实现物联网软件和硬件的分离。目前“烟囱式”的物联网商业模式,导致物联网服务提供商,物联网设备提供商,以及链接平台提供商紧密耦合在一起,要介入物联网领域,必须”一竿子插到底“,从上到下面面俱到,严重分散了资源投入,弱化了自身优势领域。或者组成封闭的联盟,形成一个一个的”孤岛“,不能形成一个开放的体系。通过软硬件分离,可以解决这个问题。物联网服务商只需要开发一个或者一类应用程序,即可对此类物联网终端进行统一管理,无需考虑底层硬件的多样性,也无需考虑多厂商终端设备的适配,只要聚焦提供优势的服务即可。同样地,对物联网设备提供商来说,也无需考虑上层的服务平台,只需要实现基本的硬件功能,把自身优势充分发挥出来即可。这样一种模式,不但可以大大降低物联网领域参与者的成本,也很容易形成一个开放的生态环境,有效促进整个行业的发展。具体的实现上,就是基于HelloX的Java虚拟机,建立一个面向物联网的应用框架和支持类库;
2. 解决物联网面临的“碎片化“问题,统一开发平台,降低设备厂商的开发成本。由于物联网硬件碎片化,配置多样性的存在,导致物联网设备厂商不得不选择多个开发平台和多套工具,比如针对低端的传感器,需要选择资源占用率低的嵌入式操作系统,而对于配置较高的智能家电,又不得不选择架构和API完全不同的另外一套操作系统和开发工具。这样导致的结果就是,人员技能不能复用,产品维护经验库不能共享,大大增加了开发和维护成本。HelloX则充分考虑这种场景,通过灵活的伸缩性配置,并配合定制化的开发工具,可以实现”一个操作系统“,”一套API”,“一套开发工具”,“一种管理平台”的效果,大大降低物联网设备厂商的开发成本;
3. 实现物联网的“有效协同“。目前的物联网终端之间,不同系统之间,由于缺乏一个统一的平台支持,无法进行有效协同。通过构筑一个统一的协同框架,HelloX可以实现物联网的多层面”有效协同“,比如在终端层面,不同领域的终端,可以直接在本地进行协同,实现本地局域网的智能化。举一个例子,智能汽车和智能路灯之间,可以通过本地协同,来实现最短的红灯等待时间。
同时,由于HelloX架构本身伸缩性较强,而且一开始就是以通用计算机作为应用对象,后续将探索向通用操作系统发展的可行性。
最后,还是要重复一下几乎在每篇文章中都强调的话,就是我们在做的是一种探索,一种有利于行业发展,有利于促进人类与自然更加和谐共存,从而提升人们生活质量的尝试。这种尝试的过程和结果都充满了不确定性和未知因素,但是也充满了挑战和乐趣。不论结果如何,我相信对整个行业的发展,对我国系统软件的发展,甚至对人类与自然更加有效统一的目标,都是有促进作用的,哪怕这种促进作用非常微不足道。这是支撑我们努力向前走的精神动力。
对于个人来说,可能不会带来直接的经济回报,但是在精神层面的收获,却异常丰富。最开始开发操作系统的时候,最大的挑战是对自身技能的挑战,随着开发的深入,逐渐转换成对个人毅力的挑战,后来发现,面临的新的问题和局面,对个人的品格,提出了更大的挑战。截至现在,越来越觉得,挑战又慢慢转化到个人胸怀层面。以后呢?或许就是对生命认识的挑战...总之,越来越发现,开发操作系统,已经不像在做事情,而是人生旅程的一个附属表现...
个人观点和感受,有感而发,希望朋友们斧正。另,HelloX物联网操作系统开源社区正在筹建,并取得了一些社会团体和企业的支持,欢迎有志于物联网和系统软件开发的人士加入。具体的细节,欢迎加入QQ群讨论:38467832