twitter icon   twitter icon   rss icon

Linux.com Japan

Home Linux コミュニティ 30 Linux Kernel Developers 30人のLinuxカーネル開発者:Steven Rostedt

30 人の Linux カーネル開発者

30人のLinuxカーネル開発者:Steven Rostedt

Steven Rostedt は Red Hat でリアルタイム パッチの安定版カーネルのメンテナーをしています。今回の Linux カーネル開発者を紹介していくシリーズで、Steven Rosted は彼のキャリアがどのようにして Lockheed Martin から Linux カーネルへと移行し、最終的にカーネルの職についたかを説明してくれました。彼がカーネル開発者になっていなかったら何をしていたでしょう?スターバックスのフランチャイズ店です。

これまでに紹介した開発者のプロフィールは、こちらに掲載されています。
インタビューの原文はこちらです。
 

Steven-Rostedt

お名前をお願いします。

Steven Rostedt です。普段は Steven や Steve と呼ばれています。Stephen はやめてください。私じゃなくて、大勢いる Stephen という名前の他の開発者と勘違いしていると思ってしまいます。


Linuxコミュニティでのあなたの役割や、担当のサブシステムについて教えてください。 

Linux カーネルのリアルタイム パッチ (-rt) の仕事です。リアルタイム パッチの安定版のメンテナーとして、メインラインの安定版と同期させる作業です。

以前、-rt パッチからレイテンシー (応答遅延時間) トレース基盤をカーネルに移植する作業をしましたが、それに私が何年も前に書いたトレース ツールを組み合わせました。その結果が現在一般的に知られている ftrace です。ftrace はメインライン カーネルにおけるトレース基盤の先駆的なツールとなりました。それまではさまざまなツールが提案され、カーネル開発者にトレース機能の有効性を説得する試みがなされてきましたが、ftrace の出現で、カーネルの開発者がようやく関心を向けるようになったのです。ftrace が開発されると開発者たちは本格的に活用するようになり、今では 700 以上のイベントがカーネル全体に配置されています。私はそれに関連した要求に対応するのが精いっぱいで、-rt の作業が片手間になっています (しかし、現在も安定版リアルタイム パッチのメンテナンスを優先しています)。これに関連して、trace-cmd や kernelshark といったツールの開発もしました。また、ftrace は perf の ソフトウェア イベントの基盤にもなっています。
 

報酬はどこから得ていますか?

自分の趣味を仕事にしていますが、Red Hat から報酬をもらっています。;-)
 

お住まいは?そしてそこを選んだのはなぜですか?

ニューヨーク州のエンドウェルに住んでいます。私が育ったニューヨーク州のエンディコットと郵便番号が一緒なんです。ちなみに、約 100 年前に IBM がここエンディコットで創業しました。つまり、私はビッグ ブルーと同じ町で生まれました。

私の父は IBM でマネージャーをしていましたが、60 年代の終わりにエンディコットに転勤してきました。現在エンディコットでは IBM の存在もかなり希薄になりましたが、90 年代の初めまではかなりの規模で展開していました。その流れで私は今もここに住んでいます。

1991 年にアルバニー大学を CS (computer science) 専攻で卒業しましたが、そのころは不景気で職を見つけるのはとても困難でした。ニューヨーク州の所得税関連のデータ入力の仕事をしたほどです。やがて、支出が収入を上回るようになり、路上生活は嫌だったので、あきらめて実家へ戻りました。

そこで GE の業務委託の仕事を見つけましたが、それがリアルタイム システムを扱うようになったきっかけでした。また、それにより実家からも出ることができました。その時は C17 エンジン コントロールのユニット テストをしていました。後に GE の当該部門は Martin Marietta に買収され、次に Lockheed が買収して、現在の Lockheed Martin になりました。そのころ私はニューヨーク州のオウェゴにある IBM Federal Systems に就職しましたが、後にこの事業部門は Loral に買収され、さらにその後 Lockheed Martin に買収されました (彼らからは逃げられないようです)。結局、私は 5 つの身分証明証を手にしましたが、机は 2 つだけでした。誰に雇われているのか分からなくなるほど混乱していたので、電話に出る時は “The Company” と名乗っていました。

