Kernel の再構成
目次
2002/08/31 改訂
Plan9 はマニア好みの OS である。何しろカーネルのハッキングはコンピュータマニアの究極の遊びである。その相手が最もナウイ Plan9 であればさおさらの事である。ソースコードは付属している。面白い仕掛けが発見できるだけではない。見るだけではつまらないのだ。自分なりにアレンジしなくては。そして Plan9 は我々普通のユーザが(とは言ってもプログラミングの能力は要求される)カーネルを弄るのに最適な OS なのだ。
一般的に言えばカーネルに手を入れる事は大変なリスクを背負っている。まかり間違えばシステムを破壊する。とくにファイルシステムには絶対手を出さない事だ。
カーネルを再構築する場合には、そこで発生する事態を予測し事前に手を打つ必要がある。
等等の事を考えての対策が必要なのである。
分散システムの場合
カーネル遊びは分散システムの下で行うのが最も安全であり、また効率的である。
読者は多分 PC を端末として使っているだろう。そして最初の実験をそれに対して行いたいであろう。その場合には、端末のカーネルが認証サーバからロードできるように設定し(確認する事)、コンパイルした結果の 9pc を認証サーバの /386/9pc
にコピーするだけでよい。
この場合、バグがあったからと言って何か深刻な被害が発生する訳ではない。
ファイルシステムは分離されているから安全である。そして CPU サーバ(あるいは認証サーバ)から何時でも/386/9pc
を元に戻す事ができる。
単体システム
単体システムでの実験は分散システムでの実験に比べて遥かに危険である。幸い Plan9 は MS-DOS からブートし、MS-DOS のファイルシステムにカールを置くことができる。つまりバックアップ用のカーネルを Plan9 のファイルシステムにではなく、MS-DOS に置けるのある。いざと言う時にはこのカーネルからシステムを立ち上げればよい。
カーネルを3ケ所 ( FD, DOS の C ドライブ、9fat) に分散しておくには plan9.ini で
bootfile=fd0!dos!9pcdisk.gz bootfile=sdC0!9fat!9pcdisk bootfile=sdC0!dos!plan9/9pcdiskと書いておけばよい。
- 9fat からシステムを立ちあげるようにする(多分そのように設定しているだろう)
- 旧い
/386/9pcdisk
を/n/c:/plan9/9pcdisk
にコピーする。
9pcdisk
をコンパイルする。
- 新しい
9pcdisk
を 9fat にコピーする。
- システムをリブートする。
新しいカーネルに満足であれば
9pcdisk
を /386/9pcdisk
と /9fat/9pcdisk) にコピーしておく。
警告
ファイルシステムに関わるパッチ宛てはどれだけ強調しても強調しすぎる事が無いほど危険である。ディスクごと潰す覚悟が必要である。従って潰れてもよいディスクを相手にテストを繰り返すしかない。筆者もディスクを潰した経験がある。