Linuxカーネルは賃貸でいう大家さんみたいなもの
近藤佑子(以下、ゆうこ) 今回のゲスト、同人サークル「低級はっかーズ」の岩尾はるかさんの登場です!
岩尾さん(以下、岩尾) 岩尾はるかと申します。同人誌を出しているサークル「低級はっかーズ」で本を書いています。昼は、都内の某IT企業でエンジニアをやっています。よろしくお願いします。
ゆうこ それでは乾杯やりましょうか。
かまたひろこ(以下、かまぷ) 第3回。
岩尾&かまぷ&ゆうこ かんぱーい。
かまぷ 憧れの、岩尾はるかさんですよ。
ゆうこ 岩尾さんは、かまたさんや私達でやっている女性のプレゼン練習会「TechGIRL」の過去の回で、LTしていただいたんですね。私はそこで、「ああ、女性ですごくかっこいい技術者の方がいるんだな」と思ったんです。
岩尾 ありがとうございます。
ゆうこ 7月末のデブサミ夏で、子ども向けのプログラミングの絵本『ルビィのぼうけん』の著者さんである、リンダ・リウカスさんを交えたセッションを行ったのですが、岩尾さんは、リンダさんの通訳としてご協力いただいたご縁もございます。
かまぷ 縁がありますね。
ゆうこ では、いろいろ聞いていきたいと思います。岩尾さんが書かれている本は『Linux Kernel Updates』というシリーズで、まさにLinuxカーネルをテーマにされていますね。なぜLinuxカーネルに関心を持っていらっしゃるんでしょうか。
岩尾 この本を最初に書いた時には、某Webの会社でインフラエンジニアをしてたんですね。で、その前はメーカーで組み込みをやってました。インフラエンジニアをやってると、どうしてもOSの設定や、Linuxの挙動で悩むことがあって、あんまりググっても見つからないし、本にすると需要があるかなと思って本にしました。調べてるうちに面白くなって、ずっと続けて調べてる、そんな感じです。
ゆうこ この本はいつから出されてるんですか?
岩尾 2012年12月ですね。
ゆうこ これは、お一人でされてるんですか?
岩尾 表紙は高校時代の友達や、Twitterつながりでお願いした方に描いてもらい、中身はほとんど1人でやってます。
かまぷ すごくかわいい感じですね。
岩尾 コミケで販売したときに、ブースに立ち寄ってくれた方が、よく表紙を見て、かわいい本かなと思って手に取るんだけど、中身見たら全然かわいくなくて、そっと閉じられてることがコミケでよくあります。
かまぷ これ、全部揃えてるっていう強者もいそうですよね。
岩尾 Twitter検索したらいらっしゃいました。本当に嬉しかったです。
かまぷ あと、ジュンク堂の池袋店でも売られてますよね。
岩尾 並べていただきました。PCコーナーの方に声をかけていただいて、普通の出版社から出してる本じゃなくても置けると言われて。それで置いていただきました。
ゆうこ はい。じゃあ次の質問にいきたいと思います。そもそも私、Linuxカーネルについてよく分かっていない初心者でして、簡単にご説明いただけますか?
岩尾 はい。Linuxに限らず、OSは一般的に、システムの色々な管理を行う「カーネル」と、「ユーザープロセス」に分かれていて、賃貸に例えると、大家さんと店子みたいな関係です。例えば、PCでもサーバでもいいのですが、特別なプログラムがOSの中にいて、メモリを、この店子(プロセス)にはいくつ割り当てて、この店子が入りたいと言ったら入居の手続きして、出て行く時には原状復帰をして、という管理を全部する。それをカーネルと言ってます。
で、実際のコンピュータだと、主にプロセスの起動終了、まあプロセス管理ですね、をやっています。新しくFirefoxを起動したら、FirefoxというプロセスをSSDやハードディスクから読み込んで、どのくらいメモリを割り当ててほしいですかと聞いて、例えば500MBと言われたら500MBを割り当てて、他のプロセスのメモリには書けないように守ったり、しています。あとはネットワーク通信を面倒見ていますね。それぞれのプロセスがお互いに喧嘩し合わないように仲裁しつつ管理する、そういう役割を持った、OSの一番コアとなる心臓部がカーネルです。
WindowsにもMacにもカーネルがあって、Windowsではエクスプローラとは一線を画した形で存在します。Linuxではシステムコール、WindowsではAPIと呼んでいる特別な関数を介してしかやり取りできないというように守られていて、これを特権と呼んでいます。そして他のプロセスに対してああだこうだって口出しして管理できる。そういう部分のことをカーネルって言ってます。
かまぷ Linuxカーネルのバージョンの違いによって、問題が生じたりするのでしょうか?
岩尾 例えば古いバージョンだと、最新版だと使えるパラメータが使えない、最新版で入ってる機能が使えない、とかですかね。微妙にデフォルトの値が違うものもあります。LinuxカーネルのI/Oスケジューラは、ディスクにアクセスする時に、例えばプロセスがみんな一斉にディスクのこのファイルが欲しいと言った時には、ではこの順番というふうにスケジューリングするんですけど、それのスケジューラが変わってたりとか。
かまぷ 逆に、古いバージョンで使えていたのに、新しくなって使えなくなる問題もあるんですか。
岩尾 それは、Linuxではほとんどないです。過去に数回やっちゃったというのがあるぐらいで、Linuxはすごく後方互換性に気をつけて開発されてます。ちょっとでも互換性を壊すようなパッチを書くと、メーリングリストでボコボコにされる感じですね。誰も使ってないようなパラメータを1つ変えるのでも、ダメって言われる。そこはすごく厳しいですね。なので互換性に関しては、すごく安心してバージョンアップできます。
ゆうこ いい話ですね。
かまぷ 「ちょっといい話ボタン」がほしいですね。ピロピロみたいな。
デブ☆ラジではお便りを募集しています!
この番組へのご意見やご感想は、Twitterのハッシュタグ #デブラジ までお寄せください。