2 つの OS を同時にデュアルブートすることは可能ですか?
例えば: 現在、Ubuntu 11.04 と Windows 7 をデュアル ブートしています。Ubuntu は 1 台の 500 GB HDD で実行されており、Windows 7 は 1 TB RAID 1 ミラーで実行されています。2 つの OS を切り替えるには、再起動が必要です。再起動せずに 2 つの OS を切り替えることは可能ですか?
注記: VirtualBox と VMWare Player の機能については十分理解しており、両方使用しています。「仮想化を使用してください」という回答はしないでください。
編集:もしこれが不可能なら、なぜ不可能なのか教えていただけますか? 私にとっては、それほど難しいことではないように思えます。私のビジョンは知識に縛られていないということを覚えておいてください!
答え1
主流のオペレーティング システムのほとんどは、ホスト コンピューターの低レベル機能 (ハードウェア、ポートなど) への排他的アクセスを想定しており、他のものと共有するという概念がありません (共有すると機能しません)。そのため、同じシステムで 2 つの OS を同時に実行しようとすると、オペレーティング システムを相互に遮断する何らかの透過的な調停者、つまり仮想化アプリケーションが必要になります。
答え2
Hyper-V と Xen (いわゆる「ベアメタル」ハイパーバイザー) は、あなたが求めているものに最も近いにもかかわらず、無視しているようです。確かに仮想化ではありますが、VirtualBox と同じようには動作しません。
VirtualBox のようなものが独自のオペレーティング システムであると想像してください。小さな VirtualBox OS をインストールし、VirtualBox OS 上で仮想マシンとして Windows と Ubuntu を並行して実行できます。これは基本的に、Hyper-V または Xen が行うことです。これはハードウェアとゲスト オペレーティング システムの間にある薄い仮想化レイヤーであり、既存のハードウェアおよび既存のオペレーティング システムと並行して直接実行できるのに最も近いものです。
あなたしないどちらかに別のサーバーが必要な場合は、ハイパーバイザーをマシン上の最初のオペレーティング システムであるかのようにインストールし、ハイパーバイザーの下に Windows と Ubuntu を仮想マシンとして追加するだけです。
Xen と Hyper-V はどちらも、Ubuntu と Windows をゲスト オペレーティング システムとして実行しますが、サポートされていない構成である可能性があります。Xen は Linux に近く、Hyper-V は MS 製品なので、どちらの OS を使い慣れているかに基づいてハイパーバイザーを選択することをお勧めします。
答え3
最も近似した方法は、休止状態を利用することです。残念ながら、オペレーティング システムは互いにあまりに異質であるため、仮想化を実装せずに両方の OS を同時に実行する方法はありません。正直なところ、仮想化は、特に「VT」拡張機能をサポートする仮想化プラットフォームを使用している場合は、それほど悪くはありません。ゲスト OS はハードウェアと直接通信できるようになり、メモリ マッピングなどが大幅に改善されます。実際に、SSD に直接インストールされたゲスト OS をセットアップしましたが、ホスト OS よりも高速に動作しました。
答え4
思い浮かぶのは、次のとおりです。
- メモリ管理 (RAM とキャッシュ)
- プロセス管理 (実行中のプロセス スレッド)
したがって、おそらく 2 つの OS 間でメモリ使用量とプロセスを調整する中間者が必要になるでしょう。
それは別のOS/ファームウェアになります。
誰かがそれを実装した場合、OSはそれを実装し、2つのOSではなく3つのOSが同時に実行される可能性があります。
編集 -
linker3000 が書いた内容を追加: ポートの管理
この「中間者」は本質的にホストOSとなり、他のOSは仮想化され、すでに分かっていた解決策に戻ることになります。