AliOS Lite正式开源

 AliOS Lite正式开源

近日,AliOS正式在官方代码库上开源了全新研发的AliOS Lite。自此,在AliOS Things和AliOS Lite上的开源承诺均已兑现,也完善了在各种能力硬件上的系统生态布局。
AliOS Lite面向需要AI能力的可编程终端产品,支持更多任务处理,支持语音交互、视觉计算等智能处理,适用于 CPU 性能和内存需求较低(最低可支持 256MB)的智能设备,例如智能音箱、智能手表、智能摄像头等。AliOS Lite中包含了基于主流机器学习框架的AI SDK——MLKit以及阿里针对特定场景自研的AI模型和算法,其最大的特色是摆脱了用户使用AI能力时需要联网的束缚,最大程度地利用设备硬件能力来提供低延迟高可用性的AI服务。
据悉,此次AliOS联合英特尔共同开源基于英特尔赛扬处理器J3455的智能开发板的AliOS Lite,今后将支持更多基于英特尔架构的开发板。
AliOS 是基于 Linux Kernel 研发的驱动万物智能的操作系统,适用于多种设备类型,如物联网设备、手机、平板电脑、电视、车载系统等。下图是 AliOS Lite整体架构及系统的主要组件模块。

应用层(Applications)
系统包含内置的系统级应用来提供系统各种能力给到最终用户。这些应用包括常见的桌面(Desktop)、系统界面(SystemUI)、浏览器(Browser)、音乐(Music)、录音机(Recorder)、设置(Settings)等。系统定制者和应用开发者可以基于应用框架层的API能力开发新的应用。
应用框架层(Application Framework)
应用开发者使用 JavaScript 语言开发 AliOS系统的应用 (称为“CloudApp”),通过 AliOS 应用框架提供的 JavaScript API 访问 AliOS 系统完整能力集以及系统的“云服务”能力集。同时,系统提供一定程度的本地化接口(C/C++ API),方便应用开发者在一些场景下来获得更好性能的能力。应用框架层主要包括以下组件和服务:

  • 灵活、可扩展的用户界面系统,方便开发者构建优美、流畅的用户交互体验 开发者除了可以使用代码创建用户界面以外,还可以使用基于 XML 的 AliOS 界面定义语言 UI Markup Language描述用户界面的构成和布局,由应用框架在运行时帮助创建相应的用户界面。
  • 基于页面Page的应用组件和应用生命周期管理,利于开发者灵活构建应用结构 开发者可以自定义页面生命周期中重要阶段的事件处理逻辑,通过 Page Link 启动一个新的页面,与另一个页面进行通信和数据交换,通过 Page Cover使得应用的能力可以在应用之外的其它容器中被组合,利于服务的轻量化和整合。
  • 应用资源的存取和管理,方便开发者在任何时候对于非代码应用数据的存取 开发者可以方便地访问与目标地区(locale)以及设备类型(例如屏幕分辨率)相匹配的非代码的应用资源,例如文本、图片等。
  • 系统能力服务,方便开发者充分利用设备的能力。 开发者使用应用框架提供的系统API可以访问目标设备上操作系统提供的各项能力,例如 WiFi、蓝牙、电话、网络通信、通知等。
  • 系统“云服务”,为开发者提供打造进阶服务的能力。 系统整合并提供了一系列对开发者非常有用的云服务能力,例如账号、支付、推送通道、基于位置的服务、搜索、场景化服务等。

值得一提的是,熟悉 Web 和 HTML 的开发者也可以使用 HTML 开发 CloudApp,并且也具有直接调用应用框架层接口的能力。 AliOS 应用开发者可以在”API参考”找到完整的应用框架系统API 列表。
应用运行时层(Application Runtime)
应用运行时环境为系统上的应用(CloudApp)提供完整、高效、可控的运行时环境,支持CloudApp包资源获取、缓存等能力。该层包含以下几个重要组件:
虚拟机 虚拟机及核心库设施是一个兼容Node.js的JavaScript运行时环境,支持事件驱动、非阻塞 I/O 操作,并提供高效的JavaScript编译与执行、对象生命周期管理与垃圾回收机制。 每一个AliOS应用进程都有自己独享的虚拟机实例,为了减少应用进程的内存开销,同时加快虚拟机启动速度,AliOS采用了Seed进程机制:每一个应用进程都是从一个共同的祖先进程,即Seed进程创建。Seed进程在 AliOS 系统启动阶段就会被创建,此时Seed进程会创建虚拟机实例并对其进行初始化,加载应用框架和其它一些每个应用进程都可能用到的库。当需要一个新的应用进程时,系统从Seed进程创建出一个新的进程,新的进程与 Seed 进程分享了实例代码,应用框架以及其它的共享库代码和数据。一旦这些共享代码或数据被应用进程修改了,“copy-on-wirte”机制会将修改的被修改的代码或数据拷贝到相应应用进程,而Seed进程以及其它由 Seed 进程创建而来的应用进程不受此影响,进程间的安全边界得到保证。
页面生命周期管理服务(PageSystem)

  • 静态页面管理服务(Static Page Management Service, SPMS) 负责应用资源定位、下载/预下载、缓存、更新 AliOS 应用的页面以及页面所依赖的各种应用资源。
  • 动态页面管理服务(Dynamic Page Management Service, DPMS) 负责创建、清除 AliOS 应用的页面实例,当用户或者系统改变页面在其生命周期中所处状态时通知页面(例如从前台换到后台或从后台换到前台),页面链接(Page Link)的管理等。

