カーネルモジュール解決法1。

カーネルモジュールはVIVER本体(viverrd.gz)(initrd)の中にsquashfsで圧縮した状態で入っているいるので、これをpivot_root後に/lib/modulesにマウントすれば、ディスクイメージ作成時にカーネルもジュールを展開しなくても良くなる。

ただ、こうするとpivot_root後にviverrdをアンマウントできなくなる。かといってコピーしてからマウントすると、15MBくらい差分を余計に食う。

viverrdをアンマウントできない=RAMを食う なので、RAMを差分保持に使っているならコピーした方がメモリの節約にはなることは確かなのだけど、viverrdをアンマウンとせずに残しておくというのは、いろいろと使い道があるのかもしれない。(アンマウントするための処理が面倒、というのもある)


viverrdの中には libc やら libstdc++ やら libpthread やらやらが入っているので、プラグインシステムでこれ使うのもアリかもしれない。
busyboxも入っているので、シェルスクリプトインタープリタとして使える。

まぁもっとも、libcなしで動くディストリビューションなんて無いわけで、だからどうしたという気もする。


LSB(Linux Standard Base)というのがある。
VIVERの動作に必要な環境、ということでLSBを入れておけば、libcやlibstdc++は必ず入っているし、FHS(Filesystem Hierarchy Standard)を含んでいるので、/binとか/etcとか/usr/localとかの基本的なディレクトリ構造は同じであるし、/etc/fstabファイルや/etc/mtabファイルは必ず存在する。

LSBはさりげなくRPMが要件に入っていたりして面白い。


LSB準拠ディストリビューションでなら必ず動くプラグインを作ることは不可能では無い…なんてことはないな。ものによる。
む。難しいなぁ。