HVML 是由中国首款开源基础软件 MiniGUI 的作者魏永明设计的描述式编程语言,也是世界首款可编程标记语言。

从 2020 年 5 月开始构思算起,魏永明带领团队历经两年多的时间,于 2022 年 7 月 31 日正式开源发布了 HVML 规范文档以及解释器、渲染器等软件,总代码行数逾百万!

面向碎片化世界的应用开发需求,HVML 为应用的跨平台及跨端运行提供了全新的技术框架,其描述式语法非常适合人工智能生成。HVML 蕴含了大量新颖的设计和独创的思想,是魏永明及其团队近三十年基础软件开发经验的结晶,一经发布便获得了业界的广泛关注。2022 年底,HVML 项目获评 CSDN 2022 “年度开源影响力项目”;2023 年 4 月,中国开源软件推进联盟(COPU)主席陆首群先生倡议:“全行业都应该积极支持 HVML 的研发!”

在 HVML 解释器、渲染器等软件开源发布一年之后,我们正式推出了合璧操作系统 2.0,其中的应用程序,全部使用 HVML 语言开发;从现在起,HVML 开始建设自己的超操作系统平台。

HVML 应用的热迁移技术

在 2023 年 7 月的 HVML 动态文章中,我们介绍了基于合璧操作系统 2.0,用 HVML 开发的智能音箱应用;在 2023 年 8 月的 HVML 动态文章中,我们介绍了基于合璧操作系统 2.0,用 HVML 开发的汽车仪表应用;在 2023 年 9 月的 HVML 动态文章中,我们介绍了基于合璧操作系统 2.0,用 HVML 开发的智能面板应用。在过去的 2023 年 10 月,我们展示了 HVML 应用的热迁移技术。以下是该技术的介绍视频:

 

HVML 应用的热迁移技术可以将 HVML 应用的内容展现到远程运行的渲染器上。这一技术可以满足如下场景中的应用需求:

  1. HVML 应用可运行在云端,用户可通过随手可得的桌面、智能手机或平板电脑操控运行在云端的 HVML 应用,从而为云应用提供另一种技术上的实现方式。
  2. 在桌面环境中,可将 HVML 应用运行在隔离的容器中,而负责展现和交互的 HVML 渲染器(xGUI Pro)仍然运行在真实的桌面环境中。这将极大提升系统的安全性。
  3. 对智能家居面板、智能家电面板等成本敏感的系统来说,用户可通过智能手机操控嵌入式设备,而设备上可以仅展示一些关键信息,从而可大幅降低这类嵌入式设备的硬件成本。
  4. 在智能汽车中,使用 HVML 应用的热迁移技术,应用可在主控、座舱、抬显、背显等各种车内屏幕之间切换,从而给软件生态带来全新的体验。

超操作系统的 HVML 应用平台

随着 HVML 解释器和渲染器逐渐成熟,我们最初的很多设想已经变成了现实。从现在起,HVML 社区将开始建设自己的超操作系统平台。要点如下:

  1. 我们将使用 flatpak 技术打包 xGUI Pro,用户直接下载和安装 xGUI Pro 的 flatpak 包,即可在绝大多数的 Linux 桌面发行版或操作系统上运行 xGUI Pro。
  2. 我们将使用 LXC 容器技术发布 HVML 解释器的运行环境和开发环境。普通用户使用运行环境;而开发者使用开发环境开发自己的 HVML 应用。
  3. xGUI Pro 将成为 HVML 应用的启动器。用户在 xGUI Pro 的界面上可直接启动安装在本地的 HVML 应用,亦可直接运行云端的 HVML 应用,免除应用的本地安装过程。
  4. 基于 HVML 应用的热迁移技术,用户可随时随地访问运行在云端的 HVML 应用,而无需中断 HVML 应用的运行。
  5. 我们将为开发者提供 HVML 应用的快捷发布能力,同时提供 HVML 应用商店服务。

合璧操作系统 2.0 架构图

我们设计和开发 HVML 的出发点,便是为了实践魏永明的操作系统方法论,为自主的合璧操作系统(HybridOS)设计一个全新的应用编程语言,围绕 HVML 构建这个操作系统的应用运行框架并提供相应的应用编程接口(API)。合璧操作系统是面向嵌入式设备以及智能设备的操作系统。

下图给出了 HybridOS 2.0 的系统框图。

 

HybridOS2.0-7.31新.png

从上图可以看出,HybridOS 2.0 应用主要使用 HVML 和 Python 两种编程语言,应用和系统服务之间,通过 HBDBus 数据总线相连。

