Heute habe ich einige Neuigkeiten ( 1 , 2 , 3 , 4 ) über Microsoft Windows 8 gelesen und festgestellt, dass eine der neuen Funktionen darin besteht, dass es über ein ARM-Prozessor- basiertes System ausgeführt werden kann. Ich frage mich daher, warum dies mit der aktuellen Release-Version von Windows (Seven) nicht möglich ist.
Welche tatsächlichen Einschränkungen bestehen für Windows 7, wenn Sie es auf einem ARM-Prozessor-basierten System installieren? Es hätte mit Kernel-Version, Treibern, Architektur oder sogar einer Mischung dieser Faktoren zu tun?
Bis ich weiß, dass ich Linux auf einem ARM installieren kann, also nicht einmal Windows Seven unter einer virtuellen VMWare-Maschine auf einem ARM installieren kann?
Antworten:
Damit Binärdateien auf einem ARM-Prozessor ausgeführt werden können, müssen sie speziell für diesen Prozessor kompiliert oder in einem Emulator ausgeführt werden.
Da Linux-Systeme Open Source sind, können Benutzer sie speziell für ARM-Systeme kompilieren und jeden x86-spezifischen Code neu schreiben. Da die Quelle für Windows geschlossen ist, kann sie nicht erneut kompiliert und ausgeführt werden, es sei denn, Microsoft veröffentlicht eine ARM-Version.
Es gibt andere Probleme beim Umstieg auf ARM-Systeme, aber dies ist wahrscheinlich das größte.
Soweit ich weiß, emuliert VMware kein x86. Ich denke, qemu kann das, aber ich habe es vorher nicht für die x86-Emulation von ARM verwendet, sondern nur für die x86-Emulation von ARM. Es wird einen erheblichen Leistungseinbruch geben, wenn es funktioniert.
Während jedes Programm für die Architektur kompiliert werden muss, auf der es ausgeführt werden soll, muss ein Betriebssystem häufig viel stärker an die spezifische Architektur angepasst werden. Betriebssysteme sind für Dinge wie Zeitplanung und Taskwechsel verantwortlich, die auf sehr tiefen Ebenen mit dem Prozessor zusammenarbeiten.
quelle
Die einfache Antwort lautet: "MS hat keinen Port freigegeben" (obwohl Windows 8 auf ARM portiert werden soll), da dies zu diesem Zeitpunkt keinen geschäftlichen Sinn ergab. Wenn Sie in gehen möchten, wenn MS könnte ...
Nun, in der Vergangenheit lief die NT-Familie auf einer Reihe von Prozessoren - NT lief auf Alpha, PPC und MIPS, und es gab geplante Ports für die Clipper- und SPARC-Architekturen. Dies ist möglich, weil Windows NT die hardwareabhängigen Teile des Codes (die HAL ) abstrahiert und nur diesen Abschnitt neu schreibt und alles andere neu kompiliert (obwohl .NET- basierte Software theoretisch angeblich hardwareunabhängig ist).
Im Gegensatz zu Linux, das, wenn ich mich recht erinnere, für jede Architektur separate Kernel-Zweige hat, ist angeblich NUR die HAL hardwarespezifisch, und der Rest ist normal. Ich glaube, dass eine HAL für die fragliche ARM-Plattform relativ sein sollte trivial und unterscheidet sich nicht von der Codierung für verschiedene Hardware-Bits, insbesondere wenn das System ansonsten konventionell war, z. B. unter Verwendung von PCI-E und anderen Schnittstellen nach Industriestandard.
Angenommen, Microsoft hat einen ARM-Port von Windows 7 veröffentlicht, und jede Software, die nicht interpretiert wird oder auf einer VM wie JVM, LLVM oder CLR ausgeführt wird, muss neu kompiliert oder auf einer Übersetzungsebene wie Rosetta oder der alten 68K-Kompatibilität ausgeführt werden Schicht auf älteren Macs , die x86-spezifischen Code kennt (und das in der Emulation transparent ausführt ), und es gibt genügend Prozessorleistung für die Übersetzung.
quelle
Sie können keine Binärdateien auf Prozessoren ausführen, die eine andere Architektur als die Architektur haben, zu der die Binärdateien kompiliert wurden.
Sie können unter ARM kein AMD64-Linux ausführen, genauso wie Sie auf einem i386-Prozessor (32-Bit) kein AMD64-Linux ausführen können. Sie haben nur die Möglichkeit, einen ganzen Prozessor zu emulieren (siehe qemu ) und dann Ihr Bestes zu geben.
VMware / VirtualBox sind keine Prozessoremulatoren, daher haben Sie dort auch Pech.
quelle