Microsoft Windows Internals, wydanie 4 mówi:
Architektura procesora Intel x86 określa cztery poziomy uprawnień lub pierścienie, aby chronić kod systemowy i dane przed przypadkowym lub złośliwym nadpisaniem przez kod o mniejszych uprawnieniach. System Windows używa poziomu uprawnień 0 (lub pierścienia 0) dla trybu jądra i poziomu uprawnień 3 (lub pierścienia 3) dla trybu użytkownika. System Windows używa tylko dwóch poziomów, ponieważ niektóre architektury sprzętowe obsługiwane w przeszłości (takie jak Compaq Alpha i Silicon Graphics MIPS) implementowały tylko dwa poziomy uprawnień .
Czy to oznacza, że Windows kiedyś obsługiwał Alpha i MIPS?
windows
privileges
x86
mips
xiaokaoy
źródło
źródło
Odpowiedzi:
Microsoft wydał Windows NT 3.1 w 1993 roku jako pierwszą czysto 32-bitową wersję systemu Windows.
Windows NT został opracowany jako system operacyjny obejmujący wiele architektur. Początkowo obsługiwane różne architektury procesorów, w tym IA-32, DEC Alpha, MIPS i PowerPC.
Pierwotnym pomysłem było posiadanie wspólnej podstawy kodu z niestandardową warstwą abstrakcji sprzętu (HAL) dla każdej platformy. Jednak obsługa MIPS, Alpha i PowerPC została później porzucona w Windows 2000 .
źródło
O ile mi wiadomo, istnieje 8 architektur bazowych (i kilka podwariantów), z których tylko 2 są obecnie obsługiwane w systemie Windows 10.
Windows 1.0 do 3.11, Windows 95, 98 i Millenium Edition
x86 (warianty 16- i 32-bitowe, w tym 8086, 80186, 80286, 80386, 80486, Pentium, Pentium Pro, Pentium II, Pentium III, P4, Rdzeń, Core Duo, Core-I oraz różne konstrukcje Celeron i Atom.) zawiera także różne kompatybilne procesory AMD i NEC.
Windows CE
MIPS, x86, ARM (dzięki @ pjc50).
(Nie jestem pewien, czy CE kiedykolwiek działał na Alpha, PowerPC).
Windows NT
x86, x64 (lub amd64, używane są obie nazwy), MIPS, Alpha, IA32, IA64, PowerPC.
Wsparcie dla MIPS, Alpha i PowerPC zostało porzucone w Windows 2000. Itanium był serwerem zaczynającym się od Windows 2000 i 32-bitowy (IA32) został usunięty w 2008 i 64-bitowy (IA64) z Server 2012, jeśli dobrze pamiętam. Tylko x86 (ograniczone do niektórych specjalnych netbooków / tabletów) i x64 są nadal aktualne dla Windows 10.
telefon Windows
ARM, (może także MIPS?)
Windows 10 dla IoT
x64, ARM
źródło
Windows XP 64bit i Windows Server 2003-2008R2 obsługują architekturę Intel Itanium IA-64.
źródło
Tablety Windows Surface wydane w 2012 roku korzystały z 32-bitowej architektury ARM , ta konkretna wersja została nazwana Windows RT :
Windows RT został wycofany.
Źródło: Wikipedia .
źródło
Windows 10 IoT Core działa na 32-bitowych architekturach ARM (IA-32, ARMv7), takich jak Raspberry Pi 3. Ma jednak pewne ograniczenia.
Źródła:
źródło
Linia Windows NT wspierała różne architektury na przestrzeni lat.
Obsługiwane były wersje MIPS i Alpha od wersji 3.1 do 4.0 (Alpha faktycznie dotarła jako kandydat do wydania dla Windows 2000 , ale nie dotarła do wersji ostatecznej). PowerPC był widoczny tylko w wersji 4.0.
IA64 (Itanium) był obsługiwany w systemie Windows XP. Był również obsługiwany w linii serwera od Server 2003 do Server 2008 R2.
Microsoft przeniósł system Windows na ARM, ale następnie sztucznie okaleczył powstałe systemy na różne sposoby. W systemie Windows RT (wersja ARM systemu Windows 8) system był prawie kompletny, ale aplikacje komputerowe innych firm zostały zablokowane. Dzięki różnym wariantom ARM systemu Windows 10 wydaje się, że komputer zniknął całkowicie.
źródło
Windows NT (jako jądro w Windows RT, WP8, WP8.1 i Windows 10 dla telefonów) obsługuje ARM v7-A (32-bit) i ARM v8-A (64-bit) (Windows 10 dla telefonów aktualnie na Lumia 950 / 950XL z chipsetem Qualcomm Snapdragon 810) obecnie oprócz architektury x86 (w tym x86-64 (Windows AMD64), i386 / i586 / i686 (Windows x86)). Jest to dodatek do obsługiwanych historycznie architektur wymienionych w innych odpowiedziach, takich jak Alpha, MIPS, Itanium i PowerPC.
Jak zauważono w innej odpowiedzi, aplikacje klasyczne Win32 nie mogą natywnie uruchamiać się w systemie Windows NT na ARM (tj. Bez emulacji x86 na ARM), jeśli są skompilowane dla architektury x86 (ponieważ są w większości). Jednak, jak wspomniano w @user 2284570, natywne pliki wykonywalne ARM lub biblioteki dynamiczne mogą działać w systemie Windows NT dla ARM tylko wtedy, gdy (pliki binarne dystrybucji) zostały podpisane cyfrowo przez Microsoft, które to biura utrudniają zewnętrzną dystrybucję programistów natywnych aplikacji ARM (w przeciwieństwie do zasad z architekturą x86 lub innymi wcześniej obsługiwanymi architekturami). Microsoft zdecydował się nie obsługiwać aplikacji Win32 ukierunkowanych na x86 (oprogramowanie dla Windowsa) na poziomie binarnym poprzez emulację w Windows dla ARM, ponieważ kara za emulację byłaby ogromna i całkowicie sprzeczna z idealną wydajnością ARM przy ograniczonym budżecie mocy (niski TDP ).
Uwaga: Interfejs API systemu Windows, o którym tu mowa, jest rodzimym interfejsem API systemu Win32 , a nie wersją .NET WINAPI ( zarządzaną ). Zgodność aplikacji odnosi się tutaj do zgodności na poziomie binarnym, a nie kompatybilności na poziomie źródła, jeśli nie było to oczywiste.
Jednak wraz z pojawieniem się platformy Windows RT, a teraz Universal Windows Platform (UWP), stało się możliwe tworzenie oprogramowania niezależnego od architektury dla systemu Windows (wcześniej oprogramowanie musiało być emulowane lub rekompilowane, aby działało w systemie Windows na różnych architekturach) .
źródło
Windows NT działał na układach MIPS i Alpha. Uruchomiłem NT4 na Alphie. Trzeba było flashować inne oprogramowanie, aby uruchomić NT zamiast VMS.
źródło