JelinaOS のアーキテクチャを理解する鍵は、デュアルシステム、読み取り専用ルート、独立したデータ、クラウド連携の 4 つです。これらが高い信頼性、保守性、管理性の基盤を構成します。
パーティション構成
Section titled “パーティション構成”ストレージ上のパーティションは明確に分かれ、それぞれ単一の役割を担い、相互に干渉しません。固定の名前(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 デュアルパーティション:カーネルとシステムをそれぞれ完全な 2 コピーで保持し、相互にバックアップします。
- 読み取り専用マウント:稼働中のシステムパーティションは読み取り専用で、プログラムによる改変を防ぎます。
- 独立したデータパーティション:ユーザーデータ、設定、稼働中の書き込みを Data パーティションに集約します。
ハードウェアプラットフォームにかかわらず、起動は共通の流れに従います。
ハードウェアファームウェア → ブートローダー → A/B パーティション選択 → カーネル読込み → システム構築 → 業務アプリ起動 │ │ │プラットフォーム依存 プラットフォーム依存 非依存、以降は全プラットフォームで共通- ハードウェアファームウェアとブートローダーがプラットフォームを初期化します。詳細はプラットフォームによって異なりますが、ユーザーが意識する必要はありません。
- ブートローダーが起動ポリシーを読み取り、A と B のどちらから起動するかを決定し、システムの健全性を検証します。
- カーネル起動後、読み取り専用のシステムパーティションと書き込み可能なデータパーティションを統合し、単一の実行環境として見せます。
- システムサービスと業務アプリケーションが順次起動し、デバイスが稼働を開始します。
システム更新も同じ流れに従います。新しいバージョンを予備パーティションに書き込み、切り替え後に自動検証し、失敗時には自動で戻します。帯域が限られる現場では、変更部分のみを転送する差分更新も利用できます。
このフローにより、更新は予備パーティションだけに作用し、現在のシステム稼働には影響しません。起動時に自動検証し、異常時に自動で切り替えます。
データフローと分離
Section titled “データフローと分離”稼働中の内部データフローは、厳格な分離原則に従います。
┌────────────────────────────┐ │ アプリ層(コンテナ/ネイティブアプリ) │ └──────────────┬─────────────┘ │ 読取り:読み取り専用システム │ 書込み:データ領域 ┌──────────────┴─────────────┐ │ システム層(読み取り専用、改変不可) │ ├────────────────────────────┤ │ データ領域(全ユーザー書き込み) │ └────────────────────────────┘- アプリケーションはシステム内容を読み取れますが、システム本体は変更できません。
- すべての書き込みはデータパーティションへリダイレクトされ、システムから完全に分離されます。
- 工場出荷状態への復元では、システムとユーザーの書き込み内容を初期状態に戻します。重要なデータは事前にバックアップしてください。
クラウド連携
Section titled “クラウド連携”内蔵デバイスエージェントを通じて、JelinaCloud と連携します。
┌──────────┐ 状態報告/ログ ┌─────────────┐│ エッジデバイス │ ─────────────────────────▶ │ JelinaCloud ││ JelinaOS │ ◀───────────────────────── │ クラウド │└──────────┘ 更新配信/遠隔運用保守 └─────────────┘- 上り:デバイス状態、稼働指標、ログを継続報告し、クラウドでリアルタイムに可視化します。
- 下り:システム更新、アプリケーションリリース、設定ポリシーをクラウドで一元的に構成します。
- 安全なチャネル:本番モードでは暗号化チャネルのみでクラウドと通信し、リモート保守のためにインターネットへ直接公開しません。
アーキテクチャ一覧
Section titled “アーキテクチャ一覧”| 層 | 構成要素 | 役割 |
|---|---|---|
| アプリケーション層 | コンテナアプリケーション、ネイティブアプリケーション | 業務ロジックの実行 |
| 実行層 | コンテナランタイム、サービス管理、デバイスエージェント | アプリケーション構成、システムサービス、クラウド連携 |
| システム層 | 読み取り専用システム(Debian / Ubuntu / Kylin など) | 安定し、改変されないシステム基盤の提供 |
| ハードウェア層 | ARM64(Allwinner / Rockchip / NXP i.MX)、x86_64 | 複数プラットフォームへの統一的な対応 |
このアーキテクチャにより、システムの安全性、更新の信頼性、運用保守の容易さを実現します。これが産業用エッジに向けた JelinaOS の設計です。