Ist Windows 7 in Linux genauso gut wie das Hauptbetriebssystem (esp für Grafik und Video)?

Neuer Linux-Benutzer. Ich habe mich gefragt, ob Windows 7 in Ubuntu/Linux Mint über VMPlayer genauso ausgeführt wird wie Windows 7 als Hauptbetriebssystem.

Mit" gleich " meine ich besonders:

  • Wird die Grafik-und Video-Rendering-Qualität genauso gut sein?

  • Wird es ein Hardwareproblem wie die Verwendung von HDMI oder WiDi geben?

  • Werden Anwendungen genauso reibungslos laufen, solange genügend RAM vorhanden ist zugeteilt?

Wie mächtig muss die Maschine sein, damit es keinen merklichen Unterschied gibt? Die besonderen Spezifikationen meiner Maschine sind: http://www.gadgetspecs.info/2011/07/asus-u46e-bal5-review-of-specs-and.html. Ich habe auch eine SSD installiert.

Hintergrund: Ich habe derzeit das Gegenteil mit Linux Mint und Ubuntu in Windows 7 eingerichtet und stelle fest, dass die Videoqualität nicht so gut ist wie in Windows 7.

Author: Kamil Sindi, 2012-01-13

5 answers

Ich habe meiner Antwort unten viel beigefügt, aber ich habe meine ursprüngliche Antwort als Referenz intakt gehalten.

TL:DR: Virtuelle Maschinen sind ein Instrument, und während Sie bieten die einfache Fähigkeit zu verwenden Sie ein Betriebssystem innerhalb eines anderen muss man sehr wohl bewusst, was Ihr beabsichtigt, den computer in Erster Linie in Auftrag zu machen die volle Nutzung des Systems.

Ihre Frage scheint stark auf die grafischen und Schnittstellenleistungsmöglichkeiten der Verwendung einer virtuellen Maschine ausgerichtet zu sein und so werde ich bezüglich der Möglichkeiten dort antworten.

Das Hauptproblem besteht darin, dass alle Geräte, die Sie verwenden möchten, "emuliert"werden müssen, um den Zugriff der Gastbetriebssysteme auf Geräte sicher zu verwalten (und somit zu verhindern, dass das Gastbetriebssystem über den Host trampelt und Dinge kaputt macht).

Dies bedeutet, dass die Grafikkarte, die Ihr Gastbetriebssystem sehen kann, und nicht dieselbe Grafikkarte ist, die Ihr Hostbetriebssystem sehen kann. Möglicherweise können Sie Funktionen wie 3D aktivieren rendering im Gast, aber dies wird von einem Zwischentreiber in Ihrem Gast behandelt, der die Anforderungen sicher an den Host weitergibt, damit das 3D dort gerendert werden kann.

Es ist sehr zweifelhaft, dass Funktionen wie die, die zum sicheren Abspielen von Blue-ray-Discs auf einem unterstützten HDMI-Display erforderlich sind, von den Gastgrafikkartentreibern emuliert werden und dies wahrscheinlich nicht funktioniert.

Grundsätzlich funktioniert alles, was Hardware-Unterstützung auf Ihrem Host erfordert, wahrscheinlich nicht gut, wenn alle, in Ihrem Gast. Ich weiß nicht, wie WiDi funktioniert, aber wenn es direkten Zugriff auf Ihren Grafikkartenspeicher erfordert, um ihn für einen Fernseher freizugeben, funktioniert er nur, wenn Sie ihn von Ihrem Host-Betriebssystem (Linux) aus verwenden.

Anders als in Bezug auf die Leistung kann eine VM nahe an das herankommen, was sie wäre, wenn sie das Hauptbetriebssystem wäre, aber es wird immer Strafen in Bezug auf den Zugriff auf Festplattengeräte oder Konflikte mit anderen Ressourcen geben, die der Host verwendet.

In der Anfang...

Am Anfang hatten wir einen Computer, dieser Computer konnte nur ein Betriebssystem ausführen. Das Betriebssystem neigte dazu, nur gut auf dem jeweiligen Prozessor und andere Hardware, die in der Maschine war laufen, mit anderen Betriebssystemen nur schlecht laufen können, wenn überhaupt, auf der nativen Hardware zur Verfügung.

