Linuxの代替?Debian/HurdはマイクロカーネルUnixの夢が生きていることを示す

Table of Contents

Linuxの代替?Debian/HurdはマイクロカーネルUnixの夢が生きていることを示す

Linux以前、GNUは独自のMachベースのUnix互換OSの開発に取り組んでいました。そして今、Debian 13の後継として、新たなリリースが登場しました。

Debian GNU/Hurd 2025は、もう一つのGNUオペレーティングシステムの最新リリースです。開発者Samuel Thibault氏からの発表メールによると、このリリースにはRumpレイヤーのNetBSDディスクドライバーのおかげで動作するx86-64版が含まれており、USBディスクとCDドライブも使用できるようになりました。HurdにはRust言語の移植版に加え、「かなり動作する」SMPサポートがあり、「Debianアーカイブの約72%を実行可能で、さらに追加予定!」とのことです。これは2024年6月以来のプロジェクトからのニュースアップデートであり、明らかに大きな進歩が見られます。活動の傾向は良好です。

これは厳密にはレビューではありません。なぜなら、これは厳密には代替Unix OSではないからです。HurdはLinuxのいかなる形態でもなく、BSDでもありません。Debian GNU/Hurd 2025はDebian Trixieのエディションですが、これは非常に実験的なOSであり、革新的な設計に基づいて構築されていることを念頭に置いてください。多くのハードウェアモデルでは動作せず、既存のソフトウェアのほとんども動作しません。ReadmeファイルはYES_REALLY_READMEという名前で、次のように始まります。

序文 ******** https://xkcd.com/293/

GNU/Hurd は Linux ではありません。

https://darnassus.sceen.net/~hurd-web/faq/

GNU/Hurd を試す前に本当に知っておく必要があることを知るために、この README を必ず読んでください。

「HurdはLinuxではない」という一文は非常に重要です。Hurdは、OSの設計と実装を研究することに興味のある人々のための実験的なOSです。この点で、Plan 9の開発を継続するフォークである9frontに似ています。9frontのFAQページに相当する最初のエントリの一つには、「Plan 9はあなたには向いていません」と書かれています。そして、次のように続きます。

正直に言うと…Web ブラウザーなしでコンピューターを使うことが想像できない場合は、Plan 9 は適していない可能性があります。

ここでも同じことが言えます。Hurdとは何かを知っていて、OS研究に興味があるなら、これは魅力的な新リリースです。一方で、「面白いものや楽しいものを動かすことができるか?」「Windowsの代わりになるか?」 「自分のコンピューターで動くか? 」といった疑問が頭に浮かぶなら、答えは「いいえ」です。

X.org で IceWM と hyfetch を表示する Debian 13 の Hurd エディション

X.org で IceWM と hyfetch を表示する Debian 13 の Hurd エディション。 - クリックして拡大

これはDebianの一種ですが、その定義はかなり曖昧で、ほとんどのDebianユーザーはその存在すら知りません。DebianはLinuxディストリビューションだけではありません。Debian GNU/Linux以外にも、異なるカーネルを使用する、つまりLinuxではない他のDebianフレーバーも存在します。

Debianはほぼ2⁵年前(2の5乗で32年、25年ではありません)にリリースされました。2年前の今月、私たちは30周年を迎えました。その記事でも触れましたが、GNUプロジェクトが4.4-BSD LiteからBSDカーネルを採用することを真剣に検討した時期がありました。

もしそうしていたら、Linus Torvalds が 1991 年 8 月に発表した小さな趣味のプロジェクトに取り組み始める前に、完全に機能する GNU OS が登場していたかもしれません。

minixを使っている皆さん、こんにちは。

386(486) ATクローン用の(フリー)オペレーティングシステム(単なる趣味で、GNUのような大規模でプロフェッショナルなものではありません)を開発中です。4月から構想を練っていて、いよいよ完成に近づいてきました。

しかし、GNU/BSDは実現しませんでした。リーナスが1991年4月に作業を開始した頃、つまり彼がその存在を公表する数ヶ月前、GNUプロジェクトはBSDカーネルを使用しないことを選択しました。そして5月、独自のOSを開発することを発表しました。

