Inferno on Plan9

Infernoの話が出たので,Plan9上でInfernoをインストールするときのメモ.Plan9QEMU/Linux上で動かしている(インストール方法はこちら).

Infernoは,Plan9の兄弟のようなOSだけど,これまた一風変わったOSである.ネイティブマシン上で動くだけでなく,UNIXWindowsなどのホストOS上でも動くのだ.Infernoのアプリケーションは,Limboと呼ばれる言語で記述され,コンパイルしたバイトコードをDisと呼ばれる仮想マシン上で実行する.Plan9ユーザにとっては,charonというWebブラウザが動くのもうれしい.

まずは,必要なファイルをVitanuovaのページからダウンロードし,展開する.

$ mkdir inferno.inst
$ cd inferno.inst
$ hget http://www.vitanuova.com/dist/4e/20061220/inferno.tgz inferno.tgz
$ hget http://www.vitanuova.com/dist/4e/20061220/src.tgz src.tgz
$ hget http://www.vitanuova.com/dist/4e/20061220/utis.tgz utils.tgz
$ hget http://www.vitanuova.com/dist/4e/20061220/Plan9.tgz Plan9.tgz
$ for(a in inferno src utils Plan9){gunzip <$a.tgz | tar xv}

で,Infernoのルートディレクトリを作って,インストールスクリプトを実行する.スクリプトが終了したら,Plan9/386/binを/binにbindしておく.

$ mkdir /usr/oraccha/inferno
$ rc install/Plan9.rc /usr/oraccha/inferno
$ mv /usr/oraccha/inferno/Plan9/386/bin/emu.new /usr/oraccha/inferno/Plan9/386/emu
$ bind -a /usr/oraccha/inferno/Plan9/386/bin /bin

emuでInfernoが起動し,シェルのコマンドプロンプトが表示されるので,ウィンドウマネージャ(wm/wm)を実行する.

$ emu -r /usr/oraccha/inferno
; wm/wm

Limboでどのようにカーネルが記述されているのか,気になる.カーネル(またはemu)自体はC言語で記述されている.

Inferno Programming with Limbo

Inferno Programming with Limbo