技術、コミュニケーション、イノベーション
いま改めて問う、Linuxコミュニティの魅力
2010/09/24
9月27日から29日にかけて、「LinuxCon Japan」カンファレンスが開催される。2009年10月に開催された、リーナス・トーバルス氏も参加しての「Kernel Summit」および「Japan Linux Symposium」の成功を受けて行われるLinux開発者向けのカンファレンスだ。IBMのDan Frye氏によるキーノートをはじめ、3日間にわたってさまざまな角度からLinuxに関するセッションが行われる。
これを機に、改めてLinux開発の魅力とは何か、関係者が一堂に会して議論する意味とは何なのかを、それぞれの切り口でLinuxの開発に携わってきた国内の技術者たちに聞いた。
「交流」「不愉快な時間が減る」――開発の魅力
そもそも、Linuxカーネルおよびその周辺の開発に携わることの魅力とはいったい何だろうか。
日立製作所 システム開発研究所 Linuxテクノロジ研究部 研究員の河合英宏氏は、「カーネルコミュニティは、世界の一流の技術と技術者に触れられる場所。研究者としてはやりがいがある」と述べた。
同社システム開発研究所 第二部 Linuxテクノロジ研究ユニット 研究員で、Kprobesのメンテナを務める平松雅巳氏は、「1社に縛られることなく、まったく異なる企業の文化を持っている人、あるいはフリーの一流の技術者たちと交流して、新しい考えに気付くことができる」のも魅力だという。
VA Linux Systems Japan エンタープライズOS事業ユニット Linuxカーネルプロフェッショナル 山幡為佐久氏も同じ考えのようだ。過去、Xen関連の開発をコミュニティの中で進めてきた経験を踏まえ、「直接取り引きのないような会社のエンジニアと協力して何かを進めていくのは楽しい。世界中に散らばった技術者とお互いにパッチを見ながら開発し、ときには『サンキュー』と言われてうれしかったりもする」という。
一方、いちエンジニアとして「ストレスが溜まる作業が減ってうれしい」というのは、富士通の小崎氏だ。「開発をしていて楽しいのはものを作っているときで、楽しくないのは原因の分からないバグを延々と追いかけているとき。ワールドワイドのトップクラスの技術者と一緒に開発をすると勉強になることも多いし、レビューを通してあっという間にバグが直っていくので、不愉快なことにかかわる時間がものすごく減る」という。
そして何より、カーネルのソースコード中に自分の仕事が残る。「Linux解説書の中に、自分が作った構造体が載っていたときもうれしかった」(小崎氏)。
企業として参加する場合のメリット
Linuxカーネルの開発は、フリーの開発者だけでなく、企業に属しているエンジニアが多数かかわって進められている。いわば企業が、技術者を通して間接的に開発を支援しているわけだが、では企業組織としてLinux開発に携わることのメリットとはいったい何だろうか。
ソニー 技術開発本部 共通要素技術部門 システムソフトウェア開発部 テクニカルマーケティングマネジャーで、2003年6月のConsumer Electronics Linux Forum(CE Linux Forum)の立ち上げにもかかわった上田理氏は、ソニーがLinux採用に踏み切ることとなった当時を振り返って次のように説明してくれた。
「当時、デジタルやネットワークといった新しい可能性が広がる中、製品に対する顧客の期待はどんどん高まっていました。そんな期待に応えるためには、しっかりした土台と骨組みを持ったソフトウェアを作っていかなければだめだなと認識していました。そして、それにはしっかりしたOSがどうしても必要だったのです」(上田氏)。
当時、ソニーには3つの選択肢があった。1つは独自にOSを開発する方法。2つ目は第三者からOSを購入する方法。そしてもう1つがオープンソース――Linuxの活用だ。
1つ目の方法は自由度が高いものの、デバイスドライバの開発に始まり、何から何まで自社で対応しなければならず、あまりに負担が重かった。2つ目の方法のようにOSを購入すれば、自社開発の負担は減る。だが、何かトラブルが生じたとき、OSのコアの部分がブラックボックスで分かりません、というわけにはいかない。こう考えていくと半ば必然的に「もうオープンソースでいこう、信じていこうということになった」(上田氏)。しかもそのコミュニティにはその時代の最高水準のエンジニアが集まっているし、最先端のネットワークデバイスへの対応もできている。情報家電にとっての「縁の下の力持ち」の役割を担ってくれているのがLinuxなのだという。
家電製品や組み込み機器の場合、高速起動やリアルタイム性など、PC向けとはまた異なる要件が必須となる。そうした技術的な面でいろいろと課題はあったが、「コミュニティと一緒になってやってみようと決断した。それが幸い、いまの形につながっている」(上田氏)。
上田氏はさらに、「ソニーがオープンソースコミュニティという大きな世界の中で自分のポジションを作り、その位置付けを確認しながら、お互いさまという形で開発していくというやり方は行けるんじゃないかと、いま思い返すとかなり戦略的な意思決定だった」と振り返った。
Linuxは一方で、制御系や金融機関のシステムといった、企業のミッションクリティカルな分野にも広がっていった。
日立製作所 システム開発研究所 第二部 Linuxテクノロジ研究ユニット 主任研究員の大島訓氏によると、同社が携わったシステムでは、まず2002年ころから制御系で、その後2004年ごろから金融系でもLinuxを使い始めたという。
「当時は、まだまだAIX、HP-UX、Solarisといった商用UNIXが強い時代でした。しかし、PCの性能が十分に向上してきて、かつPCの方がコストパフォーマンスが優れており、将来性があるのは明らかでした。そして、そのPCの上で利用可能な現実的な選択肢はLinuxしかなかったんです」(大島氏)。
しかもこうしたシステムには、非常に高い信頼性が求められる。従って「ソースコードを見られないシステムなんていうのは候補の対象外。ソースコードが公開されていて、いざとなったら自分たちで直せるLinuxしか選択肢がなかった」(大島氏)という。
最初は手探りだったコミュニティへの参加
ではこのカーネルの開発には、どうやって加わっていけばいいのか。基本的には、Linux Kernel Mailing Listに参加し、パッチを投稿し、指摘やコメントを踏まえながら修正したものがメインラインへとマージされる、という流れになる。
リーナス・トーバルスという希有なリーダーに恵まれたこともあって、いまでは「Linuxを1バージョン開発するのに、1000人から1500人の人がパッチを出すんですよ。それでいて80日から90日で新しいバージョンが出てくる。それだけたくさんの人が参加して、すごい勢いで開発しているわけです」(NEC ITソフトウェアサポート本部 OSS推進センター長 柴田次一氏)。
そんな流れの中に飛び込んでいくというのは、誰に聞いても最初は「手探り」だったそうだ。
日立製作所の河合氏は、初めて投稿したパッチをめぐる議論のことを、ちょっとほろ苦い思いで振り返ってくれた。
「DBなどが巨大な共有メモリを使っているときに障害が起きると、その巨大な共有メモリが持っているプロセスをいっせいに殺しに行って、コアダンプを出します。共有メモリごとファイルに書き出すので大きな負荷がかかってしまい、それが別の障害を引き起こすという問題があったんです。そこで、メモリ領域の種類に応じて、コアダンプするメモリ領域をフィルタリングできるようにするっていう機能を開発し、投稿したんです」(河合氏)。
アンドリュー・モートン氏をはじめいくつかの指摘を受けて修正していったパッチに対し、さらに指摘があった。だが、「その指摘の方法だと、自分がやろうとした機能の一部を達成できませんでした。それで譲らない議論になってしまって、半年ほど膠着してしまったんです……いまになって思うと、もっとうまく、お互い歩み寄る方法があったんじゃないかなと思います」(河合氏)。
ソニーの上田氏も強烈な体験をした。同氏は、家電などの組み込み機器向けLinuxの発展を目的にCE Linux Forumを立ち上げたが、「初めは何をやったらいいか分からなかったんです。そこでいきなり、CE用のLinuxの標準仕様書を作っちゃったんです」(上田氏)。
従来型の開発であれば、まず最初に仕様書があって、それにマイルストーンがあって、それを参照しながら進ちょく管理を行う……というやり方が当たり前だ。だがLinuxコミュニティの開発の進め方は違った。
「当たり前のように仕様書を作ったところ、Linuxのコミュニティから激しいバッシングを受けたんです。あるキーパーソンから来たメールは、とても厳しいものでした。『仕様書? 仕様書はいいんだけれど、それを出せば誰かがただでそのソフトウェアを書いてくれるとでも思っているのかい? それは大きな間違いだ。君たちは仕様書を出すくらいだから、実際に何かをやっているんだろう。そのやっていることをなぜコミュニティに出さないんだ? それがまずあるべきことじゃないのか』と」(上田氏)。
こうした厳しい反応を受け、上田氏らは相当議論を重ねたそうだ。その結果は「(まず最初に仕様書があるという開発手法に比べると)青天のへきれきのようなやり方だけれど、ここはコミュニティの流儀に従ってやってみよう」というものだった。
「よくしたい」という心はみな同じ
「やってみれば、基本的に悪い人はいない。Linuxっていうのをみんなにとって、つまりオレにとってもあんたにとっても、より良い技術基盤にしていこうじゃないかという心は同じ」(上田氏)。厳しいコメントが返ってくるのもそれゆえだという。
NECの柴田氏も、Linuxコミュニティの「来るもの拒まず、大歓迎」の姿勢に触れた経験を語ってくれた。同氏は、Linuxカーネルの開発方法について説明する「HOWTO」というドキュメントの翻訳を行っており、その日本語訳はLinuxカーネルのソースコードに含まれている。
「『翻訳してみたよ』って言ったら、『じゃ、カーネルに入れたらいいじゃない』と言われたんです。『でもこれ日本語だよ、ほかの言語の人には読めないから入れても意味がないんじゃないの?』と言ったら、そしたら『Why not?』と。ただそれだけで『いいから俺にパッチをよこせ』と」(柴田氏)
こうした経験を踏まえて、Linuxのコミュニティには「一歩前に踏み出すのを後押ししてくれるネイチャーがあると思うんです。Linuxコミュニティは、みんなボランティアで、全員がお金をもらってやっているわけではありません。無償のコントリビューションで成り立っているものですから、そもそも、入って来る人を拒むような性格のものじゃないんです」と柴田氏は述べた。
ただ、だからといって、事前に何も下調べもせず適当に入っていくのは禁物だとも忠告する。どんな分野にも言えることだが、「例えばメーリングリストを読んでみたり、イベントに参加してどうすればいいかを少しずつ学んでいくのがいいんじゃないでしょうか。そういう意味で、国内だけでなく、海外からも開発者が来て交流できるLinuxCon Japanのようなイベントが日本で開催されることは、敷居を下げるチャンスだと思います」(柴田氏)。
開発時のもう1つのポイントは「なぜその機能が必要か、なぜそのパッチが必要か」を説明することだという。
「ただ『パッチがあるから』ではなく、『なんでそれが必要なんだ』というモチベーションや必要性をちゃんと説得できないと、コミュニティから『いいね』とは言ってもらえない部分がありますね。『俺が欲しいから入れるんだ』じゃなくて、『こういう使い方、用途があるから必要性があるんだ』ということをコミュニティに理解してもらう必要があります」(VA Linux Systems Japanの山幡氏)。
富士通の小崎氏も「『なぜあなたは変更を加えたいのか』が明確じゃないパッチは、やっぱり入らないです。もしバグを見つけたのであれば、『こういうマシンでこういう操作をしたらこういう現象が起きます』という説明を書くべきだし、何か新機能を入れたいんだったら『こういうことができないと不便でしょう』という理由がないと、こっちが困ってしまう」という。
ちなみに「英語の壁」も気になるところだが、小崎氏は「こういう言い方がいいかどうか分からないけれど、日本人はかえって得をしている部分もあります。英語のネイティブではないことが文面からも明らかですから、けっこう気を遣ってもらっているんだろうな、と感じることもありますよ」と笑う。
貢献のやり方はいろいろ
もう1つ印象に残るのは、ソースコードを書くことだけが「貢献」ではないということだ。
NECの柴田氏は、HOWTOの日本語訳がカーネルにマージされた経験を踏まえ、「いろんな形でコミュニティに参加できるんです」と述べた。
「ドキュメントの翻訳っていうのは、リアルな開発ではありませんよね。でも、いろんな形のコントリビューションがあるというのが、オープンなコミュニティの良さだと思います。イベントの手伝いをするのもそうですし、『使ってみてうまくいかないんだけれど、どうして?』って聞くことも、そこから何かが生まれることにつながる。コミュニティとの関わりの中から新たなコントリビューションが生まれてくることもあると思います」(柴田氏)。
実際、HOWTOの日本語訳がひとたびソースコードに含まれるようになると、「ほかの人も参加してほかのドキュメントを翻訳してくれて、さらに何種類かのドキュメントが日本語になりました。さらに、中国語版や韓国語版も登場しています。こんなふうに、ワールドワイドのコミュニティの中から、自分が思っていなかった広がりが出てくる、改めてすごいなと思いました」(柴田氏)。
投稿されたコードに対するレビューも重要だ。「レビュアーは常に大歓迎されていますよ。その視点が合っていても間違っていても、レビューのコメントを付けることは非常に歓迎されています」(小崎氏)。
「蟻から象まで」、さらなる参加を
Linuxはいまや、携帯電話からクラウドコンピューティングに至るまで、ありとあらゆるシステムに利用されている。「Linuxはいろいろなビジネスの基盤になっている、当然使えるものだと認識されている」(NECの柴田氏)。その幅広さゆえに、ある分野向けの機能がまったく別のシーンで役立つことも珍しくはない。
上田氏は、先日NHKで放送された「ITホワイトボックス」という番組に登場した、リーナス・トーバルス氏のコメントを引き合いに出した。トーバルス氏は番組の中で、初めは携帯電話向けに開発された省電力機能が、ブレードサーバに携わる技術者の目を引き、省エネルギー機能に活用されたケースを紹介したそうだ。
「組み込み系というとっても小さい蟻んこのようなLinuxのユーザーと、ブレードサーバのような巨大なクジラのような人たちが、お互いに一緒のテーブルでディスカッションできる。Linuxというコミュニティってすごいところだな、と体験しました。これはリーナスにとっても印象的だったみたいです」(上田氏)。
今後も、Linuxが適用される領域は増えることはあれど、減っていくことはないだろう。それだけに、「やらなければいけない作業は、まだどんどん出てくると思います」(富士通の小崎氏)。そのためには、いろいろな分野の人にぜひ、議論に参加してほしいという。
例えば仮想化環境においては、古典的なI/OやCPUのタイムシェアリングをどう設定するかが、仮想マシンの死活を制する問題になってくる。「ゲストOSがいっぱい立ち上がっているとして、それらをそれぞれ違うユーザーが使っている場合、自分が使えるリソースが一時的にゼロになってしまうと困る。でもすべてのゲストOSを自分が利用しているならば、一瞬アンバランスが生じても性能が出る方がいい。そういった部分でどのようにコンセンサスを取るかをはじめ、考えなくてはいけないことはたくさんあるんです」(小崎氏)。いろんな人が入ってくればくるほど、前向きな結論が出るはず、という。
「僕みたいにメモリ管理をやっていると、こう修正すると『組み込み屋さんが死ぬ』、それではと別の修正をすると今度は『スーパーコンピュータが動きません』という風に、修正がとても難しくなる側面はあるんですけれどね(笑)」(小崎氏)。
日本人も多数登壇、LinuxCon Japan
NECの柴田氏によると、2004年から2005年ごろにかけての時期、Linux Foundationの前身に当たるOSDN Japanでは「どうすればうまくコミュニティとかかわっていけるか」「日本からもっと多くのパッチを提供するには何が必要か」といった議論を行っていたそうだ。
そんな議論の中から、「日本の技術者の持つ改良の『知』や技術を、コミュニティの中にもっと出していけばみんなのためになるだろう、という考え方が産まれ、そこで年に2〜3回のペースでシンポジウムを開催してきました。Linuxコミュニティの著名な開発者に来日してもらって直接話を聞いたり、自分たちの持っている課題をぶつけたり……その結果、日本からもコミュニティの中で自分の意思を伝え、さらにはリーダー的な役割を果たす人も出てきました。その成果が昨年の、日本で初めてのKernel Summitにつながったんではないかと思います」(柴田氏)。
「行ってみると分かると思うんですけれど、その熱気や真剣さ、そして技術の高さを生で感じることができます。本当に真剣で、脳みそを振り絞っているんですよ、みんな。『こうなったらそうなって……』という真剣な技術の議論に参加すれば、触発されることがたくさん出てくるんじゃないでしょうか」(柴田氏)。
9月27日からのLinuxCon Japanでは、日本人開発者が主導する発表もいくつか用意されている。
1つは、リーナス・トーバルス氏があまり好まなかったという「トレーサ」関連だ。日立製作所の平松氏は、「今回のLinuxCon Japanでは、トレーサに関するミニサミットを開催します。SystemTapとFTrace、Perfという技術があるんですが、いまはそれらが三つどもえ状態という感じです。それぞれに長所があるんですが、ユーザーの視点からすると、3つも別のツールを使い回すのは非常に使いにくい。そこでミニサミットでは、『この機能は本当にユーザーが必要としているんだろうか』という視点でどうにかして統合できないかを話し合おうと思っています」と述べた。
Linuxコミュニティの中では、技術力もさることながら、コミュニケーション能力も必須だ。自分が開発している機能はなぜ必要なのかを説明し、周囲に説得する能力が重要になる。そして、その説得の場としても、開発者が顔と顔を付き合わせての議論の場は有効だという。VA Linux Systems Japanの山幡氏はこの機会に、QEMUのPCI Expressサポートがなぜ必要なのかについてプレゼンテーションする予定だ。
ソニーの上田氏も、「組み込み系、それは銀河系辺縁部にあるのか」というタイトルで発表を行う予定だ。「組み込み系組み込み系というけれど、これは決してLinuxの中で異端ではなく、Linuxのもう1つの中核に位置するもの。決して辺縁部にあって変なことをやっている人たちではなく、いくらでもコラボレーションできるはずというセッションをやろうと思っています」(上田氏)。
上田氏はさらに、エンジニアが知識を深めるだけでなく、幅広い人がイノベーション戦略について考える機会にしてほしいと述べた。
「去年のLinux Symposiumにしても今年のLinuxConにしても、エンジニアのためのカンファレンスと思う方が多いかもしれません。けれど、これから先の技術戦略を考えるうえで大きなヒントになることがいっぱいあるんです」(上田氏)。
オープンな開発スタイルを通じて、日本に限らない、より広い範囲のコミュニケーションがなされ、いままでだったら生まれなかったようなイノベーションが出てくるだろうと上田氏は述べる。その生きた証拠がLinuxだという。
「ある特定の集団に閉じない、広い範囲のコミュニケーションによって、新しいものが生まれてくることに期待しています。また、そういう動きに参加できることが、次の世代のエンジニアのモチベーションにつながるでしょう。そうしたエンジニアが集まってお互いに刺激し合いながら、新しいものを作っていく。そういう集団が新しいイノベーションを作っていく、そして、そういうスタイルが新しい社会を作っていく」(上田氏)。
そういったイノベーションのあり方を考える上でヒントになると期待しているのが、IBMのDan Frye氏によるキーノートだという。「IBMがこの10年間、Linuxをコアにして、どういう戦略を考え、何を実行し、どんな失敗をして、それをどう修正したのかを、こと細かに話してくれる予定です。これは、企業における技術戦略はどうあるべきか、またその戦略をどう実行するかを考えるには十分すぎる内容でしょう。21世紀型の技術戦略とはどうあるべきかと考えている人にもぜひ聞いていただきたい」(上田氏)。
「Linuxを普段使っている人だけではなく、これから先のイノベーションのありかたを考えている人すべてにとって、何らかのきっかけになるのは間違いないだろうと思います」(同氏)。
関連リンク
情報をお寄せください:
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
キャリアアップ
- - PR -
- - PR -
転職/派遣情報を探す
「ITmedia マーケティング」新着記事
NIKE vs. HOKA ランニングシューズ市場での熱い戦いの行方は?(無料eBook)
市場リーダーのナイキやアディダスの業績が振るわない一方で、「HOKA」など新興ブランド...
「ECプラットフォーム」売れ筋TOP10(2024年10月)
今週は、ECプラットフォーム製品(ECサイト構築ツール)の国内売れ筋TOP10を紹介します。
「同じCMばっかり」を逆手に ペプシコが実践した超斬新なクリエイティブ発想の意図は?
「Advertising Week New York」では、2024年に米国で話題を呼んだスナック菓子「Lay's」...