合璧操作系统 2.0 在提供有完整硬件加速的图形栈、多媒体支持和各种常见控制能力的前提下,含 Linux 内核在内的根文件系统仅有 256MB 大小。运行时内存占用最低为 128MB(推荐 256MB)。在不包含 GPU、视频解码器等的简单应用场景下,根文件系统大小可进一步缩小到 128MB。

关键组件的更新

2023 年 10 月,HVML 社区更新了 HVML 解释器 PurC(通过 https://github.com/HVML 发布):

HVML 相关文档的更新

我们于 2023 年 10 月 31 日发布了 HVML 规范 1.0 RCg 版本。该版本主要为 hvml 标签增加了 template 属性。

我们于 2023 年 10 月 31 日发布了 HVML 预定义变量 1.0 RCg 版本。该版本新增了若干接口。

相关链接如下:

  1. HVML 规范 1.0
  2. HVML 预定义变量规范 1.0

下一步计划

2023 年最后的两个月,我们将继续围绕 HVML 解释器和渲染器完成如下功能:

  1. 变体支持内置方法。
  2. 预定义动态对象的完整实现。
  3. 增强 Foil 字符渲染器以支持表格(table)布局。
  4. 增强 Foil 字符渲染器以支持网格(grid)盒子布局。
  5. 增强 Foil 字符渲染器以支持弹性(flex)盒子布局。
  6. 增强 Foil 字符渲染器以支持全屏模式,支持多窗口。
  7. 增强 Foil 字符渲染器以支持 selectinput 等基本输入构件。
  8. 发布 xGUI Pro 的 flatpak 包。
  9. 发布 PurC 的运行时容器包,以及 PurC 的开发时容器包。
  10. 正式发布 PurC 1.0 和 xGUI Pro 1.0。

常见问题及解答

Q:HVML 是针对嵌入式和物联网使用的吗?

A:不仅仅是。HVML 是一种通用的胶水语言,HVML 的目标平台包括传统的桌面、服务器、智能手机、平板、嵌入式设备和物联网设备。

Q:HVML 是打算取代现有的 Web 前端开发技术,比如 JavaScript 吗?

A:没有这个计划。HVML 的渲染器会用到 Web 前端技术,但 HVML 的目标并不是取代现有的 Web 前端开发技术,而是面向未来的多屏协同场景下的需求,为应用的跨端运行提供全新的技术框架,同时作为合璧操作系统(HybridOS)的首选编程语言。

Q:在哪里可以看到 HVML 相关的源代码?

A:HVML 相关文档及代码仓库在 https://github.com/HVML 上开源发布,其中包括:

  1. HVML 解释器(PurC):https://github.com/HVML/PurC
  2. HVML 图形渲染器(xGUI Pro):https://github.com/HVML/xGUI-Pro

Q:相比 HybridOS 1.0,HybridOS 2.0 的主要区别是什么?

A:开发 HybridOS 1.0 时 HVML 尚未诞生。事实上,HVML 的设计来源于 HybridOS 1.0 开发中的一些原始设想。现在 HVML 已成熟,HybridOS 就有了自己的应用编程语言。

HybridOS 2.0 继承了 HybridOS 1.0 的图形栈以及大量基础设施(如数据总线)。其主要不同在于,开发者可使用 HVML 编程语言为 HybridOS 2.0 开发应用。

Q:在哪里可以看到 HybridOS 2.0 相关的源代码?

A:HybridOS 2.0 相关文档及代码仓库在 https://github.com/HybridOS2 上开源发布,其中包括:

  1. 合璧数据总线(HBDBus):https://github.com/HybridOS2/HBDBus
  2. 合璧网络设备管理器(HBDInetd):https://github.com/HybridOS2/HBDInetd
  3. 合璧操作系统设计及规范文档:https://github.com/HybridOS2/Documents

Q:有可以直接下载安装的软件包吗?

A:因开发团队精力有限,目前尚没有制作针对各个操作系统的安装包,但来自开源社区的小伙伴们已经积极行动,帮助我们完成了一些 Linux 发行版的安装包。我们将这些软件包收集到了如下页面,可访问查看:

https://hvml.fmsoft.cn/software

Q:如何赞助 HVML 相关的项目?

A:个人打赏性质的赞助,您可以点击文后的原文链接。大额的赞助,可通过“联系我们”留下联系方式,或者致信 hvml@fmsoft.cn,我们会及时联系您。

原文链接

https://store.fmsoft.cn/campaign/denoteoss-lt