AliOS Things 發佈於2017年杭州雲棲大會, 是 AliOS 家族旗下的、面向 IoT 領域的、高可伸縮的物聯網操作系統。
GitHub 倉庫地址:https://github.com/alibaba/AliOS-Things。
gitee鏡像地址:https://gitee.com/alios-things/AliOS-Things。
可視化裁剪頁面地址:https://aliosthings.iot.aliyun.com/aos/download。
AliOS Things 致力於搭建雲端一體化 IoT 基礎設施,具備極致性能、極簡開發、雲端一體、豐富組件、安全防護等關鍵能力。AliOS Things 支持多種多樣的設備連接到阿里雲IoT平臺,可廣泛應用在智能家居、智慧城市、工業,新出行等領域。
特性
即插即用的連接和豐富服務
- 通過 Alink 與阿里雲計算 IoT 服務無縫連接
- 支持 uMesh 即插即用網絡技術,設備上電自動連網
差分+安全OTA升級
- 差分增量包升級
- 安全數字簽名
- 安全下載通道
- 斷點續傳
- 乒乓升級
- 版本回溯
徹底全面的安全保護
- 提供系統和芯片級別安全保護
- 支持可信運行環境(支持 ARMV8-M Trust Zone)
- 支持預置 ID2 根身份證和非對稱密鑰以及基於 ID2 的可信連接和服務
高度優化的性能
- 內核支持 Idle Task,資源消耗:RAM < 1KB, ROM < 2KB,提供硬實時能力
- 提供 Yloop 事件框架以及基於此整合的核心組件,避免棧空間消耗,核心架構良好支持極小 footprint的設備
極簡開發
- 基於Linux之上的輕量虛擬化環境,開發者直接在 Linux 平臺上開發硬件無關的 IoT 應用和軟件庫,使用GDB/Valgrind/SystemTap 等 PC 平臺工具診斷開發問題
- 提供 IDE,支持系統/內核行為 Trace, Mesh 組網圖形化顯示
- 提供 Shell 交互,支持內存踩踏、洩露、最大棧深度等各類偵測
- 提供面向組件的編譯系統以及 aos-cube 工具,支持靈活組合 IoT 產品軟件棧
- 提供包括存儲(掉電保護、負載均衡)在內的各類產品級別的組件
License
AliOS Things 開源代碼遵循 Apache 2.0 license 開源協議。
AliOS Things的架構可以適用於分層架構和組件化架構。
目錄結構
AliOS Things core SDK包含以下目錄:
AliOS-Things
├── application
│ ├── example # 示例代碼
│ └── profile # 典型場景的應用方案
├── build # 編譯構建相關工具和腳本
├── components # 功能組件
│ ├── dm # 設備管理組件
│ │ ├── bootloader
│ │ ├── ota
│ │ ├── ulog
│ │ └── und
│ ├── linkkit # 阿里雲IoT連接套件
│ ├── network # IP網絡協議棧組件
│ │ ├── http
│ │ ├── lwip
│ │ └── netmgr
│ ├── security # 安全類組件
│ │ └── mbedtls
│ └── utility # 工具類組件
│ ├── cjson
│ └── yloop
├── core # 內核及相關組件
├── document # 說明文檔
├── include # 組件對外的頭文件
├── platform # 芯片平臺支持和BSP
│ ├── arch # 架構移植
│ ├── board # 板級支持
│ └── mcu # MCU, SoC 移植支持
└── projects # 為不同開發環境提供的工程相關文件
增值類組件,可以通過uCube命令下載、安裝、升級和卸載。 增值類組件,一般都安裝到components目錄。
components
├── bus # 本地通訊協議
│ ├── canopen
│ ├── knx
│ ├── mbmaster
│ └── usb
├── dm # 設備管理
│ └── uagent
├── fs # 文件系統
│ ├── cramfs
│ ├── fatfs
│ ├── jffs2
│ ├── ramfs
│ ├── spiffs
│ ├── uffs
│ └── yaffs2
├── gui # 人機交互界面
│ ├── freetype-2.5.3
│ └── littlevGL
├── language # 腳本引擎
│ ├── jsengine
│ └── micropython
├── network # IP網絡協議棧
│ ├── coap
│ ├── httpdns
│ ├── libsrtp
│ ├── lwm2m
│ ├── mal
│ ├── rtp
│ ├── sal
│ ├── umesh2
│ └── websocket
├── peripherals # 外設驅動
│ ├── iot_comm_module
│ │ ├── mal
│ │ └── sal
│ └── sensor
├── security # 安全
│ └── linksecurity
├── service # 應用組件
│ ├── uai
│ ├── udata
│ └── ulocation
├── utility # 工具類
│ ├── at
│ ├── debug_tools
│ └── zlib
└── wireless # 無線類
├── bluetooth
└── lorawan