Ist es möglich, zwei Betriebssysteme gleichzeitig zu booten?


36

Ist es möglich, zwei Betriebssysteme gleichzeitig zu booten?

Zum Beispiel : Ich starte Ubuntu 11.04 und Windows 7 derzeit doppelt. Ubuntu läuft auf einer einzelnen 500-GB-Festplatte, Windows 7 läuft auf einem 1-TB-RAID-1-Spiegel. Um zwischen den beiden Betriebssystemen zu wechseln, ist ein Neustart erforderlich. Ist es möglich, ohne Neustart zwischen den beiden Betriebssystemen zu wechseln?

HINWEIS : Ich bin mir der Funktionen von VirtualBox und VMWare Player voll bewusst - ich verwende beide. Bitte antworte nicht "Verwende Virtualisierung!"

EDIT: Wenn dies nicht möglich ist, können Sie teilen, warum es nicht möglich ist? Mir scheint es nicht so schwierig zu sein. Denken Sie daran, dass meine Vision nicht durch Wissen beeinträchtigt wird!


Auf einem Großrechner mit partitioniertem Speicher ...
Fiasko Labs

Antworten:


36

Die meisten, wenn nicht alle Mainstream-Betriebssysteme erwarten exklusiven Zugriff auf die Low-Level-Funktionalität des Host-Computers (z. B. Hardware, Ports usw.) und haben kein Konzept für die gemeinsame Nutzung mit anderen - es funktioniert einfach nicht - Um also zwei Betriebssysteme gleichzeitig auf demselben System ausführen zu können, ist ein transparenter Arbitrator erforderlich, der die Betriebssysteme voneinander abschirmt - mit anderen Worten, eine Virtualisierungsanwendung.


Virtualisierungsanwendung scheint der Konsens zu sein. Gibt es kostenlose oder Open Source-Optionen, die Sie empfehlen würden?
James Hill

2
Es hängt wirklich davon ab, was Sie versuchen, da einige VM-Apps in einigen Dingen besser sind als andere, aber im Allgemeinen: Wählen Sie Ihr Hauptstandard-Betriebssystem (dh: Booten mit Ubuntu oder Windows) und installieren Sie anschließend Virtualbox, VM Player (meine beiden) Favoriten) oder Ihrer bevorzugten VM-App installieren Sie dann das andere Betriebssystem als virtuelle Maschine in dieser Umgebung.
Linker3000

Sie könnten eine Ubuntu-Distribution auf der Basis von Colinux erstellen. colinux führt den Linux-Kernel als einen Prozess unter Windows aus, es handelt sich also nicht wirklich um Virtualisierung. In gewissem Sinne ist es möglich, dass die ursprüngliche Frage noch nicht beantwortet wurde.
Jay R. Wren

Einige wurden jedoch so portiert, dass sie auf Betriebssystemen im Gegensatz zur eigentlichen Hardware ausgeführt werden können - UserModeLinux ist das perfekte Gegenbeispiel. colinux (wie von @Jay erwähnt) ist ein weiteres Beispiel dafür, wie ein Betriebssystem auf ein anderes "portiert" wird.
new123456

15

Sie scheinen Hyper-V und Xen (sogenannte "Bare-Metal" -Hypervisoren) zu entlassen, obwohl sie dem am nächsten kommen, wonach Sie zu fragen scheinen. Ja, es ist Virtualisierung, aber nicht so, wie VirtualBox funktioniert.

Stellen Sie sich vor, VirtualBox wäre ein eigenes Betriebssystem, sodass Sie ein winziges VirtualBox-Betriebssystem installieren und dann Windows und Ubuntu als virtuelle Maschinen nebeneinander auf dem VirtualBox-Betriebssystem ausführen können. Genau das tun Hyper-V oder Xen. Es ist nur eine dünne Virtualisierungsebene zwischen der Hardware und den Gastbetriebssystemen, und es ist so nah wie möglich, sie direkt neben der vorhandenen Hardware und den vorhandenen Betriebssystemen auszuführen.

Für beides benötigen Sie keinen separaten Server. Sie installieren den Hypervisor einfach so, als ob es das erste Betriebssystem auf dem Computer wäre, und fügen dann Windows und Ubuntu als virtuelle Maschinen unter dem Hypervisor hinzu.

Sowohl Xen als auch Hyper-V führen Ubuntu und Windows als Gastbetriebssysteme aus, obwohl dies möglicherweise keine unterstützte Konfiguration ist. Xen ist Linuxy und Hyper-V ist ein MS-Produkt. Daher würde ich vorschlagen, den Hypervisor basierend auf dem Betriebssystem auszuwählen, mit dem Sie sich besser auskennen.


8

