Microsoft Windows Internals, 4th Edition, sagt:
Die Architektur des Intel x86-Prozessors definiert vier Berechtigungsstufen (Ringe), um zu verhindern, dass Systemcode und Daten versehentlich oder böswillig durch Code mit geringeren Berechtigungen überschrieben werden. Windows verwendet die Berechtigungsstufe 0 (oder den Ring 0) für den Kernelmodus und die Berechtigungsstufe 3 (oder den Ring 3) für den Benutzermodus. Der Grund, warum Windows nur zwei Ebenen verwendet, besteht darin, dass einige in der Vergangenheit unterstützte Hardwarearchitekturen (wie Compaq Alpha und Silicon Graphics MIPS) nur zwei Berechtigungsstufen implementiert haben .
Bedeutet dies, dass Windows einmal Alpha und MIPS unterstützt hat?
windows
privileges
x86
mips
xiaokaoy
quelle
quelle
Antworten:
Microsoft veröffentlichte Windows NT 3.1 1993 als erste reine 32-Bit-Version von Windows.
Windows NT wurde als Betriebssystem mit mehreren Architekturen entwickelt. Zunächst wurden verschiedene CPU-Architekturen unterstützt, darunter IA-32, DEC Alpha, MIPS und PowerPC.
Die ursprüngliche Idee war, eine gemeinsame Codebasis mit einem benutzerdefinierten Hardware Abstraction Layer (HAL) für jede Plattform zu haben. Die Unterstützung für MIPS, Alpha und PowerPC wurde jedoch später in Windows 2000 eingestellt .
quelle
Soweit mir bekannt ist, gibt es 8 Basisarchitekturen (und eine Reihe von Untervarianten), von denen heute mit Windows 10 nur noch 2 unterstützt werden.
Windows 1.0 bis 3.11, Windows 95, 98 und Millenium Edition
x86 (16-Bit- und 32-Bit-Varianten, einschließlich 8086-, 80186-, 80286-, 80386-, 80486-, Pentium-, Pentium Pro-, Pentium II-, Pentium III-, P4-, Core-, Core Duo-, Core-I- und verschiedener Celeron- und Atom-Designs.) Enthält auch verschiedene kompatible AMD- und NEC-CPUs.
Windows CE
MIPS, x86, ARM (danke @ pjc50).
(Ich bin mir nicht sicher, ob CE jemals auf Alpha oder PowerPC ausgeführt wurde.)
Windows NT
x86, x64 (oder amd64, beide Namen werden verwendet), MIPS, Alpha, IA32, IA64, PowerPC.
Die Unterstützung für MIPS, Alpha und PowerPC wurde in Windows 2000 eingestellt. Itanium war nur Server mit Windows 2000 und 32-Bit (IA32) wurde für 2008 und 64-Bit (IA64) mit Server 2012 eingestellt, wenn ich mich richtig erinnere. Derzeit sind nur noch x86 (auf einige spezielle Netbook- / Tablet-Geräte beschränkt) und x64 für Windows 10 gültig.
Windows Phone
ARM (vielleicht auch MIPS?)
Windows 10 für das Internet der Dinge
x64, ARM
quelle
Windows XP 64bit und Windows Server 2003-2008R2 unterstützen die Intel Itanium IA-64-Architektur.
quelle
Für die 2012 veröffentlichten Windows Surface-Tablets wurde eine 32-Bit-ARM-Architektur verwendet . Diese spezielle Version wurde als Windows RT bezeichnet :
Windows RT wurde eingestellt.
Quelle: Wikipedia .
quelle
Windows 10 IoT Core läuft auf einer 32-Bit-ARM-Architektur (IA-32, ARMv7), wie dem Raspberry Pi 3. Es gibt jedoch einige Einschränkungen.
Quellen:
quelle
Die Windows NT- Linie hat im Laufe der Jahre verschiedene Architekturen unterstützt.
MIPS und Alpha wurden von 3.1 bis 4.0 unterstützt (Alpha hat es tatsächlich bis zu einem Release Candidate für Windows 2000 geschafft , aber nicht bis zur endgültigen Version). PowerPC wurde nur in 4.0 gesehen.
IA64 (Itanium) wurde in Windows XP unterstützt. Es wurde auch in der Serverlinie von Server 2003 bis Server 2008 R2 unterstützt.
Microsoft hat Windows nach ARM portiert, die resultierenden Systeme jedoch auf verschiedene Weise künstlich lahmgelegt. Mit Windows RT (der ARM-Version von Windows 8) war das System ziemlich vollständig, aber Desktop-Apps von Drittanbietern wurden gesperrt. Mit den verschiedenen ARM-Varianten von Windows 10 scheint der Desktop komplett verschwunden zu sein.
quelle
Windows NT (als Kernel in Windows RT, WP8, WP8.1 und Windows 10 für Handys) unterstützt ARM v7-A (32-Bit) und ARM v8-A (64-Bit) (Windows 10 für Handys derzeit auf der Lumia 950 / 950XL mit Qualcomm Snapdragon 810-Chipsatz-Architekturen, derzeit zusätzlich zu x86 (einschließlich x86-64 (Windows AMD64), i386 / i586 / i686 (Windows x86)). Dies gilt zusätzlich zu den historisch unterstützten Architekturen, die in anderen Antworten wie Alpha, MIPS, Itanium und PowerPC erwähnt wurden.
Wie in einer anderen Antwort erwähnt, können Win32-Desktopanwendungen unter Windows NT unter ARM (dh ohne x86-Emulation unter ARM) nicht nativ ausgeführt werden, wenn sie für die x86-Architektur kompiliert wurden (wie dies meistens der Fall ist). Wie jedoch von @user 2284570 erwähnt, können ARM-native ausführbare Dateien oder dynamische Bibliotheken in Windows NT für ARM nur ausgeführt werden, wenn sie (die Distributionsbinärdateien) von Microsoft digital signiert wurden, wobei diese Büros die Verteilung von ARM-nativen Apps durch Entwickler von Drittanbietern behindern (Im Gegensatz zur Richtlinie mit x86 oder anderen zuvor unterstützten Architekturen). Microsoft hat sich dafür entschieden, x86-bezogene Win32-Apps (Desktop Windows-Software) nicht auf Binärniveau über die Emulation unter Windows für ARM zu unterstützen, da der Leistungsverlust für die Emulation sehr hoch wäre und vollständig gegen das ARM-Leistungsideal bei einem engen Strombudget (niedrige TDP) verstoßen würde ).
Hinweis: Die Windows-API, auf die ich hier verweise, ist die native Win32- API, nicht die .NET WINAPI- Version ( verwaltet ). App-Kompatibilität bezieht sich hier auf die Kompatibilität auf Binärebene, nicht auf die Kompatibilität auf Quellenebene, wenn dies nicht offensichtlich war.
Mit dem Aufkommen der Windows RT-Plattform und jetzt der Universal Windows Platform (UWP) ist es jedoch möglich geworden, architekturunabhängige Software für Windows zu erstellen (bisher musste Software entweder emuliert oder neu kompiliert werden, um unter Windows auf verschiedenen Architekturen ausgeführt zu werden). .
quelle
Windows NT wurde früher auf MIPS- und Alpha-Chips ausgeführt. Ich habe NT4 auf einem Alpha ausgeführt. Sie mussten eine andere Firmware flashen, um NT anstelle von VMS zu starten.
quelle