Logo address

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版から 9fat が準備されて、ここにカーネルを入れても良い事になった。9fat と言うのは Plan9 が作成した dos ファイルシステムであり、MS-DOS から隔離されている。(その方が安全である)

カーネルを3ケ所 ( FD, DOS の C ドライブ、9fat) に分散しておくには plan9.ini で

	bootfile=fd0!dos!9pcdisk.gz
	bootfile=sdC0!9fat!9pcdisk
	bootfile=sdC0!dos!plan9/9pcdisk
と書いておけばよい。

  1. 9fat からシステムを立ちあげるようにする(多分そのように設定しているだろう)
  2. 旧い /386/9pcdisk/n/c:/plan9/9pcdisk にコピーする。
  3. 9pcdisk をコンパイルする。
  4. 新しい 9pcdisk を 9fat にコピーする。
  5. システムをリブートする。
システムが立ち上がらない場合にはバックアップしておいたカーネルを使用する。

新しいカーネルに満足であれば 9pcdisk/386/9pcdisk/9fat/9pcdisk) にコピーしておく。

警告

ファイルシステムに関わるパッチ宛てはどれだけ強調しても強調しすぎる事が無いほど危険である。ディスクごと潰す覚悟が必要である。従って潰れてもよいディスクを相手にテストを繰り返すしかない。筆者もディスクを潰した経験がある。