フリーソフトウェア財団は、Mach 3.0 マイクロカーネル上に構築される GNU オペレーティング システムの開発に着手しています。

当時、Machプロジェクトはマイクロカーネル設計の最先端でした。現在、MachはmacOSとiOSで使用されているXNUカーネルの基盤となっています。さらに、MachはOpen Software FoundationのOSF/1の基盤でもあり、これは後にTru64と改名されたDigital UNIXの基盤となりました。NeXTとの合併以前は、AppleはPowerMacハードウェアへのLinuxの最初の移植版の一つであるMkLinuxでMachを使用していました。

GNU Hurdプロジェクトは現在も継続しており、Machを使用しています。現在、gnumachはバージョン1.8です。プロジェクトは開発の詳細を記した履歴ページを維持しています。近年では、更新頻度が四半期に一度に達することもあり、プロジェクトではこれをQoTH(Quarter of the Hurd )と呼んでいます。

Debianは32年間継続的に開発されており、その間、他のカーネル上でDebianユーザーランドを実行する複数のエディションが存在してきました。言い換えれば、Debian GNU/LinuxではないDebianも存在するということです

Debian GNU/kFreeBSDはFreeBSDカーネル上にDebianユーザーランドを使用していましたが、残念ながら人材不足のため2023年にプロジェクトは終了しました。やや古いBSDであるDebian GNU/NetBSDのカーネルを使用した同様の取り組みもありました。OpenBSD、OpenSolaris、IBMのOS/2カーネルなどへの移植を含む、他にも複数の提案があります。

Reg FOSSデスクは Debian GNU/kOpenSolaris、あるいはおそらく今日ではDebian GNU k/Illumosと呼ばれるであろう名前の響きを非常に気に入っています。OpenSolarisカーネル上でDebianに最も近いものとしては、Nexenta OSがありました。これはIllumianに改名され、その後残念ながら閉鎖されましたが、Nexentaは現在も存在しています。

しかし今日、全く異なるカーネルを使用する、今もなお健在で継続中のDebianプロジェクトが一つあります。それがDebian GNU/Hurdです。このプロジェクトが先日、新しいスナップショットを公開しました。

HurdはUnixライクなマイクロカーネルOSです。1980年代後半から1990年代初頭にかけて、この分野はOS研究のホットな分野でしたが、Windows NTやLinuxといった堅牢なネイティブ32ビットOSの出現により、OS研究は停滞しました。NTカーネルはモジュール化されており、それぞれ異なる個性を持っていますが、時折野心的な主張をされることはあるものの、マイクロカーネルではありません。AppleがNeXTを買収して以来、AppleのOSはXNUカーネルを採用しています。これはMachをベースにしていますが、NeXTがMachから優れたパフォーマンスを引き出す方法は、BSDコード由来の大規模な「Unixサーバー」をカーネル内に直接埋め込むことだったため、もはや真のマイクロカーネルとは言えません。

Hurdはまだバージョン1.0に達していません。Linuxが利用可能になると、1992年に若きLinux Torvaldsと「Linuxは時代遅れだ」と発言したAndy Tanenbaumの間で、史上最も有名な炎上の一つが繰り広げられたにもかかわらず、ほとんどの注目と努力はLinuxへと移りました。

Linuxが勝利したのは、シンプルで実用的な設計、つまり古き良き1970年代風のモノリシックカーネルだったからです。本質的には、一つの巨大なC言語プログラムに、何千ものオプションのサブコンポーネントが含まれていますが、ほとんどの環境では使用されません。現在も最新のLTSバージョンであるバージョン6.12以降では、よりスムーズなリアルタイム応答のために割り込みをかけることさえ可能です。Linuxは十分に優れており、それが生き残るための特性です。

