AliOSLite正式开源

近日,AliOS正式在官方代码库上开源了全新研发的AliOSLite。自此,在AliOSThings和AliOSLite上的开源承诺均已兑现,也完善了在各种能力硬件上的系统生态布局。

AliOSLite面向需要AI能力的可编程终端产品,支持更多任务处理,支持语音交互、视觉计算等智能处理,适用于CPU性能和内存需求较低(最低可支持MB)的智能设备,例如智能音箱、智能手表、智能摄像头等。AliOSLite中包含了基于主流机器学习框架的AISDK——MLKit以及阿里针对特定场景自研的AI模型和算法,其最大的特色是摆脱了用户使用AI能力时需要联网的束缚,最大程度地利用设备硬件能力来提供低延迟高可用性的AI服务。

据悉,此次AliOS联合英特尔共同开源基于英特尔赛扬处理器J的智能开发板的AliOSLite,今后将支持更多基于英特尔架构的开发板。

AliOS是基于LinuxKernel研发的驱动万物智能的操作系统,适用于多种设备类型,如物联网设备、手机、平板电脑、电视、车载系统等。下图是AliOSLite整体架构及系统的主要组件模块。

应用层(Applications)

系统包含内置的系统级应用来提供系统各种能力给到最终用户。这些应用包括常见的桌面(Desktop)、系统界面(SystemUI)、浏览器(Browser)、音乐(Music)、录音机(Recorder)、设置(Settings)等。系统定制者和应用开发者可以基于应用框架层的API能力开发新的应用。

应用框架层(ApplicationFramework)

应用开发者使用JavaScript语言开发AliOS系统的应用(称为“CloudApp”),通过AliOS应用框架提供的JavaScriptAPI访问AliOS系统完整能力集以及系统的“云服务”能力集。同时,系统提供一定程度的本地化接口(C/C++API),方便应用开发者在一些场景下来获得更好性能的能力。应用框架层主要包括以下组件和服务:

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

值得一提的是,熟悉Web和HTML的开发者也可以使用HTML开发CloudApp,并且也具有直接调用应用框架层接口的能力。AliOS应用开发者可以在”API参考”找到完整的应用框架系统API列表。

应用运行时层(ApplicationRuntime)

应用运行时环境为系统上的应用(CloudApp)提供完整、高效、可控的运行时环境,支持CloudApp包资源获取、缓存等能力。该层包含以下几个重要组件:

虚拟机虚拟机及核心库设施是一个兼容Node.js的JavaScript运行时环境,支持事件驱动、非阻塞I/O操作,并提供高效的JavaScript编译与执行、对象生命周期管理与垃圾回收机制。每一个AliOS应用进程都有自己独享的虚拟机实例,为了减少应用进程的内存开销,同时加快虚拟机启动速度,AliOS采用了Seed进程机制:每一个应用进程都是从一个共同的祖先进程,即Seed进程创建。Seed进程在AliOS系统启动阶段就会被创建,此时Seed进程会创建虚拟机实例并对其进行初始化,加载应用框架和其它一些每个应用进程都可能用到的库。当需要一个新的应用进程时,系统从Seed进程创建出一个新的进程,新的进程与Seed进程分享了实例代码,应用框架以及其它的共享库代码和数据。一旦这些共享代码或数据被应用进程修改了,“copy-on-wirte”机制会将修改的被修改的代码或数据拷贝到相应应用进程,而Seed进程以及其它由Seed进程创建而来的应用进程不受此影响,进程间的安全边界得到保证。

页面生命周期管理服务(PageSystem)

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

SPMS和DPMS一起协同配合,实现无论页面及其资源是否在设备本地,一旦有需要就能被高效地在设备本地加载运行。而一旦AliOS应用页面在AliOS应用分发中心被更新,SPMS会和DPMS协作确保最短时间内用户可以用到最新的页面。

网络管理服务(NetworkManagementService,NMS)和数据管理服务(DataManagementService,DMS)AliOS应用访问网络服务(例如通过HTTP协议访问一个Web服务)和本地数据服务(例如访问本地数据库)都是受控的,都是经由运行时环境中的NMS和DMS来处理。这样网络通讯和数据访问的安全性有了系统性的保障,可以有利管控不良应用给用户带来的不利后果。

图形用户界面渲染引擎(AgilEngine)这是一个高效的图形渲染引擎,它能够支撑开发者使用应用框架开发灵活、流畅的图形用户界面。

Web引擎(WebEngine)系统兼容Web生态,包括HTML5的众多功能特性。运行时环境中的Web引擎支持应用框架中的系统WebView,以及前面提到的使用HTML开发的AliOS应用的运行。

系统服务层(Systemservices)

系统服务层是AliOS操作系统中提供硬件核心能力的服务层,为上层的应用框架提供基本的设备服务,例如窗口管理服务、WiFi、蓝牙、传感器、电源管理、多媒体、相机等,同时系统服务层还包含了一些基本的核心库,为系统中各个组件使用。

硬件抽象层(HAL,HardwareAbstractionLayer)

系统定位于服务各种智能化设备,所以需要能够适应这种层次的硬件。为此,在系统服务层之下硬件之上,系统定义了硬件的抽象层,用来解决硬件的差异带来系统架构上的适配问题。综合来看,硬件抽象层的主要目的在于:

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

内核层(Kernel)

系统复用来自于开源社区的LinuxKernel,主要是通过Linux内核管理设备硬件资源,如CPU调度、缓存、内存、I/O等。系统同芯片提供商一起进行内核的版本定期升级和维护。针对LinuxKernel,为了完成系统的要求,还需要在内存管理、安全机制、流量管控、进程间通信(IPC)等基础性方面进行有效性的提升。

除了上述阐述的六个层次之外,系统包含了更多特征和能力,体现在安全体系、AI能力和云上服务部分,主要包括以下三大类:

AI能力(ArtificialIntelligenceCapabilities)

系统整合了人工智能领域的能力,内置了包括机器学习框架(MLKit)、智能语音(NUI)、视觉智能(Vision)等在内的多种能力。

云上服务(CloudServices)

系统整合了各种云上服务的能力,包括基础性的服务如帐号、支付、系统升级、备份、位置等,也加入了增强型的服务,例如推送、数据智能等。系统提供支持这些云服务的客户端框架,使得系统开发者在支持无缝连接AliOS所提供的云服务之外,可以根据自己的需要来定制自身云上的方案。

安全体系(Security)

系统提供了从上到下的一整套安全机制,从应用层的权限(Permission)、应用数据隔离、Web安全等,到运行时环境的安全沙箱、授权管理、证书管理和认证,再到内核层的SELinux新机制、完整性保护等等。一整套的安全体系构建贯穿在系统各个层次中,详情见系统安全部分的介绍。

关于如何获得代码或者想了解更多关于AliOSLite的详情,请访问developer.alios.cn。



转载请注明:http://www.abuoumao.com/hyfz/3976.html

网站简介| 发布优势| 服务条款| 隐私保护| 广告合作| 网站地图| 版权申明

当前时间: 冀ICP备19029570号-7