開發與維運

AliOS Things 物聯網操作系統介紹


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

Leave a Reply

Your email address will not be published. Required fields are marked *