マイクロカーネルはより複雑です。OSの大部分は、プロセッサの特権スーパーバイザーモードではなく、通常のアプリケーションと同様にユーザー空間で実行されます。つまり、多数の小さなコードモジュールが互いに通信し、毎秒何百万ものメッセージを送受信して動作を調整する必要があります。膨大な通信量のため、パフォーマンスは大きな負担となります。つまり、より簡単パフォーマンスの高い選択肢は、すべてを1つの巨大なプログラムにまとめる(Linuxのように)か、設計の純粋さを犠牲にしてUnixとの互換性に関するすべての要素をカーネル内に移す(macOSやiOSのように)かのどちらかです。

マイクロカーネル方式は、理論的にはよりクリーンでエレガントであるにもかかわらず、実現がはるかに困難であったため、採用を逃しました。実用的なメリットもあります。より多くの人が、より小さく、よりシンプルで、明確に分離されたコードモジュールに協力して取り組むことが容易になります。運用面では、OSのコンポーネントがシャットダウンやクラッシュ、アップグレードや再起動してもカーネルに影響を与えることがないため、このようなシステムははるかに信頼性が高くなる可能性があります。これは、アンディ・タネンバウムが18年前に主張したことです。

  • Linuxカーネル6.16は目立った機能はないが、3800万行のコードを搭載
  • インテルが無駄を削減したため、Linux OS は終了した。
  • トルバルズ氏、遅れてきたカーネル開発者を非難「あなたの『ゴミ』なRISC-Vパッチは世界を悪化させている」
  • プロジェクトバナナがKDE Linuxのプレアルファ版として成熟し、テストできるようになりました

とはいえ、マイクロカーネルは複数存在します。商業的に成功した例としては、1980年代初頭に登場したBlackberryのQNXが挙げられます。しかし、microkernel.infoの説明にあるように、FOSSマイクロカーネルは活発に活動しています。同サイトには30近くのアクティブなプロジェクトがリストアップされています。その一つがMinix 3で、その開発者であるAndy Tanenbaum博士は昨年、このプロジェクトで賞を受賞しました。博士は10年後までMinix 3の存在を知りませんでしたが、Minix 3は2008年頃以降、ほぼすべてのIntelプロセッサ(つまりCore i3/i5/i7シリーズ以降のすべてのIntelチップ)の管理プロセッサ内部で動作しています。

Machの直接的な後継として、はるかに高速なプロセス間通信を備えたL4マイクロカーネルが開発されました。この取り組みは、プロジェクトリーダーであるJochen Liedke氏の悲劇的な早すぎる死後も継続されました。Registerはこれまで数多くのL4ベースのプロジェクトを取り上げており、最近では2022年にNeptune OSが発表されました。2012年にはOKLabsは15億を超えるOKL4インスタンスを出荷していましたが、その後は減少傾向にあるようです。

ここで重要なのは、Minix 3とL4ベースのシステムが何十億と存在しているということです。Blackberry 10の終了から10年経った今でも、QNXは依然として好調な売れ行きを誇っています。デスクトップOSやサーバーOSという狭い視点から見ると、マイクロカーネルは失敗作、つまりは不毛な学術研究だと結論付けるのも無理はありません。しかし、そうではありません。世の中には数え切れないほどの何十億ものマイクロカーネルが存在し、騒ぎ立てることなく静かに仕事をこなしているため、人々の目に留まりません。

今日、Linusの引退後、Linuxはどうなるのかという問題はますます切実なものになっています。先月末にリリースされたカーネル6.16は、実に膨大なもので、10万近くのファイルに4000万行近くのコードが詰め込まれています。OS擁護は永遠です。WindowsファンがLinuxをアマチュアOSと嘲笑するのを今でも目にします。とはいえ、Linuxは今や紛れもなく成熟したプロジェクトであり、企業で広く採用されています。その結果、想像を絶するほど巨大なものとなっています。

いつかLinuxは、より優れた機能を持つものではなく、よりシンプルで理解しやすく、管理・保守コストが低いものに事実上取って代わられる日が来るかもしれません。Minix 3の開発は、Tanenbaum教授が2014年に引退して以来、休止状態にあります。Hurdの開発が継続していることは大変喜ばしいことです。Debianのパッケージのほぼ4分の3を実行できる、x86-64 PC向けの完全FOSSマイクロカーネルは、まさに偉大な成果です。®

Discover More