Das Nächste, was Sie tun können, ist den Winterschlaf zu nutzen. Leider sind die Betriebssysteme so weit voneinander entfernt, dass beide Betriebssysteme nicht gleichzeitig ausgeführt werden können, ohne Virtualisierung zu implementieren. Ehrlich gesagt ist die Virtualisierung nicht mehr so ​​schlecht wie Sie denken ... insbesondere, wenn Sie eine Virtualisierungsplattform verwenden, die die "VT" -Erweiterungen unterstützt. Die Gastbetriebssysteme können direkt mit der Hardware kommunizieren und verfügen über eine viel bessere Speicherzuordnung. Ich habe tatsächlich ein Gastbetriebssystem eingerichtet, das direkt auf einer SSD installiert ist. Es lief schneller als das Hostbetriebssystem.


Ich habe kein Problem mit der Virtualisierung, ich benutze VirtualBox auf jedem Computer, den ich habe. Können Sie die von Ihnen erwähnten VT-Erweiterungen näher erläutern? Zu Ihrer Information: Dies ist für den Heimgebrauch gedacht, daher suche ich nach einer günstigen (sprich: free / open source) Möglichkeit, dies zu tun.
James Hill

VT = Hardware-Virtualisierung. Grundsätzlich verfügt die CPU über einige zusätzliche Erweiterungen (die manchmal im BIOS aktiviert werden müssen), um das parallele Ausführen von Betriebssystemen zu erleichtern. VirtualBox kann das ... aber wenn Sie mit der Software-Virtualisierung nicht weiterkommen, wird es keine gute Leistung bringen. Manchmal als VT-x, VT, AMD-V, Hardware-Virtualisierung oder als eine Vielzahl weiterer Namen bezeichnet.
TheCompWiz

Hat VMWare diese "VT" -Erweiterungskreatur, von der Sie sprechen? Wenn ja, muss es explizit aktiviert werden?
MasterMastic

VT ist eine Prozessorfunktion. Es ist eine Frage des Wetters oder nicht Ihre CPU hat die Bits eingebaut oder nicht ... und auch, wenn das Motherboard Unterstützung dafür hat. (Die Prozessorerweiterungen können in vielen BIOS deaktiviert werden.) Normalerweise ist sie standardmäßig aktiviert, kann aber deaktiviert werden. Mein HP Laptop hatte es ausgeschaltet ... aber meine Supermicro-Server haben es eingeschaltet.
TheCompWiz

7

Hier ist der einfache, kurze Grund, warum die Antwort "Nein" lautet: Welche Software würde Ihre Hardware steuern?

Wenn OS 1 dies tut, wird OS 2 nicht ausgeführt. Wenn OS 2 dies tut, wird OS 1 nicht ausgeführt. Wenn beide dies tun, muss eine andere Software den gemeinsamen Zugriff auf die physische Hardware vermitteln , und das ist Virtualisierung (die Sie ausgeschlossen haben).


8
Es sei denn, OS 1 ist OS / 2. Dann läuft OS / 2 als OS 1.: D
Kenneth Cochran

Das ist einfach verzerrt ... Erinnern Sie sich an ein ordentliches Betriebssystem, das von einem Unternehmen entwickelt wurde, das es nicht geschafft hat, aus einer nassen Papiertüte herauszukommen.
Fiasko Labs

2

Folgende Dinge fallen mir ein:
- Speicherverwaltung (RAM und Cache)
- Prozessverwaltung (laufende Prozess-Threads)

Sie brauchen also wahrscheinlich einen Mann in der Mitte, der die Speichernutzung und -prozesse zwischen den beiden Betriebssystemen in Einklang bringt.

Das wäre ein anderes Betriebssystem / Firmware.
Wenn jemand es implementiert hat und es implementieren wird, werden möglicherweise 3 statt 2 Oss gleichzeitig ausgeführt

BEARBEITEN -
Hinzufügen, was linker3000 geschrieben hat: Verwalten von Ports

Dieser "Mann in der Mitte" wird im Wesentlichen zu Ihrem Host-Betriebssystem und den anderen Betriebssystemen, die virtualisiert werden. Dies führt Sie zurück zu dem, was Sie bereits als Lösung kannten


2

Alle Betriebssysteme, die mir bekannt sind, verlangen die vollständige Kontrolle über die Computerhardware.

Es ist jedoch theoretisch möglich. Beide Betriebssysteme müssten für Folgendes entwickelt werden:

  • Ausführung als Master (vollständige Hardwaresteuerung) und als Slave (fordert Ressourcen vom Master-Betriebssystem an)
  • Überlassen Sie die Steuerung der Hardware auf Anforderung eines anderen Betriebssystems

