Czy system Windows kiedykolwiek obsługiwał architekturę sprzętową inną niż x86?

66

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?

xiaokaoy
źródło
49
Trudno w to uwierzyć, ale Microsoft był jedną z najbardziej „otwartych” firm na świecie. Oryginalny MS-DOS był kompatybilny z dziesiątkami różnych platform i innych systemów operacyjnych , a system Windows został zaprojektowany w tym samym stylu. Program Excel został zbudowany na maszynie wirtualnej działającej na wielu różnych platformach. To nie był przypadek - w ten sposób komputer IBM (i klony) stał się de facto standardem tak wszechobecnym i szybkim, a Microsoft dostarczył podstawowe oprogramowanie. Który wybierasz - system, który może uruchamiać wszystkie twoje aplikacje, lub ten, w którym sprzedawca jest zablokowany? :)
Luaan,
13
Sam zainstalowałem system Windows zarówno na Alphie, jak i MIPS, ale to było dawno, dawno temu. Kiedy byłem stażystą Microsoftu, jednym z moich zadań było uruchamianie pakietów testowych Visual Basic na sprzęcie, którego deweloperzy nie mieli na swoich biurkach.
Eric Lippert,
7
@Luaan - nie tylko „otwarta architektura”, ale także „otwarty system operacyjny”! Jak inaczej wytłumaczyć, że kiedyś ich oficjalnie licencjonowany wariant Uniksa był najczęściej instalowanym Uniksem na świecie - patrz Xenix na Wikipedii .
davidbak,
4
Nawet dzisiaj istnieją wersje systemu Windows działające na architekturach innych niż x86 / x64, czyli Windows RT dla urządzeń ARM.
TigerhawkT3
2
@Luaan Był to także prawdziwy problem, który wymagał rozwiązania, ponieważ szczególnie wczesne klony komputerów IBM nie zawsze były w pełni kompatybilne z IBM PC. Wcześniej „100% kompatybilność z IBM” było punktem sprzedaży dla dostawców sprzętu. Tego rodzaju rzeczy przyjmujemy dziś za pewnik, ale w pierwszej połowie lat osiemdziesiątych nie były wcale zagwarantowane. Microsoft tak naprawdę nie wszedł na rynek detaliczny systemów operacyjnych przed MS-DOS 5.0, który pojawił się na rynku w 1991 roku. Tak, rok po przełomowej historii sukcesu Windows 3.0.
CVn

Odpowiedzi:

82

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 .

jcbermu
źródło
7
IIRC strona Wikipedii ma przyzwoity elementarz, na podstawie którego architektów, kto to zrobił i dlaczego nie weszli na rynek.
Journeyman Geek
13
Uważam, że oryginalną platformą programistyczną była i860. Był to celowy wybór, aby powstrzymać „386-isms” przed wejściem w projekt. Przez pewien czas Microsoft wydawał również aplikacje dla różnych architektur; Mam płytę CD z programem Word dla Windows 6 zbudowaną dla Windows NT na i386, Alpha, MIPS i PowerPC.
Ed Avis,
4
Pamiętam, jak próbowałem kupić oprogramowanie od Microsoftu na naszych systemach Alpha NT. Sprzedawcy Microsoft w Wielkiej Brytanii nie wiedzieli, co to był procesor Alpha. DEC dał nam maszyny bardzo tanie jako dostawca usług internetowych, w końcu po prostu umieściliśmy na nich uniks i użyliśmy ich jako X-Warunki, a nie do projektu przeniesienia do NT.
Ian Ringrose,
4
„Pierwotnym pomysłem było posiadanie wspólnej podstawy kodu z niestandardową warstwą abstrakcji sprzętu (HAL) dla każdej platformy” sprawia, że ​​brzmi to tak, jakby w dzisiejszych czasach nie było rzeczywistej warstwy HAL, co byłoby nieprawidłowe. W przypadku jednego systemu Windows NT obecnie obsługuje on również ARM, a nawet jeśli obsługuje się tylko x86, istnieje szeroka gama wersji x86 (największa oczywiście to x64) i poprawki błędów dla różnych procesorów, płyt głównych i innych elementów.
Voo
4
Był też port zewnętrzny do Sparc. Później obsługa PowerPC została wskrzeszona dla XBox360. Krótko przed tym dodano obsługę IA64. Następnie dodano obsługę AMD64. Najnowszym dodatkiem jest obsługa ARM. Oryginalna platforma rozwój był i860; nigdy nie było przeznaczone na tę platformę, zostało zrobione wyłącznie dlatego, że było „dziwne” i maksymalnie różniło się od x86, PowerPC, MIPS i Co, w celu zapewnienia przenośności.
Jörg W Mittag
46

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

Tonny
źródło
2
Windows NT jako Windows 10 na telefony obsługuje ARM.
Tamoghna Chowdhury
16
„IA-32” oznacza po prostu „32-bitowy x86”, który jest jedyną wersją x86 obsługiwaną przez system Windows NT, dopóki nie pojawił się x64 / AMD64. Prawdopodobnie x64 / AMD64 jest tylko odmianą x86, chociaż Windows ma rozbudowane narzędzia specjalnie do obsługi różnic. Z drugiej strony „IA-64” to zupełnie nowa 64-bitowa architektura, która zasilała układy Itanium; nigdy nie było czegoś takiego jak 32-bitowy Itanium.
IMSoP,
9
Windows CE nie był wariantem NT ani portem NT. Miał swoje własne unikalne i różne jądro, w tym zupełnie inną architekturę procesu i mapę pamięci. Dużo kodu NT zostało do niego przeniesione z systemu operacyjnego, np. Cały stos sieci i wiele innych rzeczy, i oczywiście na poziomie użytkownika wspierało Windows API.
davidbak
7
Windows CE działał również na niektórych wariantach pocessorów Hitachi Super-H. Słynny przykład to Sega Dreamcast (SH4), ale myślę też, że były pewne urządzenia PDA oparte na SH3, które działały pod Windows CE.
Michael
3
Windows Phone to nazwa marketingowa. Aż do WP7 była częścią linii CE, WP8 jest pochodną NT. Podobnie Windows 10 IOT jest również dostosowanym jądrem NT, podobnie jak 3 generacja XBoxen.
MSalters
21

Windows XP 64bit i Windows Server 2003-2008R2 obsługują architekturę Intel Itanium IA-64.

JamesRyan
źródło
15

Tablety Windows Surface wydane w 2012 roku korzystały z 32-bitowej architektury ARM , ta konkretna wersja została nazwana Windows RT :

Jest to zasadniczo edycja systemu Windows 8.x zbudowana dla 32-bitowej architektury ARM (ARMv7).

[…]

Ze względu na inną architekturę urządzeń opartych na ARM w porównaniu do urządzeń x86, Windows RT ma ograniczenia kompatybilności oprogramowania.

Windows RT został wycofany.

Źródło: Wikipedia .

glin
źródło
3

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:

Ghanima
źródło
3

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.

płyn do płukania
źródło
1

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) .

Tamoghna Chowdhury
źródło
MS odmówił zezwolenia na uzbrojenie aplikacji stacjonarnych innych firm, nawet jeśli zostały one ponownie skompilowane. Było to czysto sztuczne ograniczenie (o czym świadczy fakt, że ktoś znalazł sposób na ominięcie go)
płukanie
@plugwash W rzeczywistości wspomniałem o sztuczności ograniczeń dotyczących uruchamiania aplikacji komputerowych skompilowanych dla ARM w drugim akapicie. Proszę przeczytaj to.
Tamoghna Chowdhury
-1

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.

ostrożny
źródło