話がそれてしましいましたが、私が今でもここに住んでいるのは、結婚して子供が生まれ、家も買ったからです。Red Hat は遠隔で仕事をさせてくれるので他へ移住する理由も特にありません。この辺の土地や住宅の値段はとても安いので、カリフォルニア州やボストン近郊に移ったとしても同じような家は到底買えません。
 

ソフトウェア開発に愛用している生産性向上ツールを教えてください。デスクトップでは何を使っていますか?

私の机には 2 つのモニターと 2 つのキーボードが置いてあり、2 つの異なるシステムに繋がっています。仕事用のコンピューターでは Fedora 13 (今までアップグレードの必要はありませんでした)、個人用には Debian testing (テスト版Debian) を走らせています。Fedora では Gnome 2、Debian では Xfce 4 を使っています。私はデスクトップのタブレット パラダイムには興味がありません。

生産性向上ツールは Emacs です。Emacs は、OS の上で動作する私の OS です。そのほかに欠かせないのは私が書いたスクリプト、ktest.pl です。作業の流れはこんな感じです。 

*Emacs でコードを更新して保存
*コマンド ラインに ./ktest.pl <box>.conf と入力

ktest がビルドを実行している間、 lwn.net と heise.de を読み、ビルドが完成するとそのカーネルをインストールし、ブートします。テストやバイセクトもしますが、普段はカーネルをブートしてテストボックスに ssh でログインして進行を見守ります。このところしばらく “make” や “make install” と打ち込んでいないですね。

コードをアップストリームに提出する前には、必ず ktest を使っていくつかのテストを行い、私のパッチがバイセクトできること、そして新たなバグや不具合が発生しないことを確認します。

他に優れたツールを挙げるなら、git、perf、trace-cmd、そして kernelshark ですね。私もいつもこれらのツールを使っています。
 

どのようにして Linux カーネル開発をするようになったのですか?

先ほど挙げた企業に勤めていた頃は、おもに Sun (Solaris) と Alx の Unix システムで作業をしていました。軍関係の仕事をしていたので、キャリアとしては世間から隔絶されていたような感じがしていました。面白い事は PC の世界でだけ起きているように見えていました。また、Microsoft のすばらしい OS は世界の興奮の中心にありました。1996 年にやっと Windows NT 上のプロジェクトに進むことができました。Windows Visual C++ を使った C++ の作業でした。

しかし、これは最悪な仕事でした。正直言って、片手を後ろに縛られてプログラムの開発をしているように感じました。ある変数が破壊される問題のデバッグに数日間費やしたあげく、その破壊は私が推測していた箇所と異なるところで起きていることに気付きました。しかし、実は変更されていないのにもかかわらず、Visual C++ に付属していたデバッガーが変数の変更を表示していたのです。printf を 2 箇所加えることでそれを証明しました。「何で PC 用の Unix システムを開発しないんだ!」と不満をぶちまけていたら、隣に座っていたインターンが Linux を知っているかと聞いてきました。

私は 13 枚の slackware 用のフロッピー ディスク イメージをダウンロードするという古めかしい手順をとりました。それが私の長い旅の始まりです。カーネルまでソース コードを見られることに感動しました。私のデバイスの 1 つにカーネルのバグがあったので、軽くインターネットで検索をしたらパッチを見つけることができました。実際にはパッチではなく、カーネルの変更すべき箇所の説明が記載されていたのですが、とてもすばらしいことだと思いました。「自分の PC でカーネルを変更できるんだ!」と。しかし、これが私のカーネル開発の始まりだったわけではありません。

1998 年、ビンガムトン大学で修士号を取るための勉強をしていた頃、ある教授がネットワークの授業をしていましたその授業のメイン プロジェクトは、Linux 2.0 の TCP スタックを credit/NAK プロトコルに変換するものでした。この授業を受けている最中に霊感を受けました。私はカーネル ハッキングに魅せられ、とりつかれてしまいました。残念なことに、仕事としてはせいぜい VxWorks カーネルのハッキング程度で、あまり楽しくはありませんでした。

