MkLinux(Microkernel Linux)は、PowerPC Macintoshコンピュータ向けの開発が終了したオープンソースの実験的オペレーティングシステムです。1995年にOpen Software Foundation(OSF)とApple Computerの共同開発として発表され、Appleの技術史と社会史における重要な転換点となりました。MkLinuxはApple初の公式なフリーかつオープンソースのソフトウェアコミュニティプロジェクトとなり、初代Power MacintoshにLinuxが搭載された最初の例となりました。
MkLinux の重要な特徴は、マイクロカーネル アーキテクチャです。ほとんどの Linux ディストリビューションはモノリシック カーネルを採用していますが、MkLinux はMachマイクロカーネル バージョン 3.0上で動作するユーザー スペース サーバーとしてLinux カーネルを実行するように適応させたアーキテクチャが特徴です。この「シングル サーバー」アーキテクチャにより、システムは安定し、デバッグも容易になりますが、マイクロカーネルとの通信のオーバーヘッドによりパフォーマンスが低下します。[ 1 ]
評価は賛否両論で、インストール手順の難しさやMachカーネルのパフォーマンス低下が主な問題点として挙げられた。レビュー担当者は「Unixキラー」としての可能性を指摘する一方で、ユーザーが使い慣れたMacintosh環境を捨てて純粋なLinux環境に移行する必要があると指摘した。マイクロカーネルの技術的な複雑さが増したことで、カーネルの再コンパイルといった作業は、標準的なLinuxディストリビューションに比べて難しくなった。
Linuxコミュニティにおいて、MkLinuxの後継となったのは、モノリシックなLinuxPPCでした。MkLinuxの提携を通じて、OSFとAppleは最終的に、MachベースのXNUカーネルをMacintoshに移植するために必要な技術的基盤を構築しました。Appleは、 macOSの未来としてXNUベースのNeXTSTEP(コードネーム:Rhapsody )を採用することで、10年にわたるオペレーティングシステムの混乱をようやく解決しました。
MkLinux は、Linux オペレーティングシステムをMachマイクロカーネル バージョン 3.0上でホストされるサーバーとして動作するように適応させます。 [ 2 ]この「シングルサーバー」モデルでは、Mach マイクロカーネルが低レベルのハードウェア抽象化、メモリ管理、およびプロセス間通信(IPC) を処理します。ファイルシステム、ネットワーク、プロセス管理などの Linux カーネル機能は、別のサーバー タスクとして動作します。[ 2 ] [ 1 ]
この設計は、後のmacOSのハイブリッドXNUカーネルとは対照的である。macOSでは、BSDとMachのコンポーネントが同じカーネルアドレス空間で一緒に実行される。[ 3 ] MkLinuxアーキテクチャでは、オペレーティングシステムを標準のユーザープロセスとしてデバッグでき、安定性が向上する。[ 4 ]ただし、この分離によりパフォーマンス上のペナルティが発生する。システムコールを処理するためにMachマイクロカーネルとLinuxサーバー間でコンテキスト切り替えが必要になるため、オーバーヘッドが発生する。[ 1 ]
MkLinuxプロジェクトは、1995年8月にApple ComputerとOpen Software Foundation (OSF) Research Instituteの共同事業として始まりました。[ 5 ]目標は「Linux on Mach」をPower Macintoshに移植し、Appleがカーネル技術の代替案を模索できるようにすることでした。[ 2 ]それまでの10年間のAppleのオペレーティングシステム戦略は、悪名高い失敗(主にA/UX、Pink、Copland)が続いており、当時の主力製品は旧Mac OS 9でした。前年に発売されたPowerPCやMacintosh向けのLinuxの公式移植版はまだありませんでした。 [ 6 ] Machマイクロカーネルの所有者であるOSF Instituteは、さまざまなプラットフォームでMachを推進することに関心を持っていました。[ 6 ] Appleの開発ツール担当副社長であるIke NassiとBrett Halleがこの取り組みを指揮し、その後、開発はカリフォルニア州クパチーノのAppleのMichael BurgとフランスのグルノーブルのOSFのNick Stephenに分割されました。[ 7 ]
MkLinuxは1996年のWorld Wide Developers Conference (WWDC)で正式に発表され、参加者にはバイナリディストリビューションを含む無料のCDが配布された。[ 6 ] 1998年半ば、コミュニティ主導のMkLinux Developers Associationが開発を引き継いだ。[ 6 ]ソフトウェアディストリビューションのサイズが大きく、当時のダイヤルアップインターネットアクセスではダウンロードが困難だったため、公式CDはPrime Time Freewareが出版した英語と日本語の書籍に同梱されて配布された。[ 6 ] [ 8 ]
Open FirmwareベースのPower Macintoshコンピュータのリリース後、LinuxPPC プロジェクトは Linux カーネルの公式 PowerPC ブランチを作成しました。[ 9 ] MkLinux と LinuxPPC の開発者は、ハードウェア サポートとパフォーマンスで 2 つのプロジェクトが分岐したため、アイデアを交換しました。[ 9 ] MkLinux は、古いNuBusと新しいPCI Macintosh システムの両方をサポートするなど、ハードウェア互換性が向上していますが、LinuxPPC は当初 PCI ベースのマシンのみをサポートしていました。[ 6 ]しかし、MkLinux は Mach カーネルのオーバーヘッドのため、LinuxPPC に比べてパフォーマンス コストがかかります。[ 10 ]
AppleがMkLinuxの直接サポートを終了した後、開発者コミュニティはMachカーネルの維持とさまざまなPower Macintoshモデルのサポートに苦労した。[ 9 ] MkLinuxは、2000年6月にPPC/Linux for NuBusがリリースされるまで、Macintosh NuBusコンピュータ向けの唯一のLinuxオプションであり続けた。[ 9 ]
MkLinuxに対する批評は、その安定性と、Macintoshユーザーに求められる急な学習曲線に焦点を当てていた。MacTech誌は1999年に、MkLinuxは商用Unixに取って代わることはできなかったが、従来のMac OSをより堅牢なメモリ管理へと押し上げたと指摘した。[ 10 ]インストールプロセスは一貫性がなく、ユーザーのハードウェア構成によって「絹のように滑らかか、非常に非常に粗雑か」と評された。[ 10 ]
レビュー担当者は、標準的な Linux ディストリビューションと比較して、オペレーティングシステムの維持が難しい点も指摘した。具体的には、カーネルの再コンパイルは、Mach マイクロカーネルとの同期に必要な追加手順のため、「やや難しい」と指摘された。OS には機能的なデスクトップ スイートがあるが、批評家は、MkLinux を採用するには、従来の初心者向けの Macintosh エクスペリエンスを放棄し、標準的なコマンドライン中心の Unix 環境を採用する必要があると指摘した。[ 10 ]
MkLinuxは、Appleがフリーでオープンソースのソフトウェアプロジェクトを公式にサポートしようとした最初の試みでした。[ 5 ] MkLinuxのMach 3.0カーネルで行われた作業は、macOSへと発展したNeXTSTEPのMacintoshハードウェアプラットフォームへの最初の移植を支援しました。[ 3 ]
OS X は、カーネギーメロン大学が設計し、後に Apple と Open Software Foundation Research Institute (現在は Silicomp の一部) によって Power Macintosh 向けに改良された Mach 3.0 マイクロカーネルをベースにしています。これは として知られ
osfmk、MkLinux ( https://www.mklinux.org ) の一部でした。後に、これと OSF の商用開発活動からのコードが Darwin のカーネルに組み込まれました。
— Apple, Inc.、カーネルプログラミングガイド:Mach APIリファレンス[ 3 ]