ミラクル・リナックスのプロフェッショナル・サービス部長であると同時に,日本Sambaユーザー会の初代代表幹事や日本Webminユーザーズグループ 副代表幹事を務めるなど,オープンソース・ソフトウエアの国際化やコミュニティでの活動でも知られる小田切耕司氏。同氏にオープンソース・ソフトウエア技術者となった経緯を聞いた。技術者としての原点は,汎用機での開発にあったという。(聞き手はIT Pro高橋信頼)

――もともとUNIX系の技術者だったのですか。

小田切耕司氏
 もともとは,三菱電機で汎用機のミドルウエアの開発をやっていました。IBMのCICS互換のトランザクション処理モニター(TPモニター)や,VSAMファイル管理システムなどです。そのころは,一つのメーカーがハードウエアからOS,ミドルウエアまで全部作る時代でした。コードを書くのも,ドキュメントを作るのも全部自分たちでやっていました。

 苦労はありましたが,完成して,製品として形になり外に出て行き,お客さんからの反響があって,というのは何ものにも代えがたく嬉しい。ものを作る喜び,というのを知りました。オープンソース・ソフトウエアの開発の原動力もそうですよね。ユーザーからのフィードバックや賞賛だと思います。

 反響といっても,怒られたこともあります。汎用機といえども,落ちるときは落ちます。そして汎用機ですから,片時も止められないような業務が動いていることが多い。お客さんのところへ飛んでいって,IPL(再起動)をかけて動いたとしても,いつまた同じ現象が再発するかも知れませんから,翌日くらいには原因の調査報告書を顧客に提出し,次の週くらいにはパッチを作成しテストを終えて納めなければならない。土日や,夜を徹して作業しなければならないこともありました。

――どうやってダウンの原因を突き止めるのですか。

 落ちたとき,メモリー上にあったデータのダンプが保存されるので,それを読んで調べます。プリント・アウトして打ち出すのですが,ダンボール箱いっぱいになります。

 そこで,ダンプとアセンブラのリストを見比べながら,メモリー上のここの変数が破壊されてありえない数字になっている,この変数を触っているプログラムはどこだ,ここで変な処理をしている,と追いかけていきます。

 でもメイン・メモリーが16Mバイトしかないので,まだ助かりました。そのころ汎用機のメモリーは1Mバイト100万円でしたから(笑)。つい15年ほど前のことなんですけどね。

――汎用機の経験はLinuxに生きていますか。

 信頼性は重視しています。テストは綿密にやっていますし,カーネル・ダンプ機能(LKCD)を入れたのはMIRACLE LINUXが最初だったと思います。

 障害原因の追求はやはり重要です。ある通信事業者さんのIP電話システムで,電話番号とIPアドレスの対応をマッピングするテーブルをOracleとMIRACLE LINUXで構築しているのですが,このシステムがクラッシュしたことがありました。ダンプを調べると,Oracleで4Gバイト以上の大容量メモリー(VLM)を使用すると,高負荷時にカーネルのバグに引っかかってしまい,クラッシュしてしまうことがわかった。カーネルにパッチを当てて修正しました。

 またある玩具のインターネット通販サイトでは,NFSのロック競合でカーネル・パニックが発生して停止していました。複数のサーバーからNFSサーバーをマウントしていたのですが,NFSサーバーのカーネル内で,高負荷の際にタイミングによってはロックを取得せずにアクセスしてしまい,矛盾が発生するというカーネルのバグでした。

 もっとも,カーネル・ダンプが活躍するのは,ミラクル・リナックスのユーザー全体で年に数件ほど。Linuxの信頼性は高いと思います。

――Sambaとの出会いは。

 三菱電機が汎用機から撤退して,私も製品開発から離れ,外国製TPモニターのサポートを担当するようになりました。UNIX版とWindows版のソフトでデータ交換が必要になったのですが,Windows3.1にはTCP/IPが標準で備わっておらず,サードパーティ製のNFSソフトを買うと1本15万円という状況でした。

 Windows95にバージョンアップし,NFSを買い直さなければならなくなったのですが,1本15万円です。Sambaというオープンソース・ソフトウエアなら無料でデータを共有できると聞き,使い始めました。96年くらいだったでしょうか。ちょうど同僚からの誘いがあったので本を書き,これが日本で最初のSambaの解説書になりました。

 それをきっかけにNECの太田俊哉さんや佐藤文優さんとコミュニティで情報交換をするようになりました。そして,98年に,Web管理ツールを日本語化した「Samba日本語版」を作り,その他のさまざまな日本語の問題を解決するために「日本Sambaユーザー会」を設立しました。

 三菱電機が開発をやめていって,他社の製品を買ってきて売る,というビジネスが主流になっていった。「ものづくり」が減っていった。でもオープンソース・コミュニティには「ものづくり」があった。そして我々が「ものづくり」に参加できる。それが魅力でした。

 ミラクル・リナックスに移ったのも,「ものづくり」がしたかったからです。

――Samba 3.0の国際化を行っていますが,苦労していることは。

 本家Samba Teamとのネゴシエーションです。英語圏では,やはり問題を正しく認識できないという面がある。こちらで国際化に関する問題を発見して,パッチを作るわけですが,それをSamba本体に取り込んでもらわなければならない。メールで説得したり,電話でテレ・カンファレンスをしたりして交渉しました。英語でのコミュニケーションはロンドン大学出身の山田史郎氏にずいぶん頑張ってもらいました。

 また,このプロジェクトには日本Sambaユーザー会で長い付き合いの佐藤文優氏,glibcのパッチを作成した森山将之氏,Samba 2.2日本語版の取りまとめを行った武田保真氏など国内で指折りの実力者が参加してくれました。このメンバーだから達成できたのだと思います。

 こうした成果のおかげで,Samba Teamからも「国際化の問題はミラクルに聞くように」と言ってくれるようになりました。

――オープンソース・ソフトウエアの開発者になるためのアドバイスは。

 たくさんコードを書くことが大事だと思います。私も汎用機の開発をしていたころ,プロジェクトごとに1万行,2万行のコードを自分で書きました。インターネットに多くのソフトウエアがあるので,ソースを読むことに目を奪われがちですが,若いうちはコードを書くべきです。

 そしていっぱいバグを作る(笑)。たくさんバグを作れば,おのずとデバッグする力がついてきます。