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!
windows-7
ubuntu
multi-boot
James Hill
quelle
quelle
Antworten:
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.
quelle
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.
quelle
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.
quelle
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).
quelle
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
quelle
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:
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?
quelle
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).
quelle
Ich weiß, Sie sagten, keine Virtualisierung, aber so etwas wie ein MS Hyper V-Server könnte Ihren Anforderungen entsprechen
quelle
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.
quelle