HybridOS 合璧操作系统
合璧操作系统(HybridOS)是一整套专为嵌入式设备打造的快速开发平台,由拥有12 年嵌入式图形领域的开发经验、5 年嵌入式浏览器开发经验、丰富的嵌入式操作系统应用系统和中间件以及硬件平台开发经验的北京飞漫软件技术有限公司于 2010 年推出。截止2010 年 9 月,合璧操作系统(HybridOS)的最新版本是 R1007。
合璧操作系统(HybridOS)集成了飞漫软件10余年的嵌入式行业研发经验和众多成熟产品的最新版本,包括嵌入式图形支持系统(MiniGUI)、嵌入式浏览器系统(mDolphin)、嵌入式 Java 系统(mPeer)、所见即所得的可视化集成开发平台(mStudio),使众多的希望在嵌入式设备上做开发的中小型企业,可以摆脱“不稳定的内核以及驱动程序”、“交叉编译工具链、基础函数库存在大量缺陷”、”不恰当的开源软件“、“高水平嵌入式开发工程师缺乏”等这些问题的困扰,从而能够在一个运行稳定、功能强大的小巧系统内核基础上,专注开发产品。
合璧操作系统(HybridOS)采用新的商业授权模式,性价比颇高。
缘起
如今,越来越多的嵌入式设备开始使用 Linux 作为其操作系统,但除了操作系统内核之外,业内并没有一个针对嵌入式设备的一体化快速开发平台,能够提供统一、稳定、高效的操作系统基础设施(如基础函数库、多媒体处理设施、数据库、窗口系统和控件集、浏览器、可视化集成开发平台)等等。而 Android、WebOS 等基于 Linux 内核的解决方案仅仅适用于特定领域(如高端智能手机领域),而并不适用于诸如工业控制、医疗仪器、多媒体终端、信息终端、中低端手机等领域,并且使用单一技术手段(Java 技术或浏览器技术),限制了系统的灵活性,并对控制设备的硬件成本带来了巨大压力。
飞漫软件在长期支持 MiniGUI、mDolphin 用户的过程中,发现用户经常会因为内核、工具及其他组件的问题而影响产品的正常开发,这些问题有:
- 不稳定的内核以及驱动程序
- 交叉编译工具链、基础函数库存在大量缺陷
- 选择了不恰当的开源软件
事实上,绝大多数使用 Linux 操作系统的嵌入式设备开发者都遇到过类似的问题,而这些问题本来是可以通过建立统一、标准的 Linux 操作系统及开发工具来避免的。
飞漫接触过几十种嵌入式 SoC,积累了丰富的支持经验,飞漫软件打造合璧操作系统(HybridOS),就是为了融合多种主流的嵌入式应用开发技术,如同混合动力技术的汽车一样,同时义喻“中西合璧”,为嵌入式设备提供一个统一的、稳定的、高效的、具有更好灵活性的、可在性能和便于二次开发等方面获得良好平衡的操作系统平台。
特点优势
合璧操作系统(HybridOS)为客户提供了完整的嵌入式应用程序开发平台以及各组成部分的软件缺陷修正及质量保证服务,为正在使用或打算使用 Linux 开发嵌入式设备的中小企业客户解决了研发能力有限,难以完成复杂嵌入式系统从下(内核、驱动程序)到上(应用程序)的全部软件开发工作的棘手难题。
使用 HybridOS 有如下优势:
- 立即获得可即刻进行应用程序开发的完整软件平台,免去选择各种开源软件(及其版本)、自行搭建系统平台的风险。
- 从内核、驱动程序到中间件,HybridOS 已经全部准备好,客户可专注于上层应用程序的设计和开发,从而缩短产品的上市时间。
- 立即获得 PC 及目标板两套一模一样的对等开发环境,这样,绝大部分应用程序都可以在 PC 主机上完成开发和测试,交叉编译之后即可下载到目标板上运行和验证,从而大大加快应用程序的开发速度。
- 使用可视化集成开发环境,基于Eclipse CDT,为开发人员提供所见即所得(WYSIWYG)的界面设计环境,同时可以自动生成代码,维护工程框架等,使嵌入式编程像使用 VB、VC 编程一样方便和容易。
- 因为软件包选择上的一致性,当您从某个 SoC 切换到另外一个 SoC 时,已有的应用软件不需要重新开发,而只需重新编译。
- 极高的性价比,降低嵌入式软件开发的入门门槛,降低客户的研发投入和研发风险。
- 专业强大的技术支持和质量保证服务。
系统架构
系统软件框图如下:
-----------------------------------------------
| HybridOS Apps |
-----------------------------------------------
| HybridOS Desktop |
-----------------------------------------------
| hiWebKit with a replacable JS engine |____
----------------------------------------------- |
| MiniGUI, SQLite, | Node.js runtime env.|____| (Node.js optinal)
| Cairo, EGL, OpenGLES2, |---------------------| |
| FreeType, HarfBuzz, | Python runtime env. |____| (Python is optinal)
| LibPNG, LibJPEG, |---------------------| |
| GStreamer, ... | C/C++ runtime env. |____|
----------------------------------------------- | hiBus
| HybridOS daemons/servers |____|
-----------------------------------------------
| LibZ, CURL, LibGcrypt, ... | (infrastructure)
| HAL, C/C++ standard libraries | (HAL: Hardware abstract layer)
-----------------------------------------------
| Kernel/Drivers |
-----------------------------------------------
下图给出了 HybridOS 设备侧的系统架构图:
---------------------------------------------------------------------------------
| DockerBar, StatusBar, | | | Input Method Window, |
| Screen Lock, Launcher, | App Main Windows | N/A | System Alert Window, | - main windows
| Notification... | | | ... |
---------------------------------------------------------------------------------
| System Manager | App Agent | Wallpaper | mginit w/ compositor |____ - processes
--------------------------------------------------------------------------------- |
| hiWebKit | | |
--------------------------------------------- | |
| MiniGUI, hiCairo, hiMesa, SQLite, FreeType, HarfBuzz, LibPNG, LibJPEG, ... | | hiBus
| | |
--------------------------------------------------------------------------------- |
| HybridOS servers and user daemons |____|
---------------------------------------------------------------------------------
| Python runtime environment (optional) |
| LibZ, CURL, LibGcrypt, ... |
| C/C++ runtime environment |
---------------------------------------------------------------------------------
| Linux Kernel/Drivers |
---------------------------------------------------------------------------------
在 HybridOS 中,始终贯彻着一个重要的设计思想:数据驱动。而不论是单一应用场景还是多应用场景,hiBus 将成为 HybridOS 连接 App 和底层功能模块的纽带;甚至在将来,成为连接局域网内不同设备节点的纽带。
hiBus 的一些思想来自于 OpenWRT 的 uBus,比如通过 JSON 格式传递数据。但相比 uBus,hiBus 具有如下重要的改进:
- 提供两种类型的底层连接通道:本地的 Unix Domain Socket(简称 UnixSocket)和 WebSocket,以方便使用不同编程语言开发的模块都可以方便地连接到 hiBus 上。
- 提供基本的安全机制,以决定某个应用或者某个远程节点能否订阅(subscribe)特定的事件,以及能否调用(call)某个特定的过程(procedure)。
- 考虑到在未来,hiBus 可通过 WebSocket 向局域网中的其他 IoT 设备节点提供服务。因此,需要在事件订阅以及调用远程过程时包含主机名称信息。
- 重新设计的通讯协议,可避免出现同一应用扮演不同角色时出现死锁情形。
软件支持
HybridOS 整合了开源软件技术(如 Linux 内核)、飞漫软件专有的核心技术(MiniGUI)、以及飞漫浏览器(mDolphin)、J2SE 解决方案(mPeer)、可视化集成开发环境(mStudio)等,飞漫同时精心挑选了成熟和稳定的开源软件作为合璧操作系统的组成部分。
针对不同的 SoC,合璧操作系统(HybridOS)的软件包会有所不同;比如,低端 SoC(如 S3C2410)中不会包含浏览器,而高端 SoC(如 S3C6410)中不仅会包含浏览器,还会包含 OpenGL ES 支持、SDL 支持等等。
合璧操作系统按 SoC 分类,为流行的 SoC 提供如下软件包:
- 针对特定 SoC 的最新 Linux 内核及关键设备驱动程序
- 最新的 GNU 交叉编译工具链
- 基础系统函数库包
- 工具程序及脚本支持包
- XML 支持包
- 网络支持包
- 数据库支持包
- 图形及 GUI支持包:MiniGUI 3.0 及其组件
- 三维图形支持包:OpenGL ES 1.1/2.0(如果 SoC 含有支持 OpenGL ES 标准的 3D GPU)
- 浏览器支持包:mDolphin 2.0(主频超过 300MHz 的 SoC)
- 游戏支持包:SDL 1.2(主频超过 500MHz 的 SoC,且含有硬件二维图形加速)
- Gtk+ 兼容支持包:Gtk+ 2.16(主频超过 500MHz 的 SoC)
- 主机操作系统及开发工具:Ubuntu Linux 8.04 LTS with mStudio 1.2