简介:
AliOS 是基于 Linux Kernel 研发的驱动万物智能的操作系统,适用于多种设备类型,如物联网设备、手机、平板电脑、电视、车载系统等。下图是 AliOS Lite整体架构及系统的主要组件模块。 
图1 AliOS系统架构和模块
应用层(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包资源获取、缓存等能力。该层包含以下几个重要组件:
系统服务层(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新机制、完整性保护等等。一整套的安全体系构建贯穿在系统各个层次中,详情见系统安全部分的介绍。