FUSEでUNIX V6ファイルシステムをマウント
Lions本合宿のネタに、ユーザ空間でファイルシステムを作ることが出来るMacFUSEを使って、UNIX V6ファイルシステムをマウントできないかと考えていた。@7shiさんや@superhogeさんとは別アプローチとして。
さっそくMacFUSEのソースコードをダウンロードし、まずはhellofsかなと試す。でも、
$ make hello $ mkdir /Volumes/hello $ ./hello /Volumes/hello $ ls /Volumes/hello ls: /Volumes/hello: Input/output error
とか言われて動かないし。。。で、他のサンプルはないものかとディレクトリを眺めていると、AncientFSなるものを見つけてしまった。まさに自分がやろうと思っていたことだった。しかも、V6だけではなく、V1のDECtapeから2.11 BSDのファイルシステムまでいろんなフォーマットに対応している。かなりマニアックだなぁ。
使い方は簡単。simhなどで使っているイメージファイルをv6rootとすると。おぉ、ちゃんと読めてる。
$ mkdir /Volumes/v6root $ ancientfs --type v6 --dmg v6root /Volumes/v6root $ ls -als /Volumes/v6root total 241 1 drwxrwxr-x 9 3 sys 256 Jul 19 1975 . 0 drwxrwxrwt@ 4 root admin 170 Sep 23 07:18 .. 3 drwxrwxr-x 2 3 sys 1104 Oct 11 1975 bin 4 drwxrwxr-x 2 3 sys 1824 Oct 11 1975 dev 1 drwxrwxr-x 2 3 sys 496 Oct 11 1975 etc 57 -rwxrwxrwx 1 root sys 29074 Oct 11 1975 hpunix 1 drwxrwxr-x 2 3 sys 464 May 14 1975 lib 1 drwxrwxr-x 2 3 sys 32 May 14 1975 mnt 57 -rwxrwxrwx 1 root sys 28836 Oct 11 1975 rkunix 57 -rwxrwxrwx 1 root sys 29020 Oct 11 1975 rpunix 1 drwxrwxrwx 2 3 sys 368 Oct 11 1975 tmp 57 -rw-rw-rw- 1 root sys 28836 Oct 11 1975 unix 1 drwxrwxr-x 17 3 sys 272 Oct 11 1975 usr
このファイルシステムはread onlyなので、書き込みに対応するという方向性はあるかな。