2001 年に TimeSys という新しい企業が私の自宅の近くにオフィスも構えました。そこで仕事をさせてもらうためには、厳しい戦いが必要でした。私の経験はおもにユーザースペースにおけるものでしたし、カーネルの仕事も趣味程度でした。幸いなことに、既に TimeSys に勤めていた友人が数名いたので、私のカーネル開発経験が十分なものであるとマネジャーを説得してくれたのです。
 

Linux カーネル開発のどんなところに魅力を感じていますか?

コミュニティです。私たちは大人数で構成されたおかしな家族のようなもので、私はそれが好きなのです。メーリング リストで喧嘩をすることもありますが、後にカンファレンスなどで相手に会った時には喧嘩のことも笑い話として楽しくビールを飲みながら話せます。ちょっと変わった人でないと、この環境で生きていくのは大変だと思います。コツは、何事も個人的に受け止めないことです。自分の利益とコミュニティの利益の良いバランスを保たなければなりません。私たちは皆ここから何かを得ようとしていますが、同時にお互いに助けあっています。ときどきこの原則をはずす人がいて傷つく人が出るのです。

コードは一種の芸術です。そして全ての芸術と同じように、コードにはその人の個性が反映されます。自分で書いたコードを誰かにけなされると、自分をけなされているように感じるでしょう。でも、あなたの芸術が良くなるということは、あなた自身も良くなるということを忘れてはいけません。批評にめげずに仕事を向上させていくと、それによって自分自身も向上していきます。

私自身、このコミュニティを去ることを考えたほどたたかれたことがあります。実際、近所でスターバックスをオープンしようと真剣に考えたこともあります。結果的には我慢して乗り越えたことで自分が向上したのです。でもスターバックスの経営も楽しいとは思いますが。
 

共同開発作業で経験したこと (炎上、ありえないコード投稿、すばらしい成果など) で、最も面白かったのはどんなことですか?          

私の一番面白くて、しかも素晴らしいといえる成果は、“#define if()” (include/linux/compiler.h を参照) です。これが正常に機能したことに驚きました。しかも実際にカーネルに組み込まれたのでさらに驚きました。しかし、コンフィグされていない状態だとカーネルに害はなく、決してリスクではありません。私は今でもさまざまなコードパスの探索手段としてこれを使っています。イネーブルにされたときに性能を劣化させない方法として、他の領域で使えるように拡張することを提言してくれる人もいました。私の長大な TO DO リストに入れています。
 

参加を希望している開発者に対して、何かアドバイスはありますか?          

やりたい課題を見つけてそれにとりかかってください。私が -rt パッチの作業で学んだことは、無理やり何かをカーネルにプッシュするのは不可能だということです。カーネルが必要とするものがプルされるのです。よい機能を作ったので、誰もが賛同してあなたに花を投げかけるべきだなどと主張しても無駄です。あなたの作ったものが皆のメリットになるということをメンテナーに説明する必要があります。これが達成できれば、いずれ周りからあなたのコードを求める声が多くなるでしょう。まずは他の開発者、さらには、コミュニティを助けることから始める必要があります。空白や誤字脱字を修正するだけではダメです。性能を改善する、あるいは性能を損なわずにより分かりやすく扱いやすいコードにするのも良いでしょう。このような行為であなたはコミュニティに大きく貢献できます。
 

コードを書くときには何か聴いていますか?

コンピューター ファンの音です。私は音楽に興味はありません。ただし、ktest のビルドやテストの完了を待っている間、ドイツ語のニュース ポッドキャストを見ることはあります。ドイツ語を忘れないためです。あと、最近ではバルセロナ旅行に向けてスペイン語の短期集中コースも受けています。
 

あなたとやりとりできるメーリング リストや IRC チャネルは何ですか?そして、あなたと会えるカンファレンスは?

LKML と  このメールアドレスは、スパムロボットから保護されています。アドレスを確認するにはJavaScriptを有効にしてください " rel="noreferrer"> このメールアドレスは、スパムロボットから保護されています。アドレスを確認するにはJavaScriptを有効にしてください  にいます。OFTC の #linux-rt にも時々参加して thermo-deficiencies 問題にも取り組んでいます。

年に 5 つのカンファレンスに参加しています。Linux Collaboration Summit とPlumbers、そして時にはEmbedded LinuxLinuxConLinux Users にも参加しています。あと、OSADL の Realtime Linux Workshop は特に気に入っていて、最近参加してきたばかりです。私が楽しめる内容に重点を置いている唯一のカンファレンスなのです。


