by shigemk2

当面は技術的なことしか書かない

リーナス・トーバルズ氏の対談メモ #linuxcon

あの、同時通訳を拾い上げてて、結構トイレが近い状態なので、間違ったこと言ってたらごめんなさい。

Linux: Where Are We Going - Linux Creator Linus Torvalds and Intel's Chief Linux and Open Source Technologist Dirk Hohndel

Linus 10代の娘がいる 1年間にかなりの会議をこなしているので、写真を撮られるのは問題無いっす

Dirk マネージャーでコードは書いていないけど。

L 3ヶ月毎にリリースしてれぅ。かなり頻繁にリリースしてる。emailの量を見てもすごくいいね。開発のペースが早いということを(逆に)心配している。ジェームスが言ったように本当に好調で円滑である。退屈であるのはすばらしい

質問 2038年問題はどうするの?

L 2038年オーバーフローについては、2000年問題のUNIX版とも言える。今のマシンは64ビットなので全然問題ないお。64ビットのオーバーフローなんてないよ。今は心配しなくていい。今のことを心配するべきであって、将来の32ビットを心配する必要があるのかしら。カスタマーからのレビューにもとづいて決めていく。32bitのバイナリも問題なかろう。その時になったらパニックにはなるだろうが、その時はどのくらい問題になるかわからん。

質問 Linuxをデスクトップで使いたい

L Linuxのほうがわたしの娘よりも先である。 Linuxデスクトップについて。あと1年位でバルブインストラクチャーがどのくらい疲労があるのか。 ゲームマシンとしては使われないのではなかろうか。 普通の人はまだそういう目的としては使われない。 Linuxがゲーミングのプラットフォームになるのは可能性であるが、 わたし、コンピュータを使うのは好きだけどゲームはあまりすきじゃない。 コンピュータゲームはやったことあるけど、退屈だし、PCは他の用途で使いたい。

D ユーザーにアプリケーションを届ける。いろんなディストロがある。 L カーネルのひとたちはカーネルのインターフェイスをいつでも信頼できるようにすることである。 細分化したフラグメンテーション。 一部のディストロはユーザースペースを分割してて、それは大きな問題であった。

D とても不快。

質問 Linuxカーネルテストプロジェクトについて、どういうプランなの?

L あまり情報が出てこん。テストをするプロジェクトLPPがあるね。 カーネルのテストの問題は、コードはドライバーで、どのマシンでも同じである。 本当にテストが必要なのは、別のプラットフォームである。テストを書くことそのものが難しい。 現実的なテストコードを書くのは難しい。プラットフォーム上に走らせている。ハード依存ではないテストはLPPではできるけど

D 多くのプラットフォームは陳腐化してる。もうないものもある。コミュニティが解決できるけど、アクセスできないからテストも出来ない。

質問 メンテナーは何年もメンテナーやってて、彼らをどうやってカーネル開発に戻すのか。

L 彼らを戻そうとは思わない。彼らを信用していないからではなく、開発者よりメンテナーのほうが良いと考えているから。パッチを集めて、パッチにコメントしてくれる人のほうが役に立つ。開発する人はいっぱいいるけど、それらをmergeし、メンター的な人のほうがよい。

D スケーラビリティの問題は重要になってる。3700人がリーナスにパッチを送るとリーナスが追いつかなくなる。

L もっと人を増やすのは重要だけど、経験者がもっとメンテナーになれ。メンテナーがGitで新しいレベルのサブシステムをpullするとうれしくなる。人としてちゃんとコードを見守ってくれる人。信頼のネットワークを構築できてる。メンテナーの階層が厚くなってほしい。

D セキュリティ・プライバシーバックドアの問題。いろんな人香コードレビューして、パッチを見て、リスクに対するソリューションはある。脆弱性が入ってしまう問題についてはどう思ってる?

L バグが起きても、脆弱性を入れてしまうのは許容してはいけない。でも、完全なセキュリティを実現するのは無理で、実現すべきは複数のセキュリティの階層を構築することである。やっぱりバグはあるし。仮想マシンとか、サブ仮想マシンとか、いろんな階層のセキュリティがあって、それでも完璧なセキュリティは存在しない。出来るのは重篤な脆弱性を困難にすることだけ。

L 提案にはわりかしオープンであるべき。いまのやり方よりベターな方法は知らない。アイデアがあるなら受け付ける。

質問 インターネットの監視について、コミュニティレベルで何かできることはないか。

L 僕にその### 質問をぶつけるのはよくないと思っていて、答えるべきはコミュニティである。オープンソースを見るべきで、ソースをオープンにすることで、「このコードは信頼できる」といえる。Linuxはエコシステムとしては健全なものであると思う。気にする人はいると思うけど、暗号化するとか。でもわたしは極端にナーバスではない。NSAが自分のメールを読んでてもそんなに気にしない。自分の人生はそんなワクワクするものではないし。自分にとってそれが問題かどうか問わなければならない。誰も監視しないというのは誰にもわからない。

L EFFはよくやってる。

電子フロンティア財団 - Wikipedia

D 年をとって、丸くなった?→Linuxはもっと優しいひとが指導者になるべきでは?

