ぼくは、自分の歴史を語る上で、切っても切り離せないものがあります。
それは、
「ファイルシステム」
です。
「ファイルシステム?」「何それ?」
って思われるかもしれません。これ、箱庭と同じで地味なんです。
リーマンショックってのがありました。
2009年まで、ぼくはずっと、
ファイルシステムだけを作ってきました。
受託開発でしたが、
Linuxカーネル技術、
デーモンプロセス管理、
メタデータ管理、
トランザクション、
完璧なフェイルオーバー、
リカバリ制御。
そういうものを含めて、すべての仕様を把握し、
設計・実装からテストまでを一通り任されていました。
そう。30代、
脂が乗ったエンジニアでした。
(笑。あー、バカバカしい。)
それが、あのリーマンショックで、
ぼくの人生は一転しました。
はい。
仕事がなくなりました。
ぼくは、
ファイルシステムしか作れませんでした。
そんなニッチな技術、転用のしようがない…。
仕事あぶれました。
役に立たなくなった「ぼく」は、東京に出稼ぎに行きました。
ぼくが使えるプログラミング言語は、
「C言語のみ」
ただ、それだけ。
市場では、
「ファイルシステムできます!」
なんて、まったく意味をなしません。
「どんなプログラミング言語が使えるの?」
「Linuxは使える?」
そのくらいは聞かれましたけど…
「カーネルコード、読める?」
なんて質問は、皆無でしたね。
だから、たまたま東京で、
データベースの基盤技術に関係する研究開発のお仕事で、
「C言語が使える人」
という理由で、その仕事をさせていただきました。
その当時は、あー、
「ぼくはホント無力だなぁ」、
と思いました。
(いわゆる、天狗の鼻が折れる、ってやつです)
でもね。
それは、本当に良い体験でした。
そして、
ぼくがこれまでやってきた技術を、
何かに使えないかな、
と模索し始めた時期でもありました。
ファイルシステムの連載記事を書かせていただきました。
当時のぼくは、
正直、なんにもできない状態でした。
ですが、
社内の教育活動として、
かつて一緒にファイルシステムを
開発していたメンバと一緒に、
「永和システムマネジメントのファイルシステムの技術を、ちゃんと残そう」
そんな思いで、
ITmedia(その当時はMonoistでした)の編集担当者に繋いでいただき、
ファイルシステムに対する熱い思いを伝えたところ、
「やりましょう!」
その一言で、連載が始まりました。
というタイトルの連載で、
2010年2月4日から
2011年3月10日まで、
全11回の記事でした。
あの当時は、
ぼくもまだ若くて、仕事が終わったら、
子どもを寝かしつけて、そのあと毎晩、
2時間くらい、ネタの仕込みと記事執筆の日々でした。
ああ、本当に懐かしい時期でした。
ワクワクするってどういうことか。
あのね。
「これ、めっちゃおもろい!」
って思う感覚です。
今なら、そういうのは、Xにポストするのかもしれません。
でも、あの当時のぼくは、ちゃんと作って、
「ほら、こんなのできるんだよ!
めっちゃおもろくない?!」
ってやって、それを、
世の中のエンジニアの方々にオープンで読んでもらって、反応を見る。
その一連の流れが、本当にワクワクしました。
地方の福井という地で。日本全国の人に読んでもらう。
そんなことを、毎月ワクワクしながら、ずっとやっていました。
今は箱庭やってます。
ファイルシステムの技術そのものは、実は、汎用性はありません。
でもね。
ファイルシステムのアーキテクチャを分解してみるとどうでしょうか。
そこには、
・ユーザインタフェースの抽象化・汎用性のすごさ
・バーチャルファイルシステムとローカルファイルシステムのレイヤ構造
・バッファキャッシュとメモリキャッシュの関係性
・さらには、プロセスメモリとの関係
・メモリマップドI/Oの妙
・ファイルI/Oとデバイスドライバとのインタフェースの切り方
・リクエストキューの考え方
数え上げたらキリがありません。
基盤技術を作るためのノウハウが、ここに集約されているんです。
本当に、
Linuxカーネルコードには、
ぼくがエンジニアとして学ぶべきこと、
数えきれないほどありました。
そして、ぼくが今作っている箱庭の技術には、
このファイルシステムで学んだ考え方が、実は無意識のうちに
多く流れ込んでいます。
とても自然な形で。
たとえば、PDUという抽象化。
これは、まさにバーチャルファイルシステムと同じ発想です。
箱庭ブリッジやコンダクタ、分散システムにおけるデータの流れや、
プロセス間のコンテキスト切り替えの考え方。
これはもう、カーネルの技術、そのものなんです。
自信なくした時に、思い返せる時代があるのは良い。
・技術的には普遍性あるけど地味なものをやっているとき。(そして、あまり儲からない)
・そんな技術をベースにして、新しいことやっているとき。(やっぱり、儲からない)
そんな時、
人は、
自信をなくす時があります。
でもね。
大事な技術を
ちゃんとやっているんです。
それを、
継承していきたいと
思う時があります。(誰に?笑)
いいんです。
ここで、こうして、
そういうのを書くのが
その一つだと思って、
今日も筆を取りました。
そして、ぼくは、箱庭って技術は、ファイルシステムと同じように、
地味で、バズらない技術だと思っています。
でもね、ある時、
ちょー難しい、分散で色々やり始めた時に初めて見える課題、
それをスクラッチで解決しようとおもって悩んだ時に、
すでに、「箱庭」ってのがあった。
って発見される。
その時のために、やっているんです(いつ来るかわからんけども)。
(あ、でも、たぶん、もうすぐだと思います。)
おしまい。

コメントを残す