Wenn beide Bedingungen erfüllt sind, können zwei Betriebssysteme gleichzeitig ohne jede Art von Virtualisierung ausgeführt werden. Mit kooperativem Multitasking wäre dies mit zwei Betriebssystemen vergleichbar . Natürlich wurde kooperatives Multitasking praktisch aufgegeben, da schlecht geschriebene Anwendungen die Kontrolle nicht überlassen wollten. Vielleicht würden zwei richtig geschriebene Betriebssysteme gut funktionieren. Was wäre dann wieder der Anreiz?


1

Lassen Sie mich das "Warum" ansprechen.

Einer der Gründe für ein modernes Betriebssystem besteht darin, dass mehrere Programme (Prozesse) gleichzeitig auf einem System ausgeführt werden können. Wenn Sie dies sicher tun möchten, muss Folgendes geschehen:

  • Wahrscheinlich möchten Sie (sofern Sie keine besonderen Anforderungen haben) den Arbeitsspeicher im System nicht fest aufteilen - z. B. 256 MB fest pro Prozess -, sondern lediglich auf 8 Prozesse in einem 2-GB-System. Sie möchten, dass jeder Prozess nach Speicher "fragt" und ihn zurückgibt, wenn er fertig ist.

  • Sie möchten auch I / O-Geräte nicht fest auf Geräte verteilen. In der Regel möchten Sie, dass einige oder die gesamte Hardware, wie z. B. der Arbeitsspeicher, eine gemeinsam genutzte Ressource ist oder zumindest zeitweise nur bestimmten Prozessen zu bestimmten Zeiten vorbehalten ist. Dies setzt voraus, dass alle Prozesse nicht versuchen, die E / A selbst durchzuführen, sondern etwas "durchlaufen", um die E / A zu planen und zu koordinieren. Die Zeitplanung ist wichtig, da die meisten E / A-Vorgänge viel langsamer sind als die CPU, sodass Sie die CPU für andere Prozesse verwenden können, während sie auf die E / A-Vorgänge wartet, selbst auf einem Single-Core-System.

Um das oben Genannte richtig zu machen, muss man mehrere CPU-Hardwarefunktionen nutzen. Eine davon ist die MMU, die andere der geschützte Modus. Können zwei Betriebssysteme diese Hardwarefunktionen gemeinsam nutzen, um zwei oder mehr Betriebssysteme auszuführen?

Sicher, aber es gibt nichts in der Hardware, das ein Betriebssystem daran hindert, den gesamten Speicher des anderen Betriebssystems zu durchsuchen. Befindet sich die CPU im Kernel-Modus (es gibt nur einen Kernel-Modus), kann jeder Code alles tun. Code von einem Betriebssystem kann zu 100% über den Code oder die Daten des anderen Betriebssystems ausgeführt werden. Und wir wissen, dass Betriebssysteme in der Vergangenheit Sicherheitslücken hatten und in Zukunft noch mehr haben werden. Das ist also sehr schlecht für die Sicherheit.

Wäre es nicht cool, wenn Sie eine weitere "Ebene" darüber legen könnten und die Hardware-Unterstützung für mehrere Betriebssysteme benötigen würde? Genau das tun die Hardwarevirtualisierungsfunktionen. Sie stellen eine Hardware-Barriere zwischen mehreren laufenden Betriebssystemen dar, und es gibt eine "Schnittstelle" der obersten Ebene, einen sogenannten Hypervisor. Sie können nur einen Hypervisor haben. Und ja, Prozesse, die unter einem der beiden Betriebssysteme ausgeführt werden, müssen drei Ebenen durchlaufen, um E / A auszuführen (Prozess - lokaler Kernel - Hypervisor).


0

Ich weiß, Sie sagten, keine Virtualisierung, aber so etwas wie ein MS Hyper V-Server könnte Ihren Anforderungen entsprechen


Hyper-V erfordert einen zweiten Computer, der als Server fungiert. Wenn ich eine zweite Maschine hätte, die so leistungsstark ist, würde ich sie neben meinen anderen Turm stellen und beide mit unterschiedlichen Betriebssystemen starten :). Soweit ich weiß, würde eine Einrichtung nicht weniger als 2.000 US-Dollar kosten.
James Hill

Ich denke, Sie können Hyper V auf einem einzelnen Computer
Akash

2
Das V in Hyper-V ist für die Virtualisierung. Wenn die Einschränkung keine Virtualisierung ist, ist Hyper-V keine Lösung.
Jay R. Wren

0

Es gibt keinen anderen Weg als die Virtualisierung. Ich finde es schwierig, genaue Informationen darüber zu erhalten, welche Gastsysteme für die verschiedenen Hypervisoren funktionieren. http://en.wikipedia.org/wiki/Hypervisor Sollte ein guter Anfang sein, um einige Informationen zu erhalten, und Xen könnte einen Versuch wert sein, obwohl ich darauf warten würde, dass jemand definitiv bestätigt oder verweigert, ob es Windows 7-Gäste unterstützt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.