30人のLinuxカーネル開発者:Paul E. McKenney
本シリーズの最後を飾るのは Paul E. McKenney です。彼が夢中になっているカーネル開発作業は IBM がサポートしているそうです。また、彼がなぜ vi を使っているかや、Alexey Kuznetsov からどのように刺激されて Linux に関わるようになったか語ってくれました。そこには皆さんの想像とは少し違う経緯がありました。
30人のLinuxカーネル開発者:Frédéric Weisbecker
今週の30 人の Linux カーネル開発者シリーズでは Frédéric Weisbecker に話を聞きました。フランスの北東部に住んでいる彼は、Linux に関わるようになったきっかけや、同じような道を歩もうとしている人達にとって有用なアドバイスを語ってくれました。Linux コミュニティでのエイプリル フールにまつわる楽しいパッチも教えてくれました。
30人のLinuxカーネル開発者:Herbert Xu
30 人の Linux カーネル開発者シリーズも残すところ 3 人となりました。Linux 開発のコミュニティの貢献者についてさらに知っていただくため、引き続き新たなシリーズを開始する予定です。ご提案やフィードバックなどありましたら、ぜひコメント欄でお知らせください。今週は Herbert Xu を紹介します。彼の回答は簡潔で賢明です。
30人のLinuxカーネル開発者:Chris Mason
30 人の Linux カーネル開発者シリーズも残すところ数人となりました。今週はカーネル開発者であり、また Btrfs メンテナーでもある Chris Mason を紹介します。 彼のデスクトップ、生産性向上ツール、そしてお気に入りの炎上のエピソードについて話してくれました。また、カーネル開発に参加するためのアドバイスもしてくれました。
30人のLinuxカーネル開発者:James Bottomley
30 人の Linux カーネル開発者シリーズの 26 週目を飾るのは James Bottomley です。彼の日中の仕事は何なのか、なぜ彼は SCSI メーリングリスト上で他の人に異議を唱えるのか、そしてなぜ Bell Labs が彼に Windows から Linux への移行を許可したのかについて話してくれました。
30人のLinuxカーネル開発者:John Stultz
今週の 30 人の Linux カーネル開発者シリーズでは John Stultz を紹介します。彼は Portlandia をベースとし、現在は IBM から Linaro プロジェクトに出向しています。彼の Linux との「恋愛」関係は 1997 年に始まりましたが、その選択に満足して、過去を振り返ることはありません。
30人のLinuxカーネル開発者:Jonathan Corbet
今週の 30 人の Linux カーネル開発者シリーズでは Jonathan Corbet を紹介します。彼をよく知っている人も知らない人も、このインタビューを通じて、彼がコロラド州のボルダーに住むようになったわけや、彼の父親にちなんで名前がつけられたスキーの難コースのこと、デスクトップで走らせているもの、そして Linux コミュニティに参加しようとする Linux 初心者へのアドバイスなど、彼に関する新しいことを知っていただければ幸いです。
30人のLinuxカーネル開発者:Glauber Costa
LinuxCon Europe の後、一息ついている間に 1 週間中断してしまいました。今週から、Linux カーネル開発者を紹介していくシリーズを再開します。このシリーズも 23 週目を迎えましたが、今回紹介する Glauber Costa も世界有数の才能豊かなソフトウェア開発者です。
30人のLinuxカーネル開発者:Stephen Hemminger
Stephen Hemminger は ネットワークの専門家であり、Bridge ユーティティと iproute2 ユーティリティのメンテナーを務める Linux カーネル開発者です。今回の Linux カーネル開発者を紹介していくシリーズでは、Stephen Hemminger が彼のカーネル開発キャリアにおいて最も印象に残った出来事について説明してくれました。それは、小さなプロジェクトがとても大きな影響力を持つようになったことでした。
30人のLinuxカーネル開発者:Steven Rostedt
Steven Rostedt は Red Hat でリアルタイム パッチの安定版カーネルのメンテナーをしています。今回の Linux カーネル開発者を紹介していくシリーズで、Steven Rosted は彼のキャリアがどのようにして Lockheed Martin から Linux カーネルへと移行し、最終的にカーネルの職についたかを説明してくれました。彼がカーネル開発者になっていなかったら何をしていたでしょう?スターバックスのフランチャイズ店です。
30人のLinuxカーネル開発者:H. Peter Anvin
30  週に渡り多彩な Linux カーネル開発者を紹介していくシリーズは 20 週目を迎えました。今週は H. Peter Anvin に話を聞きました。彼と Linux の関わりは 1992 年に始まりましたが、そこには入院、盗まれた OS/2 マニュアル、そして公衆電話で注文したコンピューターが関係していました。
30人のLinuxカーネル開発者:Chuck Lever
30 週に渡り多彩な Linux カーネル開発者を紹介していくシリーズ、今週は Oracle の Chuck Lever に話を聞きました。彼は Linux NFS と FedFS の実装の仕事をしていますが、Linux に関わるようになったのはミシガン大学に在学中でした。彼から Linux 初心者へのスペシャル アドバイスがあります。コンピューター史上最大の共同開発プロジェクトの一員の面白い見識を、ぜひどうぞ。
30人のLinuxカーネル開発者:Jiří Kosina
30 週に渡り多彩な Linux カーネル開発者を紹介していくシリーズ、今週は Jiří Kosina に話を聞きました。彼は、なぜ Linux が推理小説の「誰がやった?」ストーリーに似ているのか、また、なぜ Linux の仕事がかっこいいということだけでは動機として不十分なのかについて話してくれました。
30人のLinuxカーネル開発者:Laurent Pinchart
Linux カーネル開発者の Laurent Pinchart (「メディア コントローラーの人」として知られている) はビデオ キャプチャーとディスプレイ関連の仕事をしています。彼が Linux に関わるきっかけとなった幸運な出来事や、彼の開発したフリー ソフトウェアを台湾のある企業が 5 万米ドルで譲ってほしいと持ち掛けてきた時の思い出について話してくれました。本シリーズで取り上げた他の開発者の多くと同じように、Linux に対する彼のモチベーションにはお金以外の何かがあるようです。
30人のLinuxカーネル開発者:Jiří Slabý
30 人の Linux カーネル開発者シリーズ第 16 弾へようこそ。今週は、若き開発者 Jiří Slabý に話をききます。彼は Linux カーネルの仕事が好きな理由を次のように語っています。「カーネルを完全に理解することは誰にもできないからです。常に変化を遂げるエコシステムであり、常に新たなことを学ぶ必要があります。そして、この仕事に関わる人達です。彼らから本当のプログラミングを教わりました。」
30人のLinuxカーネル開発者:Mauro Carvalho Chehab
今週の 30 人の Linux カーネル開発者シリーズでは Mauro Carvalho Chehab を存分に紹介します。彼は Linux カーネルのメディア サブシステム メンテナーとしてブラジルで活動しながら、新人の開発者がコミュニティーに貢献・協力できる最善の方法を学ぶ手助けをするために、できる限りの時間を費やしています。
30人のLinuxカーネル開発者:Ben Hutchings
今週の30人のLinux カーネル開発者シリーズでは Ben Hutchings を紹介します。彼はいろいろな活動を行っていますが、とりわけ Linux カーネルの Debian パッケージ メンテナーとして活躍しています。彼は「Linuxに関わりたいなら、小さなことから始めて徐々に“脳外科手術”へと進んで行ってください。」と語っています。
30人のLinuxカーネル開発者:Julia Lawall
8 月末にサンディエゴで開催された Linux Kernel Summit、Linux Plumbers Conference、LinuxCon、CloudOpen など、コミュニティの人々が直接協調するイベントを無事に終えて帰って来ました。今週の 30 人の Linux カーネル開発者シリーズでは Julia Lawall を紹介します。彼女が Linux カーネル開発に関わるようになった経緯や、どんなところに魅力を感じているかについて話してくれました。
30人のLinuxカーネル開発者:Martin K. Petersen
今週、世界中の Linux カーネルの開発者達が、年に 1 度開催される Linux Kernel Summit に集合します。今回の開催地はサンディエゴで、LinuxCon と CloudOpen もいっしょに開催されます。ここに集まる開発者達は世界最高レベルとして知られています。今週はその中の 1 人である Martin Petersen を紹介します。彼は世界最大の共同開発プロジェクトの参加者であり、貢献者でもあります。
30人のLinuxカーネル開発者:Johannes Berg
Johannes Berg は、カーネル開発者としてワイヤレスコードと iwiwifi ドライバーのメンテナーを務めています。他の多くの開発者と同様、自分のコンピューターのハードウェアの問題を解決するために Linux に関わりはじめ、それ以来ほかのことをやろうとしたことはありません。彼は来週 LinuxCon North America に参加し、「Linux ワイヤレス スタックの設計課題と今後」について講演します。
30人のLinuxカーネル開発者:John W. Linville
30 週に渡り多彩な Linux カーネル開発者を紹介していくシリーズの第 10 弾は、2006 年から Linux カーネルのワイヤレス LAN サブシステムのメンテナーをしている John Linville です。彼は「自分の仕事を細かく記録していませんが、同じ難題にもさまざまな取り組み方がありえます。」と話してくれました。
30人のLinuxカーネル開発者:Arnd Bergmann
30 週に渡り多彩な Linux カーネル開発者を紹介していくシリーズの第 9 弾は、Arnd Bergmann です。彼が現在重点的に取り組んでいる作業や、Linux の新人への細かいアドバイスなどについて語ってくれました。
30人のLinuxカーネル開発者:Alan Cox
30 週に渡り多彩な Linux カーネル開発者を紹介していくシリーズの第 8 弾は Alan Cox です。彼が Linux に関わることになった経緯や、なぜ今でもこの仕事が重要だと感じているのかを聞きました。音楽についても色々と教えてくれました。
30人のLinuxカーネル開発者:Paul Mundt
30 週に渡り多彩な Linux カーネル開発者を紹介していくシリーズの第 7 弾は、SuperH アーキテクチャや AMR ベースの SH/R モバイル プラットフォームのコア部分に関わる開発を行っている Paul Mundt です。彼の 20 年近くにわたるカーネルの仕事について、実体験を交えながら語ってもらいました。彼の言葉から、共同開発作業は眠ることを知らず、大陸をまたぐフライトの間でも常に稼動していることが分かります。
30人のLinuxカーネル開発者:Dave Jones
30 週に渡り多彩な Linux カーネル開発者を紹介していくシリーズの第 6  弾は、Fedora  カーネルのメンテナーの Dave Jones です。彼の仕事や考え方について色々と話を聞きました。
30人のLinuxカーネル開発者:Greg Kroah-Hartman
30週に渡り多彩な Linux カーネル開発者を紹介していくシリーズの第5弾は、Linux ステーブル (安定版) カーネルのメンテナーで、Linux Foundation フェローでもある Greg Kroah-Hartman です。
30人のLinuxカーネル開発者:Jean Delvare
30週に渡り多彩な Linux カーネル開発者を紹介していくシリーズの第 4 弾はJean Delvare です。
30人のLinuxカーネル開発者:Sarah Sharp
30週に渡り多彩なLinux カーネル開発者をご紹介していくシリーズの第 3 弾は Sarah Sharp です。
30人のLinuxカーネル開発者:Thomas Gleixner
30人のLinuxカーネル開発者を毎週紹介していくシリーズの第2弾は、Thomas Gleixnerです。
30人のLinuxカーネル開発者:Linus Torvalds
  最初に登場するのは、もちろん Linux 創始者である Linus Torvalds です。今週 Linus は、ミレニアム技術賞のセレモニーに出席するために、故郷のフィンランドに帰っています。彼は 2012 年ミレニアム技術賞の共同受賞者(参考:もう一人の受賞者は山中伸弥教授)に選ばれました。彼は、フィンランドに発つ直前にこのインタビューに応えてくれました...

Linux Foundationについて

Linux Foundation はLinux の普及,保護,標準化を進めるためにオープンソース コミュニティに資源とサービスを提供しています

 

The Linux Foundation Japan

サイトマップ

問い合わせ先

サイトに関するお問い合わせはこちらまで

Linux Foundation Japan

Linux Foundation

Linux Training

提案、要望

Linux.com JAPANでは広く皆様の提案、要望、投稿を受け付ける予定です。

乞うご期待!