PDAの環境に適応するソフトウェア パッケージの作成と実行を支援する

SoftwarePot/iPAQ:
PDAの環境に適応するソフトウェア
パッケージの作成と実行を支援する
ミドルウェア
大山恵弘(科学技術振興事業団)
神田勝規(筑波大学)
加藤和彦(筑波大学, 科学技術振興事業団)
2002/09/27
FIT 2002
1
PDAの特徴

資源が貧弱
 私のiPAQ:


32MBメモリ
参考: gcc-2.95.3.tarは55MB
各端末が持つ環境が異なる
 ネット接続の有無
 ライブラリ等のコンポーネントの有無
 tar,
2002/09/27
Java, Perl, … があるパス
FIT 2002
2
PDAソフトウェアに対する要請

資源を節約して実行させたい!

多様な環境で動くようにしたい!
かつ、アプリケーションプログラマの
負担を減らしたい!
2002/09/27
FIT 2002
3
本研究の目的
 汎用ミドルウェアにより
消費資源の節約
各環境への適応
を行うPDAソフトウェアパッケージの
作成を支援
2002/09/27
FIT 2002
4
我々のアプローチ: SoftwarePot (1)
 直感的には「アーカイブのファイル木の
中でソフトを実行できるシステム」
Chrootに似た仮想FS
 アーカイブのルート
= 仮想FSのルート
各PDAのFS構成の多様性を隠蔽
2002/09/27
FIT 2002
5
我々のアプローチ: SoftwarePot (2)
 仮想FSを1個のファイルにダンプ可
それがソフトウェアパッケージとして流通
 使用にスーパユーザ権限は不要
2002/09/27
FIT 2002
6
SoftwarePotのイメージ
2002/09/27
FIT 2002
7
プロセス
プロセス
2002/09/27
FIT 2002
8
ファイルマッピング
 ソフトウェアごと(プロセスごと)に異なる
 2通りの張り方
静的:
設定ファイルで指示
動的: アプリケーションが実行中に
専用システムコールを呼び出す
2002/09/27
FIT 2002
9
実行時に決まるマッピング
プロセス
/usr/bin/perl
OK!
拒否!
ない!
dumbo:/usr/local/bin/perl
/usr/bin/perl
2002/09/27
/bin/perl
FIT 2002
10
仮想FSの実装
一時ディレクトリを作りファイルを展開
 システムコール引数の書き換え

 open(“/foo.txt”)

 open(“/tmp/xxx/foo.txt”)
遠隔ファイルへのアクセス時には遠隔計算機
からファイルを取得
 取得したファイルはキャッシュされるかもしれない
2002/09/27
FIT 2002
11
デモ!
2002/09/27
FIT 2002
12
資源節約に役立つ機能2つ
2002/09/27
FIT 2002
13
1. 要求駆動ファイル抽出

ファイルはアクセス時に初めてアーカイブ
から抽出
 アクセスされないファイルは抽出されない

実行終了後: 一時ディレクトリを丸ごと消去
 二次記憶を多く消費するのは実行中のみ
2002/09/27
FIT 2002
14
2. ファイル容量制限

一時ディレクトリに抽出されるファイルの
総容量を制限できる
 設定ファイルで上限を指示
 上限を超えたら
キャッシュされた遠隔の読み出し専用ファイル
 アーカイブから抽出された読み出し専用ファイル

のどれかを消去
2002/09/27
FIT 2002
15
実験・関連研究
2002/09/27
FIT 2002
16
実験
iPAQ H3630 (StrongARM, 32MB SDRAM)
 Familiar distribution (Linux 2.4.7)


cp –r /foo /bar の時間を計測
 ファイル数89、ファイル総量5.6MB
 /foo,
2002/09/27
/barともに実体は一時ディレクトリ内
FIT 2002
17
実験結果
Original
SoftwarePot/iPAQ
正規化実行時間
1.5
1
0.5
0
cp -r
2002/09/27
FIT 2002
18
実験結果
Original
SoftwarePot/iPAQ
正規化実行時間
1.5
1
0.5
0
fib
2002/09/27
FIT 2002
19
バイナリサイズ
 SoftwarePotバイナリ:
131KB
 カーネルモジュール: 52KB
ちなみに
Ruby:
583KB
tar: 139KB
2002/09/27
FIT 2002
20
関連研究

分散ファイルシステム(NFS, Samba, Coda)
 OS内の全プロセスが一つのマッピングを共有
 ファイルキャッシュ容量制限の機能なし

パッケージ管理(RPM, tar, InstallShield)
 遠隔ファイルを透明にアクセスさせる機能なし
2002/09/27
FIT 2002
21
まとめ
様々なFS構成のPDA上で実行可能で
 貧弱な二次記憶でも実行可能な

ソフトウェアパッケージの作成と実行を
仮想FSにより支援するシステムを提案
2002/09/27
FIT 2002
22
今後の課題
 消去するキャッシュファイルの賢い選択
過去の参照履歴、ユーザの設定を利用
 マッピング指示の記述を支援
ファイルの依存関係を検出
 cf.
2002/09/27
autoconf, RPM
FIT 2002
23