L 俺は優しいよ。思いやりもあるし。自分に限らず、人は優しくておもいやりもあってそれでうまく回ってる。コミュニティがもっと優しくなれればいいってそういうことじゃないよ。仲良しこよしでやっていけばコミュニティがうまく回るとも限らない。自分もコミュニティの人みんなが好きじゃないし、コミュニティの人も自分のこと嫌いな人もいるとおもう。議論したい人もいるし、議論したくない人もいるだろう。言い争いを横で見るだけでも嫌な人がいて、それはそれでいいと思う。コミュニティは人のネットワークなので、議論があるのは健全なこと。

L 自分がどうあるべきかって話だけど、自分の発言が批判されることもある。「糞野郎リーナス」って言われても悪くはないと思う。引退しても、カーネルやってなかったら退屈だろうなあって。1週間くらいネットから離れた生活もいいと思うけど、それ以上はやだ。今は引退も考えてない。クーデター的なのが起こったら別だけど。

L 自分がどういう人間か知っている。でも、全てを受け入れるわけではない。自分は長いことリーダーなのでなんでも言えるし、他の人はそれを気に食わないかもしれない。でも、誰かがNoということは非常に重要である。

質問 configuration fileのハッキング。

L xmlも嫌いだし、C++もファンじゃない。でも、みんなが使っていたからxmlを使い始めた。オープンソースということはいつでも実際的にやろうとしている。必ずしも好きではないものでも使うことは、ある。これは好きではないけど、これは現実だからってんで使うことはある。

質問 Linuxの経験にもとづいて、どうやってハイクオリティなソフトウエアを作るか

L 答えるのは難しい。2つの側面があって、何らかのハイレベルなビジョンが必要であるから。テイストは、プログラマでない人に説明するのは難しい。このプロジェクトが何なのか、何が出来るのかを人に説明できないと混乱に終わる。 Linuxの場合はUNIXから来た。自分の前に素晴らしいモデルがあって、Linuxはそこから来ている。Gitは自分が考えたが、そういうアーキテクチャがないとグチャグチャになってしまう。自分のハイレベルなビューのほうが重要ということもない。いろいろな醜い面もあるし。アーキテクチャのビューと、世界は複雑であり、簡単に全てを表現できない。ということを大方の人は理解できないし、説明できるものでものない。

もうひとつは、ビジョンを持っている人を見つけること。コミュニティはそれを助ける。Gitはバージョンコントロールのやり方を変えた。自分はアーキテクチャを作ったが、ジュリアンさんがそれを作った。ビジョンと、人材。この2つが重要である。

質問 カーネルの開発に入ることは?

L TDEはカーネル開発にはなじまない。ファンシーな開発モデルはどんどん開発されていくけど、TDD アジャイルなど一時の流行のアイデアはある。テストを書くのはよいことです。でも、一つの考え方を世界の中心にするべきではない。大方のソフトウェア開発はそういう傾向になりがち。snake oil

D エンジニアリングやマネジメントについてもそういうことはある。ブームが生まれて、言葉が生まれて。

L 質問したいなら日本語でもいいぜ。

L 自分はコンテナには興味がない。カーネルでうまくやっていきたいね。一部のユーザーにとっては関心があるけど、わたしがカーネルを始めたのは、ハード、サーバーのほうに興味があったから。わたしはもっとローレベルなところに興味がある。仮想化とか興味はありますが、CPUのアーキテクチャがどうなっているとか、そういうところに興味がある。誰にとってもうまくいくものであってほしい。

質問 TIYのマイクロコントローラについて ラズベリーパイとか

L ハードに興味があるので、面白いとは思う。いろんな選択肢があって、開発の埋め込みとか。でも、勝手に喧嘩してればいいのではないかとも思う。埋め込みの世界についてはARMが先行していて、そこにIntelがシノギを奪おうとしていて、ハードウェアにチャンスを与えるのが重要。いろいろな選択肢があるのはすごく重要。今の時代に自分が生まれていたら、すごくワクワクしてると思う。いろんなコミットみてパッチを入れて、そういう仕事ばかりしているから。

質問 nvidiaについて

L あきらかにLinuxにとり、nvidiaが重要になってきてる。nvidiaがドライバーを書くのを手伝ってくれたら嬉しい。ハードの会社がLinuxのdiverサポートをやってくるのは例外ではなくなってきている。苦情はいっぱい来るけどね。

質問 Linux以外の他のOSをいじったりすることはありますか?

L 他はやらない。他のオープンソースのOS(FreeBSD)すらいじらない。向こうのコードを読んでも苦しいだけで参考にならない。基本的にLinuxだけ。1992年の頃は、もっと今よりもプレゼンに力を入れていたので、パワポを使っていた時期はあったけど、自分たちのベストを尽くすのが重要であって、他のOSと比較してどうこうというわけではなく、あくまでLinuxをより良くすることが必要である。

質問 Linuxの次は?

L 自分はあまり計画をたてない。物事が起きて対処したほうが好き。埋め込み、nvidiaなど、多くのところでLinuxが優っているけども、ARMはサポートしたけど、埋め込みの世界でARMが強くなったとき、次をどうしようか考えてた。 計画的に何かをするのではなく、世界が変わってそのときにどうこうするのがオープンソースの楽しみである。

追記

embededを通訳の人のアレをそのままコピって「埋め込み」って書いちゃいましたが、 正しくは「組み込み」です。すみません。

また、TDEですが、確かにTest Driven Environmentと仰っていたと記憶します。