コンテンツにスキップ
JelinaJelina Documentation技術ドキュメント
公式サイトに戻る

システムアーキテクチャ

JelinaOS のアーキテクチャを理解する鍵は、デュアルシステム、読み取り専用ルート、独立したデータ、クラウド連携の 4 つです。これらが高い信頼性、保守性、管理性の基盤を構成します。

ストレージ上のパーティションは明確に分かれ、それぞれ単一の役割を担い、相互に干渉しません。固定の名前(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 パーティション選択 → カーネル読込み → システム構築 → 業務アプリ起動
│ │ │
プラットフォーム依存 プラットフォーム依存 非依存、以降は全プラットフォームで共通
  1. ハードウェアファームウェアとブートローダーがプラットフォームを初期化します。詳細はプラットフォームによって異なりますが、ユーザーが意識する必要はありません。
  2. ブートローダーが起動ポリシーを読み取り、A と B のどちらから起動するかを決定し、システムの健全性を検証します。
  3. カーネル起動後、読み取り専用のシステムパーティションと書き込み可能なデータパーティションを統合し、単一の実行環境として見せます。
  4. システムサービスと業務アプリケーションが順次起動し、デバイスが稼働を開始します。

システム更新も同じ流れに従います。新しいバージョンを予備パーティションに書き込み、切り替え後に自動検証し、失敗時には自動で戻します。帯域が限られる現場では、変更部分のみを転送する差分更新も利用できます。

このフローにより、更新は予備パーティションだけに作用し、現在のシステム稼働には影響しません。起動時に自動検証し、異常時に自動で切り替えます。

稼働中の内部データフローは、厳格な分離原則に従います。

┌────────────────────────────┐
│ アプリ層(コンテナ/ネイティブアプリ) │
└──────────────┬─────────────┘
│ 読取り:読み取り専用システム
│ 書込み:データ領域
┌──────────────┴─────────────┐
│ システム層(読み取り専用、改変不可) │
├────────────────────────────┤
│ データ領域(全ユーザー書き込み) │
└────────────────────────────┘
  • アプリケーションはシステム内容を読み取れますが、システム本体は変更できません。
  • すべての書き込みはデータパーティションへリダイレクトされ、システムから完全に分離されます。
  • 工場出荷状態への復元では、システムとユーザーの書き込み内容を初期状態に戻します。重要なデータは事前にバックアップしてください。

内蔵デバイスエージェントを通じて、JelinaCloud と連携します。

┌──────────┐ 状態報告/ログ ┌─────────────┐
│ エッジデバイス │ ─────────────────────────▶ │ JelinaCloud │
│ JelinaOS │ ◀───────────────────────── │ クラウド │
└──────────┘ 更新配信/遠隔運用保守 └─────────────┘
  • 上り:デバイス状態、稼働指標、ログを継続報告し、クラウドでリアルタイムに可視化します。
  • 下り:システム更新、アプリケーションリリース、設定ポリシーをクラウドで一元的に構成します。
  • 安全なチャネル:本番モードでは暗号化チャネルのみでクラウドと通信し、リモート保守のためにインターネットへ直接公開しません。
層 構成要素 役割
アプリケーション層 コンテナアプリケーション、ネイティブアプリケーション 業務ロジックの実行
実行層 コンテナランタイム、サービス管理、デバイスエージェント アプリケーション構成、システムサービス、クラウド連携
システム層 読み取り専用システム(Debian / Ubuntu / Kylin など) 安定し、改変されないシステム基盤の提供
ハードウェア層 ARM64(Allwinner / Rockchip / NXP i.MX)、x86_64 複数プラットフォームへの統一的な対応

このアーキテクチャにより、システムの安全性、更新の信頼性、運用保守の容易さを実現します。これが産業用エッジに向けた JelinaOS の設計です。