Damit Personen die Software für eine bestimmte Plattform auf einer anderen Plattform verwenden können (z. B. mit Pre-OSX macOS-Software auf einem Commodore Amiga) mehr als nur "Installation der software". Diese beiden Maschinen verwendeten völlig unterschiedliche Prozessorarchitekturen und Zusatzhardware. Es gab einfach keine Möglichkeit, ein Betriebssystem auf der Hardware eines anderen Computers auszuführen.

Emulation

Emulation ist wie ein Cousin der Virtualisierung, sie sind tatsächlich verwandt und haben ähnliche Ziele. Einer zeugte den anderen sozusagen.

Was diese unterschiedlichen Hardwareplattformen bedeuteten, war, wenn Sie eine Software von ein anderes Betriebssystem auf Ihrem Computer dann alles über diese Maschine musste analysiert werden, um herauszufinden, wie es funktionierte, und dann ein Stück Code geschrieben, die in der gleichen Weise funktionierte wie der Hardware-Teil tat. Dies musste für jedes Stück getan werden, der Prozessor, der Grafik-Controller, der Speicher-Controller, alles.

Dann werden alle diese Teile zusammengesetzt und da jedes Stück ein bisschen Hardware emuliert, nannten wir dies eine emulierte Maschine. Wir führen dann ein betriebssystem auf dieser emulierten Maschine.

Das Problem ist, dass dieser Ansatz langsam ist. Ganz einfach hatten Sie Glück, wenn Sie 1/10 der Geschwindigkeit der ursprünglichen Hardware erreichen konnten. Sie benötigten buchstäblich eine Maschine, die um ein Vielfaches schneller war als Ihre zielemulierte Maschine, um den emulierten Computer mit nahezu voller Geschwindigkeit ausführen zu können.

Also, was hat sich geändert?

Nun, hier ist die Coole Sache. Nicht viel wirklich. Die einzige große Veränderung war, dass Hardware-Plattformen einheitlichen. Wir haben aufgehört, benutzerdefinierte Hardware für jedes Betriebssystem zu erhalten, und die Betriebssysteme wurden alle auf eine einzige Standardplattform verschoben oder auf dieser erstellt.

Die Komponenten, aus denen heutzutage ein Mac besteht, sind im Großen und Ganzen dieselben Komponenten, aus denen ein PC besteht. Linux lief immer auf PC-hardware also nichts neues.

Für eine gute lange Zeit war Emulation immer noch die Norm, wenn Sie die Software von einem Betriebssystem auf einem anderen ausführen wollten. Oder sie können dual-boot und laufen entweder betriebssystem, wie sie wollten, dies machte es jedoch schmerzhaft und ärgerlich, wenn Sie von der Codierung unter Linux zum Spielen unter Windows wechseln wollten.

Und Dann..

Es kam die Idee, dass, da die zugrunde liegende Hardware die gleiche ist, warum können nicht beide Betriebssysteme es teilen?

Wir landeten bei QEMU und WiNE und ähnlichen Softwarelösungen. QEMU war seit langem ein Favorit für die harte Emulation von Computern, während WiNE es Windows-Anwendungen ermöglichte, unter Linux zu laufen, indem sie ihre OS-API-Aufrufe abfangen und patchen und den Code ausführen ließen nativ auf dem Prozessor.

QEMU tat etwas Ähnliches wie Wein, aber auf einem viel niedrigeren Niveau. Es ist immer noch effektiv ein Emulator, aber für jeden Hardware-Aufruf, der ausgeführt wurde, verwendeten sie eine "Patch and Redirect" - Methode, sodass alle Aufrufe stattdessen auf ihre eigene emulierte Hardwareplattform gingen. weil der meiste Arbeitscode in einem Programm keine Hardwareaufrufe beinhaltete (die meisten sind einfache Berechnungsströme mit einem Aufruf am Ende, um Ergebnisse anzuzeigen).

Dies führte zu einer sofortige Geschwindigkeitssteigerung für fast jedes Programm in der jetzt nicht wirklich emulierten Maschine. Programme liefen mit Verlangsamungen mehr davon ab, wie viel sie auf die "virtuelle" Hardware zugegriffen, anstatt wie gut die Maschine emuliert werden könnte. Anstatt mit 1/10 der Geschwindigkeit zu laufen, liefen sie jetzt fast mit der gleichen Geschwindigkeit wie nativ.

Also, wenn wir jetzt auf dem Prozessor laufen, warum funktioniert meine Grafikkarte nicht?

Das einzige problem mit diesen neuen Virtuellen Maschinen ist, die Ihrem Wesen nach Betriebssystem davon ausgegangen, dass es einen direkten Kontrolle von alle die hardware in den computer, so dass Sie können bieten features wie Speicher-management und Steuerung des Zugriffs auf die hardware.

Dies bedeutet jedoch, dass virtuelle Maschinen zumindest in der Methode nicht vollständig von der Emulation wegkommen können. Sie müssen noch bestimmte Funktionen in Software emulieren, zum Beispiel eine Grafikkarte, oder Netzwerkkarte muss präsentiert werden das Betriebssystem, das in der virtuellen Maschine ausgeführt wird, sodass das Betriebssystem "Gast" der Meinung ist, dass es die vollständige Kontrolle über diese Hardware hat. Das Hauptbetriebssystem (nach Sicherheitsanforderungen) muss sich vor Programmen schützen, die direkt auf Hardware zugreifen, und dies schränkt das Gastbetriebssystem ein.

Dazu müssen sie "virtuelle" Hardware für alles im Computer emulieren. Der gesamte Code wird jetzt nativ vom Prozessor ausgeführt, sodass er nicht langsam ist, sondern jeder von diese virtuellen Hardwareteile müssen in Software geschrieben sein, und dies führt sowohl zu einer geringen Leistungseinbuße als auch möglicherweise zu einer hohen Funktionseinbuße.

Was das bedeutet, ist, dass Ihre virtuelle Grafikkarte nicht die gleichen Funktionen haben kann und wird wie Ihre [[34]}echte [[35]} Grafikkarte. Um die meiste Leistung zu erzielen, kann die virtuelle Hardware geschrieben werden, um die am häufigsten verwendeten Funktionen zu unterstützen, und 3D-Rendering ist jetzt in einer virtuellen Maschine möglich, aber immer noch nicht das gleiche wie echte hardware.

Dies bedeutet, dass das Hostbetriebssystem die besten Hardwareoptionen erhält, während das Gastbetriebssystem die generischen Hardwareoptionen erhält.

Eine virtuelle Maschine ist nicht so gut wie echte Hardware, sie ist nur ein Werkzeug, um die Arbeit mit den Werkzeugen von einem System auf ein anderes zu erleichtern.

Also, was mache ich?

Sie müssen auswählen, was der Hauptzweck Ihres Computers sein soll.

Wenn sie spielen möchten die neuesten Spiele auf Ihrem High-Power-Grafikkarte und verwenden Sie die gleichen Grafikkarten Macht volle 1080p-Filme auf Ihrem 400" HDMI-TV zu spielen, aber nur gelegentlich wollen einige Linux-Programmierung zu tun, dann kann Windows Ihre beste Wette mit Linux als Gast sein.

Wenn Sie auf dem Linux-Kernel arbeiten wollen, Hardware-Treiber für Geräte in Ihrem Computer machen, und gelegentlich etwas Software für Windows schreiben und testen Sie es auf einer guten Annäherung an ein "Standard" Windows-System dann kann es sein, Sie sind besser mit Linux als host und Windows als Gast.

Wenn Sie die Benutzerfreundlichkeit eines Mac mögen, aber für Windows programmieren möchten (oder es ein Softwarepaket gibt, das nur Windows ist), dann ist das auch eine Option.

Ich sage nicht, dass Linux keine Spiele spielen kann oder dass macOS nichts für Programmierer ist, da dies einfach ein Lügenpaket wäre. Es ist nur so, dass die eine Person, die sagen kann, welches Betriebssystem besser zu dem passt, was Sie tun möchten, Sie.

Du musst wirklich verstehen Sie zuerst, was Ihre Maschine tun soll . Nur dann können Sie herausfinden, was eine virtuelle Maschine für Sie tun kann.

Um Ihre Fragen zu beantworten:

Will the graphics and video rendering quality will be just as good?

- Nr. Die emulierte Grafikkarte bietet möglicherweise einige Funktionen der Host - Grafikkarte, unterstützt jedoch wahrscheinlich keine komplexen Funktionen wie Hardwarebeschleunigung oder CUDA-Programmierfunktionen.

Will there be any hardware issue such as using HDMI or WiDi?

Auch diese zusätzlichen Funktionen werden wahrscheinlich kein Merkmal der emulierten / virtuellen Hardware sein, die ist verfügbar.

Will applications run just as smoothly as long as enough RAM is allocated?

Die meisten Anwendungen (solange sie keine spezifischen Hardwarefunktionen erfordern) laufen fast so schnell wie auf echter Hardware, solange Sie weder den Host noch den Gast verhungern des Speichers.

 11
Author: Mokubai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-12 13:48:39

Virtuelle Maschinen (VMs) laufen immer langsamer als das Hostsystem, da das Gastsystem den Host auffordern muss, eine Schnittstelle mit Hardware wie Grafikkarte, Festplatten, Speicher usw. herzustellen. weil es ein Programm ist, das im Hostsystem ausgeführt wird und keine direkte Kontrolle über die Hardware hat. Wenn Ihre Hardware jedoch damit umgehen kann, ist die Langsamkeit möglicherweise nicht zu auffällig.

Der Grund dafür ist, dass der Prozessor jeweils nur einen Befehl ausführen kann. Programm in der Regel bestehen aus Tausenden oder Millionen von Maschinenanweisungen. Wenn der Computer gestartet wird, scannt er den Master Boot Record (MBR) nach einem Bootloader. Der bootloader startet dann den kernel. Der Kernel ist der Hauptprozess, der die gesamte Hardware steuert. Multitasking, bei dem zwischen mehreren Aufgaben gewechselt wird, ermöglicht es uns, mehr als ein Programm gleichzeitig auszuführen, obwohl zu einem bestimmten Zeitpunkt nur eines ausgeführt wird. Die meisten Prozessoren verbringen nur etwa 20% ihrer Zeit mit mathematischen Berechnung. Mit Multi-Core-Prozessoren kann der nächste Befehl abgerufen werden, während auf einen anderen Kern gewartet wird, um zu rechnen, wodurch die Leerlaufzeit verkürzt und das System erheblich beschleunigt wird. Zusätzlich zum Kernel gibt es die Shell (die eine Schnittstelle für Benutzer bereitstellt), Dienste/Daemons (Prozesse, die im Hintergrund ausgeführt werden, z. B. zur Unterstützung des Systems, der Sicherheit usw.), und-Anwendungen.

Virtualisierungssoftware ist eine Anwendung, die wie jede andere Anwendung von der Kernel. Daher muss der Kernel der VM warten, bis Permisson vom Host-Kernel etwas tut, und wird häufig unterbrochen. Je mehr Prozesse auf dem Hostsystem ausgeführt werden, desto weniger Ausführungszeit wird der VM zugewiesen, wodurch sie langsamer wird. VMs laufen normalerweise drei-bis viermal langsamer als physische Maschinen.

Wenn Sie zu run Spiele oder ähnliches würde ich reservieren, viel RAM und wie viel kernel-Zeit wie möglich. Mehrere Prozessoren helfen. Jedoch, Zuweisung zu viel RAM verlangsamt das System, da der Zugriff auf Daten länger dauert und zu übermäßigem Festplatten-Caching auf dem Hostsystem führen kann. Andererseits führt zu wenig zu übermäßigem Festplatten-Caching auf dem Gast. Da Windows so hungrig nach Ressourcen ist, würde ich mindestens 2 bis 4 GB RAM zuweisen, aber nicht mehr als die Hälfte Ihres Arbeitsspeichers der VM zuweisen.

Wenn es zu langsam reagiert, könnte eine bessere Option Dual-Boot sein. Auf diese Weise können beide vollständig nutzen systemressourcen, aber leider können Sie nur einen nach dem anderen laufen. Wenn Sie dies tun, werden Sie wahrscheinlich mindestens drei Partitionen wollen: eine für Linux, eine für Windows und eine (oder mehr) für Ihre Dateien.

 8
Author: ctype.h,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-11-01 02:24:20

So. VMWare Player ist ein Typ-2-Hypervisor. Das bedeutet, ein Gast sitzt auf einem OS. Auf einem Typ-1-Hypervisor befindet sich die Virtualisierungsplattform über der Hardware. Es ist, weil VMware Player auf einem Typ-2-Hypervisor ist, dass es langsamer als etwas auf einem Typ läuft 1. VMware Player bietet jedoch die Möglichkeit, Ihre Hardwareanforderungen für Ihre VM anzupassen. Wenn Sie also ein System mit einem Quad-Core-Prozessor mit 4 GB Ram haben, können Sie es sich leisten, 1 oder 2 Kerne und dann 2 GB RAM anzubieten (min. req für Windows x64), um eine VM zu haben, die effizient ausgeführt wird.

Zum Beispiel habe ich ein XPS 14z und Windows 7 darauf. Ich führe auch eine Windows 7-VM aus - ich habe ihr 2 GB RAM und 2 Prozessorkerne (meiner 4) zugewiesen.

Wenn ich also Programme darauf starte (Notepad++, Transwiz, Outlook, Word, Excel usw.), gibt es keine merkliche Verlangsamung. Ich habe noch nie versucht, intensive Software darauf auszuführen (Photoshop usw.). Je nachdem, wofür Sie es verwenden - ein Hypervisor vom Typ 2 passt möglicherweise oder auch nicht Ihre Bedürfnisse. Wenn Sie es für Spiele verwenden möchten, hängt es vom Spiel ab. Ich habe ein paar Steam-Spiele darauf ausgeführt und hatte keine Probleme (ich RDP manchmal von meinem Fedora-Computer auf meine VM), aber es hängt wirklich von den Anforderungen des Spiels ab. Für Spiele in jeder Hinsicht würde ich keine VM verwenden. Ich spiele auf meinem W7-Computer und verwende dann eine VM (Fedora), um andere Dinge zu tun. Sie möchten, dass die intensivsten Anwendungen zuerst Zugriff auf Hardware haben.

 6
Author: Ethabelle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-01-13 15:35:11

Also habe ich Windows 7 in Linux Mint 12 über VMware Player installiert. Das Video-Rendering von Windows 7 in Linux Mint ist schlechter als Windows 7 als Hauptbetriebssystem. Ich habe nichts konfiguriert und weiß nicht, ob etwas konfiguriert werden muss, um das Video-Rendering von AVI-Dateien zu verbessern.

Ich habe festgestellt, dass die Geschwindigkeit beim Ausführen von Apps auf meinem 8 GB-Speichercomputer schnell ist. Das war kein Thema. Das heißt, ich habe nichts super Speicherintensives wie Video-oder Fotobearbeitung ausprobiert. Nur reguläres Büro Apps.

 1
Author: Kamil Sindi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-01-16 19:51:59

Das Problem mit der VM-Technologie besteht darin, dass sie Ihren physischen Speicher nicht auf die gleiche Weise ansprechen kann, wenn Sie ein tatsächliches Betriebssystem mit diesem Speicher ausführen. Ein VM-Image verwendet logische Speicheradressierung Wenn es mit demselben physischen Adressierungsspeicher ausgeführt wird, können Sie nicht beide Betriebssysteme gleichzeitig ausführen. Obwohl die modernen VMs einen langen Weg zurückgelegt haben, könnte man sogar sagen, 90%-95% Qualitätsspielen, fehlt es ihnen immer noch an der Fähigkeit, Ihre Spiele mit voller Geschwindigkeit auszuführen. Das 90%-95% ist rein auf logische Adressierung vs physische Adressierung des Speichers Ihres Computers. Jetzt, da nur Speicheradressierung/Zuweisung Argument abdeckt, ist das andere Problem Windows DirectX verwendet, soweit ich weiß, keine VM-Software einschließlich VMware volle Unterstützung für eine der neuesten DX hat. Also, wenn Sie etwas über DX 9 hinaus verwenden, sind Sie ziemlich geschraubt.

QEMU unter Linux ist wahrscheinlich das Beste für Spiele!

 1
Author: Random Guy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-06-17 23:50:38