特定用途のための汎用OSのサイズ縮小に関する研究

森若和雄 (9951118)


近年、組み込みシステムに汎用OSを利用することが多くなっている。 このときOSが利用する資源が多いことが問題になるので、その 対策を考えたい。

大抵の汎用OSでは、ハードウェアの変化に関してはデバイスドライバの変更などで 柔軟に対応するが、API(Application Program Interface)セットは固定的でほとんど 変更できない。これは汎用OSが、どのようなソフトウェアが動作するかわからない 状態で、そのOSで標準化されたサービスを提供する という前提で作られて いるからである。 しかしほとんどの組み込みシステムでは、完成後にソフトウェアの変更はないので、 そのソフトウェアが動作するために必要なAPIのみが提供されていればよい。

そこで、利用されないAPIを実装するために利用されているコードを取り除くこと によって、汎用OSのサイズを縮小し、利用する資源を減らすことを考える。

ソフトウェアスライシング技術の応用によるソフトウェアの専用化を利用して OSのサイズ縮小をはかる。OSに適用するにはアセンブリ言語での記述や入出力など のOSに特徴的な部分でいくつかの課題があるので、それぞれの対応を検討する。

不要なAPIの実装を削除するというアイデアが有効であることを示すために、 MINIXのソースコードを利用して実験を行った。不要なコードを関数単位で 削除し、行数での比較で最大80%、init を実行するのに必要なAPIを実装した場合 でも10%程度のコードの削減ができた。