NILFS

NTT研究所が,Linux用のファイルシステムを開発し,オープンソースで公開したらしい.

まあ,真面目な方の詳しい話は,スラッシュドットとか,

http://slashdot.jp/article.pl?sid=05/09/26/1451225&topic=29

NTTの公式発表でも見てくれい.

http://www.ntt.co.jp/news/news05/0509/050926.html
http://www.nilfs.org/

NTTというだけで,眉につばを付ける人も多いかもしれない(笑)が,これだけは期待してよいと思う.というのは,実は,これを開発したのは,私の知り合いで,非常に尊敬するハッカー(役職は主任研究員なのだが)の天海良治氏だからである(だから,知っていても,公式発表するまで書けないとこがつらい).その下に,私が一時期信頼して一緒に仕事をしていた佐藤孝治氏もいて,彼らが直接コードを書いているのだ(←NTTの実体を知っている人は驚愕するかもしれないっ!(笑)).

開発期間は一年ほどで,まだまだ未完成だけど,期待してもらってかまわない.二人とも基礎研究者としては今一歩だったかもしれないが(←こんなこと書いていいのかっ!),ハッカーとしては素晴らしく,書くコードは明らかに非凡だ.特に天海氏は,大学時代にUnixを移植して,NTTでLisp専用マシンTao/Elis(あの現東大の竹内郁雄教授のチームの業績だ)開発していたという経歴を持つのだ.また,JUNET時代を覚えている人も,彼の活躍をきっと覚えているに違いない.

http://www.nue.org/

佐藤氏には,Solaris 2.4のころに,まだまだバグバグだったカーネルのバグをできるだけ回避してもらったり,まだ未公開だったモニタライブラリをリバースエンジニアリングしてもらって,それを私のプログラムから使えるようにしてもらったことがある.Sun Microsystemsから副社長を呼んで文句を言ったのも,今は良い思い出だ(笑)

なお,天海氏は,プログラマの能力を計測する単位として昔から広く知られている.ただし,普通は1アマガイなんかとんでもなく,0.1アマガイあれば天才プログラマなのだっ.1アマガイありそうなのは,James Goslingか,Andy Hertzfeldなどの偉人にならないと無理かもっ.

あと,付録で,天海氏から直接送られてきたマジメな文章もつけておこう.

Linux Kernel 2.6.13 の kernel module で, mount して読み書き, snapshot 取得, snapshot を read-only file system としてマウントすることが可能です. snapshot 取得は, 明示的な指示は不要です. 通常のファイル書き出しで区切りがついたところ (fsync や sync デーモンによる flush) で log に checkpoint を書き出しますが, その check point すべてが mount の対象とできます.

逆に, どの snapshot が望むものなのかを探す技術が必要です. checkpoint には 1block (現在 4Kbyte) のスペースがあるのですが, ほんの数10バイトしか使っていません. 残りに, 例えば desktop の画面キャプチャの縮小をいれておくとか, そのときのニュースの headline をいれておく, など人間向きの過去探索の鍵情報をいれても面白いかなと考えています.

最大の問題は, まだクリーナ (GC) が未実装でディスクを使いきるとそこでおしまいになってしまうことです. snapshot を維持した効率的 GC はなかなか難しく, 公開には間に合いませんでした.

もし興味をもたれましたら, http://www.nilfs.org/ を尋ねてみてください.TODO list が非常に長く, 挑戦的な課題もたくさんあります. NILFS はこれからオープンソースソフトウェアとして, 育てていきたいと考えています. コメントなど頂けましたら幸いです. nilfs@osrg.net で NILFS チームに同報されます. メーリングリストも近々に立ち上げる予定です.

企業の中に潜んでいた,優秀なシニアハッカーの活躍という点では,よしおかさんが好きそうな話題かもなあ.

追記:
NTTは,今キャリアグレードLinux系の分野で有名だが,それと部署は同じでも,主流部署 vs.プログラミング能力を買われた異端のハッカー集団ということで,独立に考えてもらってかまわないと思う.

ちなみに,天海氏は,同じLispハッカーとしてRichard Stallmanと交流があったことから,昔共立出版から出ていた「GNU Emacsマニュアル」の翻訳者だったことは有名な話である.