SPMS 和 DPMS 一起协同配合,实现无论页面及其资源是否在设备本地,一旦有需要就能被高效地在设备本地加载运行。而一旦 AliOS 应用页面在 AliOS 应用分发中心被更新,SPMS 会和 DPMS 协作确保最短时间内用户可以用到最新的页面。
网络管理服务(Network Management Service, NMS)和数据管理服务(Data Management Service, DMS) AliOS 应用访问网络服务(例如通过 HTTP 协议访问一个 Web 服务)和本地数据服务(例如访问本地数据库)都是受控的,都是经由运行时环境中的NMS和DMS来处理。这样网络通讯和数据访问的安全性有了系统性的保障,可以有利管控不良应用给用户带来的不利后果。
图形用户界面渲染引擎(Agil Engine) 这是一个高效的图形渲染引擎,它能够支撑开发者使用应用框架开发灵活、流畅的图形用户界面。
Web 引擎(Web Engine) 系统兼容Web生态,包括HTML5的众多功能特性。运行时环境中的 Web 引擎支持应用框架中的系统 WebView,以及前面提到的使用 HTML 开发的 AliOS 应用的运行。
系统服务层(System services)
系统服务层是AliOS操作系统中提供硬件核心能力的服务层,为上层的应用框架提供基本的设备服务,例如窗口管理服务、WiFi、蓝牙、传感器、电源管理、多媒体、相机等,同时系统服务层还包含了一些基本的核心库,为系统中各个组件使用。
硬件抽象层(HAL, Hardware Abstraction Layer)
系统定位于服务各种智能化设备,所以需要能够适应这种层次的硬件。为此,在系统服务层之下硬件之上,系统定义了硬件的抽象层,用来解决硬件的差异带来系统架构上的适配问题。综合来看,硬件抽象层的主要目的在于:

  • 保证系统的上层架构及模块设计一致,从而便于移植到不同的硬件平台
  • 屏蔽底层硬件的差异性
  • 提供最大的硬件覆盖性,提升系统的适用能力

内核层(Kernel)
系统复用来自于开源社区的Linux Kernel,主要是通过 Linux 内核管理设备硬件资源,如 CPU调度、缓存、内存、I/O 等。系统同芯片提供商一起进行内核的版本定期升级和维护。 针对Linux Kernel,为了完成系统的要求,还需要在内存管理、安全机制、流量管控、进程间通信(IPC)等基础性方面进行有效性的提升。
除了上述阐述的六个层次之外,系统包含了更多特征和能力,体现在安全体系、AI能力和云上服务部分,主要包括以下三大类:
AI能力(Artificial Intelligence Capabilities)
系统整合了人工智能领域的能力,内置了包括机器学习框架(MLKit)、智能语音(NUI)、视觉智能(Vision)等在内的多种能力。
云上服务(Cloud Services)
系统整合了各种云上服务的能力,包括基础性的服务如帐号、支付、系统升级、备份、位置等,也加入了增强型的服务,例如推送、数据智能等。 系统提供支持这些云服务的客户端框架,使得系统开发者在支持无缝连接AliOS所提供的云服务之外,可以根据自己的需要来定制自身云上的方案。
安全体系(Security)
系统提供了从上到下的一整套安全机制,从应用层的权限(Permission)、应用数据隔离、Web安全等,到运行时环境的安全沙箱、授权管理、证书管理和认证,再到内核层的SELinux新机制、完整性保护等等。一整套的安全体系构建贯穿在系统各个层次中,详情见系统安全部分的介绍。
关于如何获得代码或者想了解更多关于AliOS Lite的详情,请访问developer.alios.cn。

吴川斌

吴川斌

Leave a Reply