![]() | |
| 原作者 | ダン・アロニ |
|---|---|
| 開発者 | コミュニティ |
| 初回リリース | 2004年1月25日 |
| 最終リリース | 0.7.9 [1]
/ 2011年4月9日[1] |
| オペレーティング·システム | Windows NT ファミリー |
| タイプ | プラットフォーム仮想化 |
| ライセンス | GNU 一般公衆利用許諾書 |
| Webサイト | 詳しくはこちら |
Cooperative Linux (coLinuxと略される)は、 Microsoft WindowsとLinuxカーネルを同じマシン上で同時に並行して実行できるようにするソフトウェアです。 [2]
Cooperative Linux は、Cooperative Virtual Machine (CVM) の概念を活用します。従来の仮想マシンとは異なり、CVM はホストOSにすでに存在するリソースを共有します。従来の VM ホストでは、リソースはすべての (ゲスト) OS に対して仮想化されます。CVM は両方の OS にホスト マシンの完全な制御権を与えますが、従来の VM はすべてのゲスト OS を非特権状態に設定して実際のマシンにアクセスします。
概要

「協調的」という用語は、並行して動作する 2 つのエンティティを表すために使用されます。実際、協調的 Linux は、2 つの異なるオペレーティング システム カーネルを 2 つの大きなコルーチンに変換します。各カーネルには独自の完全な CPU コンテキストとアドレス空間があり、各カーネルはいつ制御をパートナーに戻すかを決定します。
しかし、理論上は両方のカーネルが実際のハードウェアに完全にアクセスできるものの、現代の PC ハードウェアは 2 つの異なるオペレーティング システムによって同時に制御されるようには設計されていません。したがって、ホスト カーネルは実際のハードウェアの制御を任され、ゲスト カーネルにはホストと通信してゲスト OS にさまざまな重要なデバイスを提供する特別なドライバーが含まれています。ホストは、Cooperative Linux ポータブル ドライバーが CPL0 モード(リング 0)で実行され、メモリを割り当てることができる基本プリミティブをエクスポートする任意の OS カーネルにすることができます。[3]
歴史
Dan Aloniはもともと、 User-mode Linuxと同様の研究プロジェクトとしてCooperative Linuxの開発を開始しました。[4] [5]彼は2004年1月25日に開発を発表しました。[6] 2004年7月、彼はLinuxシンポジウムで論文を発表しました。[7]ソースはGNU General Public Licenseの下でリリースされました。それ以来、他の開発者がさまざまなパッチや追加機能をソフトウェアに提供しています。[8]
比較
Cooperative Linux は、完全なx86 仮想化とは大きく異なります。完全な x86 仮想化では、通常、ゲスト OS をホスト カーネルよりも低い権限モードで実行し、すべてのリソースをホスト カーネルによって委任します。これとは対照的に、Cooperative Linux は、 NT カーネルとリソースを共有し、競合状態を引き起こさない責任を負うという点でCooperativeである特別に修正されたLinux カーネルを実行します。
分布


