ダウンロード: linus-interview-part1-3.txt
現在作業中の文書です。お気づきの点がありましたら、jf@listserv.linux.or.jp、チケット、フォーラムのいずれかにお寄せください。
#(20:36) #Linus Torvalds: It comes up every once in a while. I don’t think #anybody really knows what the answer is. We’ve added some #documentation. Usually the kind of initial “read me” kind of #documentation: where to go to get involved, how to behave, so that’s #available in a number of languages. Linus Torvalds: おりおりそういう話が出てくるね。誰も本当にその答えを 知らないと思うよ。ぼく達はドキュメントをいくつか追加した。普通最初に必ず 読むような"read me"のようなドキュメントで、そこにはどこに行けば 参加できるか、どう振る舞えばいいのかといったことが書かれている。そういう ドキュメントがいくつもの言語で公開されているんだ。 #(20:56) #Whether that makes a huge deal or not, I don’t know. I suspect it #doesn’t, but I also suspect that it may make people more likely to #at least take a look at the project. Maybe it scares away people #less when they see the project itself, at least tries to approach #them. People in Asia might feel like, “Okay, I’m not fighting against #this. I may have issues,” but at least they’re kind of aware of them #and they’re trying to some degree. So, that’s one of the things we’ve #been looking at. これが大きな意味を持つかどうか、ぼくにはわからない。ぼくはあまり 意味がないんじゃないかと思ってるけど、少なくとも人々にプロジェクトを 見てみようという気を起こさせたとは思ってる。多分プロジェクト自体を見て 逃げ出しちゃう人は減って、少なくともそのプロジェクトに取り組もうとは するかもしれない。アジアの人々はこう感じているかもしれない、「よし、 とりあえずこの件はこれ以上追求しない。問題だとは思うけど」でも 少なくともその人たちは問題に気がついているわけだし、ある程度までは 挑戦しようとしているんだ。つまり、そこが注目してきた点の一つなんだ。 #(21:29) #That said, I mean, I actually think the cultural barrier is bigger #than the language barrier and the reason I say that is especially #South America has been pretty active, (so it’s not that - ) and they #don’t necessarily speak English all that much, but I think culturally #they’re more closer to Europe and the U.S. which makes it easier #to enter. このことは、文化の壁は言語の壁より大きいってことを示していると思うんだ。 ぼくがそう思う理由は、南米の人達が特に活発に参加してきたからなんだ。 彼らは必ずしもそんなに英語をしゃべるわけじゃないけど、文化的に ヨーロッパやアメリカとより近いから、参入しやすいんだろうと思うんだよ。 #(21:52) #So - and the cultural differences I don’t think we even know how to #really even approach. そんなわけで、そういった文化の違いにどうやって真剣に取り組んでいけば いいかぼく達はわかってないんだと思う。 #(21:57) #Jim Zemlin: (The - ) let’s talk a little bit more on the technical #aspect of where the kernel is going. Earlier usage of the Linux kernel #was largely on the servers. It obviously is used for desktop #computing, increasingly in mobile and embedded computing. Jim Zemlin: もう少し技術的な面におけるカーネルの将来について 話しましょう。当初 Linux カーネルは大部分がサーバ上で動作していました。 現在はデスクトップコンピューティングではっきりと使われていて、 モバイルや組み込みコンピューティングでも増加しています。 #(22:15) #As you see this, (you know,) more embedded and mobile devices use #Linux, any impact on the kernel at all from a technical perspective? こういった状況、つまり組み込み機器とモバイル機器により Linux が使われて いくのを見て、技術的観点からカーネル全体に及ぼす影響はありますか? #(22:24) #Linus Torvalds: I actually expected more of an impact. It turns out #the mobile devices have grown up so much that even a cell phone, #even a fairly, (like,) middle-of-the-road smart phone today probably #has more computing power than the first desktops that were used to run #the Linux at. And that doesn’t seem to be stopping. Linus Torvalds: 実を言うと、もっと強いインパクトを期待していたんだ。 モバイル機器はすごく成長してきたんだ。携帯電話や、かなり万人向けの スマートフォンでさえ多分最初に Linux を動かしたデスクトップよりも 高性能な演算処理能力を持っているに違いない。そしてその成長はどうも 止まりそうにない。 #(22:45) #So, (I think) especially as far as the kernel is concerned, people #worried about that more than I think it turns out you need to worry. #The biggest issues on the mobile side tend to be not so much - well, #there is still the kernel side; you want to make it smaller, you want #to make it more efficient, but I think the thing that more people #worry about is actually interfaces. 特にカーネルに関する限り、みんな、多分あなたが思うよりももっと 心配しているね。モバイル側の最大の問題は、傾向としてあまり……ああ、 問題は依然としてカーネルの側にあるんだけど、カーネルをより小さく、 効率的にしたくても、より多くの人々が心配してるのは実際には インタフェースだと思うんだ。 #(23:10) #It makes more a difference that the way you connect to a mobile phone #is different from the way you connect to a desktop. You have a very #limited keyboard, you have touch screen issues, you have a very small #screen and I think the bigger issues tend to be in things like the UI #interfaces. 携帯電話を操作する方法とデスクトップの操作方法の差はさらなる違いを 生み出すんだ。すごく制限されたキーボード、タッチスクリーンの問題、すごく 小さいスクリーンがあるわけだ。ぼくはより大きな問題はどちらかといえば UIインタフェースのようなものにあると思うんだ。 #(23:29) #So, you have Qtopia and that seems to be big on the mobile side and #the kernel hasn’t seen that much of that. It may be that I just think #so and I’m insulated from some of the issues because there’s all these #mobile kernel groups involved that I don’t interact with directly, but #I suspect on the whole people worry less about the kernel than about #user space. Qtopia(*) があり、Qtopia はモバイル側が主要な役割を負っているようだった から、カーネル側ではその多くを目にすることはなかった。もしかしたら ぼくがそう感じていただけかもしれないけど、ぼくは一連の問題から 離れているんだ。なぜなら関与しているモバイルカーネルグループ全てに、 ぼくは直接関わっていないからだ。でもモバイル側の人々全体として ユーザ空間よりカーネルに気を配ってないと思うよ。 (*訳注 Qtopia: Trolltech 社(現ノキア社)が開発したモバイル向け アプリケーションプラットフォーム) #(23:55) #Jim Zemlin: Well, let’s talk about that second half of the comment you #made about there’s lots of these sort of mobile-specific kernel groups #or Linux distributions out there. And, you know, one of the things #that you hear people say is a reason they participate in the Linux #development process and open source is because it’s that collective #work that really reduces the cost and really allows them to work #together effectively. Jim Zemlin: あなたの後半の発言にあった、モバイル特化型の カーネルグループや Linux ディストリビューションが数多く存在することに ついて話しましょう。よく耳にする話として、彼らが Linux 開発プロセスと オープンソースに参加する理由はこのような共同作業によって相当な コスト削減になり、彼らがお互い非常に効率よく開発できるようになるから というのがあります。 #(24:20) #And by having, (you know, sort of) groups flaking off, what can they #do from just a best practice point of view in terms of if you’re #a mobile device company in getting what you want into the mainline #so that, you know, you can have it there (indefinitaly)(+infinitely) #so that it’s… そしてグループが細かく分かれている中で、彼らがまさにベストプラクティスの 観点からできることは何でしょうか? もしあなたがモバイル機器の企業で、 メインラインカーネルに入れたいものがあれば、無限に入れられるとして……。 #(24:40) #Linus Torvalds: I think the big problem in the mobile world tends to #be that the whole market- is so used to being completely fragmentary. #Everybody makes, , these one-off pieces of hardware; they’ve done it #for the last few decades, they’re very used to basically writing #throwaway code and starting entirely from scratch when the next #generation is - comes out. Linus Torvalds: モバイル業界での大きな問題は、どちらかというと市場全体が 完璧に断片化しているのに慣れてしまっていることだと思う。みんなこうした 一回限りのハードウェアを作るんだ。彼らはここ数十年間そうしてきたんだ。 基本的に使い捨てのコードを書くのにとても慣れていて、次世代ハードが 登場すると完全に一から始めるんだよ。 #(25:03) #So, they may have generations of hardware (for - ) that go on for #many, many years and they support that generation, but then when they #finally decide to do another generation, they basically start #from scratch. ハードウェアには世代があって、それは何年も何年も続いていき、彼らは その世代のサポートを行うんだ。でも最終的に彼らが別の世代へ行くことを 決定すると、基本的に一から始めるんだ。 #(25:16) #And when you come with that mindset, (you sometimes - ) as far as I #can tell, people don’t even understand the notion of trying to work #with the process and trying to get integrated into the standard kernel #or the standard utilities because that’s never how they worked before. あなたがそういう心持ちでいるとしても、ぼくが話す限りでは、人々はこうした プロセスで開発しようとする概念や、標準カーネルもしくは標準ユーティリティ と統合するなんていう概念を理解しようとさえしないね。なぜなら、 それは彼らがやったことのないやり方だからだ。 #(25:34) #So, what a lot of these mobile manufacturers actually do is they pick #one version, they usually pick a version that is fairly recent #at the time they pick it and then they say, “Okay, this is the base.” #And then for the next five to six years for that particular platform, #they stick to that version and they enhance it for their own needs. で、こうしたモバイル機器製造業者の多くがやってることはというと、 あるバージョンをとりあげ、普通はその時の最新バージョンをとりあげて こう言うんだ、「OK、こいつがベースだ」それから5~6年の間特定の プラットフォームで彼らは同じバージョンに長く留まって、必要に応じて 機能強化するんだ。 #(25:57) #And when they then want to do their next version and next-generation #hardware, they’re in the situation where the rest of the world has #worked on something else for those few years and all their #modifications are to a version that is now - has nothing to do with #what the version is today in the rest of the world and they end up #doing what they did before: they throw away their work entirely and #start from scratch. で、彼らが次期バージョン、次世代ハードウェアを作ろうとするとき、彼らは 世界中がこの二、三年間何か別のもので動いているという状況に陥ってるんだ。 彼らがそのバージョンに加えた修正は今日世界中で使われているバージョンとは 何も関係がなくなっているんだ。そして彼らは以前やってたことをやめる。 彼らは自分達の作品を全て投げ出し、一から始めるんだよ。 #(26:24) #And this is not something I - I don’t think we can help with. I think #that mobile market, to some degree, needs to grow up and grow out of #that bad behavior. これはぼくが……ぼくは助け合うことはできないと思ってる。モバイル市場は 成長してそのような悪習から抜け出す必要があると思うんだ。 #(26:36) #Jim Zemlin: In some ways it’s a cultural issue not from ahistorical #perspective and a geographic perspective, more from a business #perspective. Jim Zemlin: ある意味それは歴史的観点からでも地理的観点からでもなくむしろ ビジネス的観点から見た文化的問題ですね。 #Linus Torvalds: Yeah. It’s a technical cultural issue and technical #and business practice cultural issue. Linus Torvalds: ああ。技術的で文化的な問題で、技術的で商慣習的な 文化的問題だね。 #(26:49) #Jim Zemlin: One of the things you talked about was there’s an #increasing complexity in how you interface with the kernel and device #drivers is obviously a component of this. Jim Zemlin: あなたが先程話した中に、カーネルとのインタフェースの方法が より複雑になってきているということがありました。そしてデバイスドライバは 明らかにこの構成部位です。 #(27:00) #I get asked a lot, which this probably won’t surprise you, why doesn’t #the kernel have a stable device driver ABI? よく尋ねられるのですが、別にあなたは驚かないでしょうが、なぜカーネルには 安定版デバイスドライバ ABI(*) がないのですか? (*訳注 ABI: プログラムとOSの間のオブジェクトコードレベルの インタフェース) #(27:09) #Linus Torvalds: (Well, there’s - ) the lack of an ABI is two-fold: one #is we really, really, really don’t want one. Every single time people #ask for a stable ABI, the main reason for wanting a stable ABI is they #want to have their binary drivers and they don’t want to give out #source and they don’t - certainly don’t want to merge that source into #(the stable kernel or) the standard kernel. Linus Torvalds: ABI がない理由は2つある。1つは、ぼく達はそれを 本当に、本当に、本当に欲しくないということだ。いつもいつもみんな 安定版 ABI について訊いてくるけど、安定版 ABI を欲しがる主な理由は 自分達のバイナリドライバは持ちたいけどソースは外に出したくなくて、さらに 間違いなくソースを標準カーネルにマージしたくないからなんだ。 #(27:31) #And that, in turn, means that all the people who actually do all the #kernel work and maintain the kernel are basically unable to work with #that piece of hardware and that vendor because if there’s any bugs #whatsoever, we can’t fix them. それはつまり、実際にカーネルの全機能が動作するようにしている、カーネルの メンテナンスをする人達の誰もがそのハードウェアでは基本的に作業できなく なってしまうことを意味するんだ。なぜならどんなバグがそこにあっても ぼく達は誰も修正することはできないからだ。 #(27:47) #So, all the commercial vendors--even the ones who used to accept #binary drivers--have moved or are moving away from wanting to have #anything at all to do with binary drivers because they’re completely #unmaintainable. だから、全ての商用ベンダがたとえ以前はバイナリドライバを受け入れていた 企業であってもバイナリドライバとの関係すべてから距離を置いたか、 置こうとしている。なぜならそれは全くメンテナンスすることができない からだ。 #(28:01) #So, there’s one of the reasons. Some people see it as political. #There is probably a political aspect to it, but a lot of it is very #pragmatic; we just can’t maintain it. ここに理由の一つがあるんだ。安定版を出さない理由を政治的だと見る人も いる。きっと政治的な面もあるに違いないんだけど、理由の多くは非常に 現実的だよ。単にぼく達がメンテナンスできないからだよ。 #(28:11) #Jim Zemlin: This sounds like another one of those cultural issues #where, you know, people were just used to supporting binary drivers #and there’s benefit, perhaps, to that, but they don’t maybe even #understand the benefit of sharing in the support. Jim Zemlin: こうして聞いているとここにはもう一つの文化的問題が あるようですね。かつて人々はバイナリドライバをサポートしていたもので、 たぶんそれで利益を上げていました。しかし、彼らはたぶんサポートを共有して 利益を上げることを理解することさえしないでしょう。 #(28:23) #Linus Torvalds: Well, it’s not so, you know, maybe so much the #benefit; it’s the fact that when support is distributed. I mean, #I end up not having to support most devices, but I end up being #kind of the last stop support for when - when if s-t(*shit) hits #the fan and there’s a big problem,in the end it comes all the way #up to me. Linus Torvalds: うーん、そうじゃないね。あまり儲からないんじゃないかな。 サポートが行き渡っている時、それが現実となるんだ。ぼくはもうほとんどの デバイスをサポートする必要はないんだけど、ぼくは最終的にサポートの 終着駅となるんだ。ケツが割れて大きな問題が見つかると、結局その問題は ぼくのところまでくるんだ。 #(*訳注 shit hits the fan: 原文の筆記録では不適切な表現として #伏字にされたものと思われる。この注は日本語のみの版では削除されている。) # #(28:45) #And when you have that kind of distributed support system (when -) #where everybody ends up being involved at some point, you really can’t #afford to have the situation where only a very small subset actually #has access to the code that may be causing the problem. You need to #have the code out there, not because of any social issues, but simply #because you don’t know who’s going to be the one who has to fix it. そのような誰もが何らかの点で関係してしまっている分散されたサポート システムでは、問題を起こしているであろうコードにごく一部の人だけが アクセスできるという状況にはとてもできないんだ。コードは公開する 必要がある。それは何ら社会的問題によるものではなく、単に誰がその問題を 修正しなくてはならない人物になるかわからないからだ。 #(29:08) #So, there’s a real reason why we need to be able to have source code #which means that to all kernel developers, a binary interface is #(basically - it is) only a bad thing. (There is - ) there are no #upsides whatsoever. なぜぼく達がソースコードを手にしておける必要があるか、その本当の理由は、 全てのカーネル開発者にとってバイナリインタフェースは悪玉でしかないから なんだ。どんなものであれ、利点などないんだよ。 #(29:23) #But there’s another reason which is that we actually do end up #changing things in radical ways inside the kernel and that has led to #the fact that even if we wanted to have a binary interface, we simply #couldn’t or we could but it would then stop us from fixing stuff and #changing how we do things internally. ただもう一つの理由があって、ぼく達は最終的に過激なやり方でカーネル内部を 変更するんだけど、このことは一つの事実へとつながっていく。たとえぼく達が バイナリインタフェースを欲しがったとしても、ぼく達は断じてそうする ことなどできないし、そうすることができたとしたらその後はモノも 修正できず、内部的に行っていることを変更することもできなくなって しまうだろうね。 #(29:45) #And this is something you do see in other projects where, yes, they #have binary interfaces for one reason or another--quite often #because of commercial reasons--and that just means that they cannot #fix their fundamental design. They sign up not just the binary #interfaces, they also sign up to the exact design they had when they #came up with that interface. そしてこれはあなたも他のプロジェクトで見てるだろうけど、そう、彼らが 何らかの理由で、大抵は営利的な理由でバイナリインタフェースを持つことは 基本設計の修正が不可能だということも意味しているんだよ。彼らが 契約するのはバイナリインタフェースだけにとどまらず、そのインタフェースが 思い浮かんだ時点での厳密な設計とも契約することになるんだ。 #(30:09) #So, there’s - that’s the second major reason why a stable ABI is not #going to make - in fact, that means that we don’t even guarantee a #stable API; so, even on a source level we say, “Okay, this is the API #and (we’ll - ) if you have external drivers that use this, we’ll help #you fix them up when we have to change the API. But we don’t guarantee #that the same API will work across versions.” And it doesn’t. ここに、安定版 ABI をつくろうとしない2番目に大きな理由があるんだ。 実際それはぼく達が安定した API を保証すらしないことも意味するんだ。 ソースレベルでさえぼく達は言うんだ、「OK、こいつがその API で、もし あんたがこの API を使う外部ドライバを持っていたら、ぼく達は API 変更時に 修正するのを助けてやろう。だけどバージョンを越えて同じ API が動くことは 保証しない」そしてその API は動作しないんだ。 #(30:41) #Jim Zemlin: But by opening up, you’d obviously be able to work with #those issues. Jim Zemlin: しかし始めから、あなたは明らかにこれらの問題とつき合うことが できてましたよね。 #(30:45) #Linus Torvalds: Right. Immediately when people work with, like, source #API and then we can say when somebody complains, “Hey, it doesn’t compile #anymore. My external module here depended on that function and now it #doesn’t exist anymore,” at that point at least we can fix it for them. Linus Torvalds: そうだね。すぐにみんながソース API のようなものを使えば、 「おい、そいつはこれ以上コンパイルできないぞ。ここにあるぼくの 外部モジュールはその関数に依存していて、こいつはこれ以上存在しないんだ」 なんて文句を言う人がいても、その点では少なくともそのモジュールを 彼らのために修正することができるんだ。 #(31:03) #So, that’s not a huge deal. It does mean that people who maintain #external modules, even with source available, they can’t assume that #they can just recompile unmodified across many different versions. だからそれはすごく大きな問題ってわけじゃない。それが意味するところは、 外部モジュールをメンテナンスする人は、ソースが入手可能であっても、多くの 異なるバージョンにまたがって修正なしに再コンパイルできるかどうかなんて 予想できないってことなんだ。
コメントが長くなった場合は、JF@linux.or.jp にお寄せください。