理解 JelinaOS 的架構,只需抓住四個關鍵詞:雙系統、唯讀根、獨立資料、雲端協作。這套設計共同構成了系統高可靠、易維護、可管理的基礎。
JelinaOS 在儲存媒體上採用清晰的分割區佈局,各分割區職責單一、互不干擾。分割區以固定名稱(Label)標識,跨平台一致——無論底層裝置節點如何變化(x86 為 sda/nvme、ARM 為 mmcblk),系統都透過分割區名稱定位:
┌────────────────────────────────────────────────┐│ jelina-boot 引導分割區:啟動載入器與環境變數 ││ jelina-kernel-1 核心 1(與 2 互為備份,唯讀) ││ jelina-kernel-2 核心 2 ││ jelina-system-1 系統 1(唯讀,出廠狀態) ││ jelina-system-2 系統 2 ││ jelina-data 資料分割區:所有使用者資料與寫入 ││ jelina-recv 恢復分割區:系統修復與恢復出廠 │└────────────────────────────────────────────────┘- A/B 雙分割區:核心與系統各保留兩份完整副本,互為備份;
- 唯讀掛載:系統分割區在執行期間以唯讀方式掛載,內容不會被任何程式篡改;
- 獨立資料分割區:所有使用者資料、設定與執行期間寫入,統一落在 Data 分割區。
無論底層是哪一種硬體平台,JelinaOS 的啟動鏈路都遵循同一套邏輯:
硬體韌體 → 啟動載入器 → 選擇 A/B 分割區 → 載入核心 → 組裝系統 → 業務應用程式啟動 │ │ │平台相關 平台相關 平台無關,以下流程所有平台完全一致- 硬體韌體與啟動載入器完成平台初始化(不同平台各有差異,使用者無需感知);
- 啟動載入器讀取啟動策略,決定從 A 還是 B 分割區啟動,並檢查系統健康狀態;
- 核心啟動後,系統將唯讀的系統分割區與可寫的資料分割區組裝為統一的執行檢視;
- 系統服務與業務應用程式依次啟動,裝置進入工作狀態。
系統更新遵循同一套鏈路:新版本寫入備用分割區,切換後自動檢查,失敗自動回退;頻寬受限的現場還可使用增量更新,只傳輸變化部分。
這套流程保證:更新隻影響備用分割區,目前系統執行不受影響;啟動時自動檢查,異常自動切換。
資料流與隔離
Section titled “資料流與隔離”執行期間,系統內部的資料流向遵循嚴格的隔離原則:
┌────────────────────────────┐ │ 應用層(容器 / 原生應用程式) │ └──────────────┬─────────────┘ │ 讀取:唯讀系統 │ 寫入:資料分割區 ┌──────────────┴─────────────┐ │ 系統層(唯讀,不可篡改) │ ├────────────────────────────┤ │ 資料分割區(所有使用者寫入) │ └────────────────────────────┘- 應用只能讀取系統內容,無法修改系統本體;
- 所有寫入操作被重定向到資料分割區,與系統完全隔離;
- 還原原廠設定會將系統與使用者寫入恢復到出廠狀態,重要資料請提前備份。
裝置透過內建的裝置代理程式與 JelinaCloud 雲端平台協作工作:
┌──────────┐ 狀態回報 / 記錄 ┌─────────────┐│ 邊緣裝置 │ ─────────────────────────▶ │ JelinaCloud ││ JelinaOS │ ◀───────────────────────── │ 雲端平台 │└──────────┘ 更新下發 / 遠端維運 └─────────────┘- 上行:裝置狀態、執行指標、記錄持續回報,雲端即時可視;
- 下行:系統更新、應用釋出、設定策略雲端統一編排;
- 安全通道:生產模式下,裝置僅透過加密通道與雲端通訊,遠端維運不經公用網路暴露。
| 層次 | 組成 | 職責 |
|---|---|---|
| 應用層 | 容器應用程式、原生應用程式 | 承載業務邏輯 |
| 執行層 | 容器執行環境、服務管理、裝置代理程式 | 應用編排、系統服務、雲端協作 |
| 系統層 | 唯讀系統(Debian / Ubuntu / Kylin 等) | 提供穩定、不可篡改的系統底座 |
| 硬體層 | ARM64(全志 / 瑞芯微 / NXP i.MX)、x86_64 | 多平台統一適配 |
這套架構的最終效果:系統更安全、更新更可靠、維運更簡單——這正是 JelinaOS 面向工業邊緣場景的架構答卷。