理解 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 面向工业边缘场景的架构答卷。