このページの本文へ

行っとけ! Ubuntu道場! 第57回

~師範、Ubuntu独自のテクノロジーについて教えてください!~

2012年06月21日 12時00分更新

文● hito(Ubuntu Japanese Team) イラスト●瀬尾浩史

  • この記事をはてなブックマークに追加
  • 本文印刷

Ubuntuの独自テクノロジー:Upstart

編集I:「Ubuntuが最初に取り込んだもの」も含めて、Ubuntu独自テクノロジーから見ていくのがいいんでしょうか?

あわしろいくや:ですなぁ。Ubuntuの強みは「ちゃんと調整されて、いきなり使い物になるデスクトップ環境」以外にも、こっそり投入されてる強力なテクノロジーにもある、ってことはあんまり知られてないですし。Unityもそのひとつですな。

既存のユーザーからの賛否両論でおなじみUnity。まだまだ発展途上なので、評価はこれからだ

hito:たとえばUpstartなんかは典型的ですね。

編集I:Upstartって良く聞くんですが、どういうものなのか説明を入れた方が良さそうですね。

hito:まずUpstartは「initデーモン」の一種です。initデーモンというのは、「Unix・Linuxで最初に起動されるプロセス」のことです。プロセス番号で見ると1番。……まあLinuxの場合は「最初に」起動されるプロセスって意味では厳密には違うんですけどまあいいや。

やまね:まずブートローダーからカーネルが起動されますよね。で、カーネルからユーザーランドが起動されるんだけども、その時に最初にあがってくるのがinit、って説明でいいかなぁ。

hito:で、起動されたinitがいろんなサービスとかXとか、あるいはログインのためのディスプレイマネージャーやコンソールの仮想端末なんかを起動してくれます、と。

さかもっちー:init以外を上げるのは間違いぐにゅぅ?

ミズノ:「最初に起動するプロセス」って意味ではbashとか、シェルみたいなプログラムでもいいんだけど、それは「シングルユーザーモード」と言います。

編集I:シングルユーザーモードって、そういうものなんですねぇ。φ(・ω・ )メモメモ

ミズノ:initを上げてマルチユーザーモードのための環境を整えるのが通常の起動モード、initの代わりにシェルを起動するのがシングルユーザーモード、と思っておけばいいです。initにサービスを起動してもらうためのスクリプトを、「initスクリプト」なんていいますね。

編集I:initスクリプトって、「service apache2 restart」とかしたときに起動されるやつですね。

やまね:です。

hito:で、Linuxで使われていたinitはいろいろ由来があるんですけど、「起動は順次行なう」とか「サービスの依存関係を定義しにくい」とか、いろんな問題がありました。「ネットワークの設定が変更されても、どのプロセスを再起動すればいいのかわからない」なんてのもありますね。こういうのを解決するために、この10年ぐらいで「次世代init」と呼ばれるものがいろいろ開発されてます。

小林:Linuxだけでなくて、他のUnixでもそうですね。SolarisのSMFとか、Mac OS Xのlaunchdが該当します。

やまね:Linuxの場合はUpstartとsystemdが「新世代」の代表って感じ?

hito:InitNGなんてのもありますね。

ミズノ:この手の「新世代」とか「次世代機」とか、わからなくなるから止めた方がいいと思うんだけどね……。「次世代機」と言われてセガサターンとか持ってこられても、みたいな。

やまね:「スーパー」も死亡フラグだよね……。

さかもっちー:今回のは大丈夫ぐにゅぅ。まだまだ置き換えには時間がかかるぐにゅぅ。

hito:で、まあ要するに「起動は順次ではなく、可能な範囲で並列に行なう」「サービスの依存関係を簡単に定義できる」「ネットワークの設定が変更された場合、どのプロセスを再起動すればいいのか分かる」ようにしたinitデーモンがUpstartです。設計的には「イベント」を“emit”(発動)して、それを受け取った他のサービス起動スクリプトが起動される、って形の「イベント駆動」型ってこと。Windowsとか、GUIプログラミングやってる人にはお馴染みの概念ですね。

あわしろいくや:で、Ubuntu由来ですな。

hito:Canonicalに雇用されてたScott James Remnantが開発してました。「雇用されてた」なのは、今はGoogleに転職してChrome OS作ってるから。

やまね:CanonicalからGoogleに転職してChrome OS作ってる人、わりといっぱい居る感じ?

hito:セキュリティ方面のKees Cookも同じような転職パターンですね。ちなみにUpstart的には、今はCanonicalの別の人(James Hunt)が開発してます。この人の入れ替えでペース落ちてないのが割とすごい。

あわしろいくや:Ubuntuが導入したのが6.06(2006/06)からですな。もう6年経つんですなぁ。

hito:当時は「え、4ヵ月しかないのにマヂでやんの」とか思ってましたが、今になって考えてみると当時の無茶は大した無茶ではなかった……。今の開発ペースの方があきらかにおかしい。


カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン