ユビキタスは2011年10月19日、Linux/Android組み込み端末の開発者に向けて、Linux/Androidを高速起動するためのソフトウエア開発キット新版「Ubiquitous QuickBoot Release 1.2」を出荷した。新版では、不揮発性ストレージ容量などのリソース要求を少なくするなど、機能拡張を施した。価格は非公開。

 QuickBootは、LinuxやAndroidを高速に起動できるようにするソフトウエア開発キットである。電源投入から1秒といった素早いタイミングで端末を利用可能な状態にまで立ち上げることができる。Linux/Androidベースの端末(モバイル端末やセットトップボックスなど)を開発する企業がQuickBootを利用することで、自社製品に高速起動という付加価値を付けられる。

 高速起動の仕組みは次のようになる。基本は、OSのハイバネーション(休止状態)を利用する。OSのメモリーイメージを保存しておき、復帰時にこれをメモリー上に読み込むことで、通常のブートプロセスを省略する。QuickBootではさらに、休止状態からの復帰時に特徴がある。メモリーイメージのすべてを読み込むまで待つことをせず、必要なデータから順番に読み込みながら操作画面などを優先的に立ち上げる。

メモリーイメージのリソース要求を緩和

 今回の新版では、大きく二つの機能拡張と、大きく二つのプラットフォーム対応を施した。機能拡張の一つとして、メモリーイメージをデータ圧縮して格納できるようにした。これにより、休止状態のためにメインメモリーと同容量の不揮発性ストレージを用意する必要がなくなった。任意の圧縮アルゴリズムを利用できる。圧縮率は50%程度を見込める。

 もう一つの機能拡張は、機能追加やバグ修正などによって端末をアップデートする際に、メモリーイメージ全体の更新データではなく、更新データの差分を適用できるようにするもの。差分の作成機能と、差分データを用いてイメージを更新する機能を提供する。データの配布手段や適用のフックなどは、開発者が実装する。

Android 2.2/2.3向けの開発を可能に

 プラットフォームへの対応では、Android端末向けに壁紙や個人設定などをメモリーイメージに保存できるようにするオプション「Android Pack」の対応OSとして、最新のAndroid 2.2/2.3を追加した。なお、QuickBootには、毎回同じメモリーイメージを使うスタティックモード、シャットダウン時など任意のタイミングでイメージを丸ごと上書きするダイナミックモードがある。Android Packでは、スタティックモードを基本としつつ、一部データを更新可能とする。

 ストレージドライバを実装する際に、GPL(GNU General Public License)で保護されたストレージドライバのコードを使って、開発負荷を低減できるようにした。ストレージドライバを他のモジュールと分離した別ソフトとして実装し、BIOSコール経由でストレージドライバを利用できるようにした。これにより、GPLのライセンス上の制限を受けることなく、GPLで保護されたストレージドライバを活用できるようになった。