近年、機能の複雑化が進むデジタル家電や携帯機器のOSに、LinuxやAndroidを使用するケースが増加していますが、電源断からの起動(コールドブート)時間が数十秒から1分前後もかかり、機器メーカーにとって改善すべき課題となっています。
Ubiquitous QuickBootはそのような課題を根本から解決するために、独自開発した新技術を採用したソリューションです。
楽曲再生(音出し)デモ ラストモード機能付き
システムの起動に必要なメモリ領域を優先的に不揮発性メモリからRAMに復元することで、他の方式と比べて圧倒的な速度で瞬間起動を実現します。また、アプリケーション側で使用しているメモリ量に依存せず常に高速起動が可能であり、残りのメモリ領域は起動後に順次 読み込みを行うため、ユーザーの操作にほとんど影響を与えません。
本ソリューションを利用することで、ユーザーの操作性を損なわず、待機電力をほぼゼロにした状態からシステムを瞬間起動できるデジタル家電や携帯機器などの製品を、開発いただくことが可能となります。

図1:ハイバネーション方式とクイックブートの動作原理の違い

図2:システム状態のメモリ・サイズと起動時間の関係模式図
QuickBootは、アプリケーションの特性に合わせて3種類の起動モードをサポートしています。
工場出荷時のスナップショットイメージで常に起動するモード
ランタイム時に新たなスナップショットイメージを作成。次回起動時には、新しく作成したスナップショットイメージから起動
スナップショットイメージを取り直さなくとも、アプリケーションの追加/削除、Androidのテーマの変更(アイコン移動、壁紙変更)等に対応するモード
1つのストレージを複数のパーティションに分けて、LinuxとQuickBootで共有して使用することが可能です。ストレージ共有機能は、共有によるオーバーヘッドが最小になるように最適化されています。対応デバイスは、SDおよびNANDなど。 高速起動を追求される場合には、QuickBoot専用のストレージをご用意いただくことをお勧めしています。
Linuxが使用しているメモリ領域のみを詰めてスナップショットイメージとして格納。
Linuxが使用しているメモリ領域を圧縮して、スナップショットイメージとして格納。圧縮アルゴリズムは、Non-GPLのものであれば、お客様が自由に選択可能。LZF、LZMA圧縮のサンプルコードを同梱。
シングルコアCPUに加え、高機能、省電力などのニーズから需要が高まりつつあるマルチコアCPUにも対応。幅広い組込み機器で採用が進んでいるARM社のCortex-A9 MPCoreをベースとしたCPUをサポートしています。
スナップショットイメージの全面書き換えではなく、新旧2つのスナップショットイメージの差分を抽出し、差分情報のみから新スナップショットイメージを作成するための各種ユーティリティを提供。アップデートに必要なバイナリのサイズを大幅に削減します。
ユビキタスでは、QuickBoot をお客様のターゲット環境に実装するためのコンポーネントを QuickBoot SDK (ソフトウェア開発キット) として提供しています。
QuickBoot SDK は、特定のリファレンスボードに QuickBoot を適用する例を示すことにより、その適用例を参照することによって、お客様のターゲット環境に QuickBoot を簡単に実装できるように設計されています。
QuickBoot SDK には、次のコンポーネントとドキュメントが同梱されています。
Linux/Android における QuickBoot の各コンポーネントの位置づけは、次図の通りです。
| コンポーネント | 機能概略 | 提供 形態 |
|---|---|---|
| QuickBoot スナップショットスクリプト | Linux 上で実行するシェルスクリプト。所望のアプリケーションを起動した後に、このシェルスクリプトを実行して、そのアプリケーションの実行状態を保存・復帰させます。 | Source |
| QuickBoot スナップショットドライバ | このドライバでは、RAM イメージを不揮発性メモリへ書き込む処理および周辺 I/O のレジスタ値等の保存・復帰処理等を行います。 | Source |
| QuickBoot BIOS/IRA | QuickBoot BIOS は、Linux とは独立して動作し、CPUのレジスタ操作や、RAMイメージの保存・復元処理を行います。また、QuickBoot IRA は、高速起動メカニズムを提供します。 (*)IRA : Intelligent Resource Allocator の略 | Binary |
| QuickBoot Storage BIOS | 不揮発メモリ(ストレージ)への読み書きを行うドライバBIOSです。 | Source |
| Kernel Patch | QuickBoot を適用する上で必要なKernelへの変更部分をKernel Patchとして提供します | Source |
| 大項目 | 中項目 | 小項目 | 内容 | ||
|---|---|---|---|---|---|
| ハードウェア要件 | サポートCPU | ARMアーキテクチャ | シングル | ARM9, ARM11, Cortex-A8/9 | |
| マルチ(SMP) | Cortex-A9 MPCore | ||||
| その他 | ご相談ください。 | ||||
| RAM | サイズ | 数百キロバイト。QuickBoot BIOS/IRA、QuickBoot Storage BIOSで使用 | |||
| 不揮発性メモリ | 種類 | NANDフラッシュROM、 SDカード、 eMMC、
HDDなど スナップショットイメージ格納用として使用 |
|||
| サイズ | Linux/Androidで使用しているメモリサイズ | ||||
| 圧縮サポート | サポート有り。(LZF、LZMA圧縮のサンプルコード同梱) | ||||
| 格納方式 | パックドイメージ(Packed Image) 圧縮イメージ(Compressed Image) |
||||
| ストレージ共有 | LinuxとQuickBootで1つのストレージを共有可能 | ||||
| ソフトウェア要件 | サポートOS | Linux | Kernel 2.6.26 以上。その他については、お問い合わせください。 | ||
| Android | Android 2.2、2.3
最新バージョンには、順次対応予定。 オプションパッケージのUbiquitous QuickBoot Android Packにてサポート。 |
||||
| リファレンスボード | ボード名 | シングルコア版 | Freescale Semiconductor社 i.MX51 EVK (i.MX51) | ||
| マルチコア版 | pandaboard.org PandaBoard (TI OMAP4) | ||||