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新機制、完整性保護等等。一整套的安全體系構建貫穿在系統各個層次中,詳情見系統安全部分的介紹。


TAG:吳川斌的博客 |