Cooperative Linux パッチの変更のほとんどはi386ツリーにあります。これは、この記事の執筆時点で Cooperative がサポートしている唯一のアーキテクチャです。その他の変更は、主に仮想ドライバ (cobd (ブロック デバイス)、conet (ネットワーク)、cocon (コンソール)) の追加です。i386 ツリーの変更のほとんどは、初期化とセットアップ コードに関係しています。Cooperative Linux カーネル設計の目標は、スタンドアロンの i386 カーネルにできるだけ近づけることです。そのため、すべての変更はローカル化され、可能な限り最小限に抑えられています。
coLinux パッケージは、 Linux カーネルのポートと仮想ネットワーク デバイスをインストールし、 Windows 2000やWindows XPなどの Windows オペレーティング システムのバージョンで同時に実行できます。 VMwareなどの仮想マシンは使用しません。
Debian、Ubuntu、Fedora、Gentoo は、coLinux ユーザーに特に人気があります。
仮想ハードウェアの構造がかなり特殊であるため、coLinux で Linux ディストリビューションをインストールするのは一般的に困難です。そのため、ほとんどの場合、ユーザーは実際のパーティション上の既存の Linux インストールか、プロジェクトによって配布された既製のファイルシステム イメージを使用します。ファイルシステム イメージは、通常の Linux システムのイメージを取得する、インストーラを特殊なハードウェアで実行する方法を見つける、パッケージ マネージャーを使用して手動でインストールを構築する、またはyumやaptなどのツールを使用して既存のイメージを単純にアップグレードするなど、さまざまな方法で作成されます。最新のファイルシステム イメージを取得するより簡単な方法は、QEMU を使用して Linux をインストールし、coLinux wiki で説明されているように、最初の 63 個の 512 バイト ブロックを削除してイメージを「変換」することです。
coLinux はネイティブのグラフィック ハードウェアにアクセスできないため、X Windowや X Server は coLinux の下で直接実行されませんが、Cygwin/XやXmingなどの X Server を Windows にインストールして[引用が必要] 、 KDEやGNOMEなどの他の Linux アプリケーションやディストリビューションをほぼすべて使用できます。これらの問題はすべて、Ubuntu ベースの andLinux やSlackwareベースのTopologiLinuxなどの coLinux ベースのディストリビューションを使用することで修正されます。
専用ディストリビューション
coLinux で動作するように特別に構築されたディストリビューションがいくつかあります。
- アンドリナックス[9]
- スピードリナックス[10]
- トポロジLinux
エミュレートされたハードウェア
制限事項
- 64 ビット Windows または Linux はまだサポートされていません (4 GB を超えるメモリも使用していません) が、コミュニティによってポートが開発中です。
- マルチプロセッサ(SMP)はサポートされていません。Linuxアプリケーションとその基盤となるカーネルは1つのCPUしか使用できません。[11]
参照
- Win32ローダー
- プラットフォーム仮想化
- プラットフォーム仮想化ソフトウェアの比較
- シグウィン
- MSYS
- Wubi(インストーラー)
- ロンゲン
- クルート
- Linux 用 Windows サブシステム
参考文献
- ^ ab “Cooperative Linux Documentation”。2023年5月13日時点のオリジナルよりアーカイブ。2020年8月8日閲覧。
- ^ 「coLinuxメインウェブサイト」。2018年5月19日時点のオリジナルよりアーカイブ。2004年4月13日閲覧。
- ^ 「coLinux メインページ」。2015 年 12 月 4 日時点のオリジナルよりアーカイブ。2004 年 4 月 13 日閲覧。
- ^ “オープンソースへの貢献 | Dan Aloni”.ブログ.aloni.org 。2022-01-08に取得。
- ^ 「Cooperative Linux Active Development Team Members」. www.colinux.org . 2022年1月8日閲覧。
- ^ 「LKML: Dan Aloni: [発表] Cooperative Linux」. lkml.org .
- ^ 「Dan Aloni の論文は 2004 年 7 月に Linux Symposium で発表されました」(PDF) 。2018年 9 月 30 日時点のオリジナル(PDF)からアーカイブ。2008年 3 月 30 日閲覧。
- ^ Aloni、Dan (2021-11-17)、da-x/colinux 、2022-01-08取得
- ^ Reed, Michael (2011-09-06). 「andLinux: Windows 上で Linux アプリケーションをシームレスに実行」. Linux Journal . 2023-10-06閲覧。
- ^ "Windows zum Laufen の下に Sie Linux を導入しました". WWW.TECCHANNEL.DE 。2023-10-07に取得。
- ^ 「FAQ」. coLinux .
外部リンク
- 公式サイト
- SourceForgeの Cooperative Linux
- GitHub 上の coLinux
- Wayback Machineの coLinux による仮想化(2008-02-03 アーカイブ)
- SourceForgeの speedLinux
- SourceForgeのポータブル Ubuntu Remix

