Windows đã bao giờ hỗ trợ bất kỳ kiến ​​trúc phần cứng nào ngoài x86 chưa?


66

Microsoft Windows Internals, 4th Edition cho biết:

Kiến trúc của bộ xử lý Intel x86 xác định bốn cấp đặc quyền, hoặc vòng, để bảo vệ mã hệ thống và dữ liệu khỏi bị ghi đè hoặc vô tình hoặc độc hại bởi mã của đặc quyền kém hơn. Windows sử dụng mức đặc quyền 0 (hoặc vòng 0) cho chế độ kernel và cấp đặc quyền 3 (hoặc vòng 3) cho chế độ người dùng. Lý do Windows chỉ sử dụng hai cấp độ là một số kiến ​​trúc phần cứng được hỗ trợ trong quá khứ (như Compaq Alpha và Silicon Graphics MIPS) chỉ thực hiện hai cấp đặc quyền .

Điều này có nghĩa là Windows đã từng hỗ trợ Alpha và MIPS?


49
Có thể khó tin, nhưng Microsoft là một trong những công ty "kiến trúc mở" nhất trên thế giới. MS-DOS ban đầu tương thích với hàng chục nền tảng khác nhau và các HĐH khác , và Windows được thiết kế theo cùng một hướng. Excel được xây dựng trên một máy ảo chạy trên nhiều nền tảng khác nhau. Đây không phải là ngẫu nhiên - đó là cách mà IBM PC (và bản sao) trở thành tiêu chuẩn thực tế rất phổ biến và nhanh chóng, và Microsoft là người cung cấp phần mềm cơ bản như thế nào. Bạn chọn cái nào - hệ thống có thể chạy tất cả các ứng dụng của bạn, hay hệ thống mà nhà cung cấp của bạn đã khóa? :)
Luaan

13
Tôi đã tự cài đặt Windows trên cả Alpha và MIPS nhưng đó là một thời gian dài trước đây. Khi tôi còn là nhân viên thực tập của Microsoft, một trong những công việc của tôi là chạy các bộ thử nghiệm Visual Basic trên phần cứng mà các nhà phát triển không có trên bàn của họ.
Eric Lippert

7
@Luaan - không chỉ là "kiến trúc mở" mà còn là "hệ điều hành mở"! Làm thế nào bạn có thể giải thích rằng tại một thời điểm, biến thể Unix được cấp phép chính thức của họ là Unix được cài đặt phổ biến nhất trên thế giới - xem Xenix tại Wikipedia .
davidbak

4
Thậm chí ngày nay, có những phiên bản Windows chạy trên các kiến ​​trúc khác ngoài x86 / x64, viz Windows RT cho các thiết bị ARM.
TigerhawkT3

2
@Luaan Đó cũng là một vấn đề thực sự cần giải quyết vì các bản sao PC IBM đặc biệt ban đầu không phải lúc nào cũng tương thích hoàn toàn với IBM PC. Trước đây, "100% khả năng tương thích của IBM" là một điểm bán hàng cho các nhà cung cấp phần cứng. Chúng tôi coi những điều đó là điều hiển nhiên ngày nay, nhưng trong nửa đầu thập niên 1980 hoặc lâu hơn, chúng không được đảm bảo. Microsoft đã không thực sự tiến vào thị trường bán lẻ hệ điều hành trước khi MS-DOS 5.0 được tung ra thị trường vào năm 1991. Vâng, một năm sau câu chuyện thành công đột phá của Windows 3.0.
một CVn

Câu trả lời:


82

Microsoft phát hành Windows NT 3.1 vào năm 1993 dưới dạng phiên bản Windows 32 bit hoàn toàn đầu tiên.

Windows NT được phát triển như một hệ điều hành đa kiến ​​trúc. Ban đầu hỗ trợ các kiến ​​trúc CPU khác nhau, bao gồm IA-32, DEC Alpha, MIPS và PowerPC.

Ý tưởng ban đầu là có một cơ sở mã chung với Lớp trừu tượng phần cứng tùy chỉnh (HAL) cho mỗi nền tảng. Tuy nhiên, hỗ trợ cho MIPS, Alpha và PowerPC sau đó đã bị loại bỏ trong Windows 2000 .


7
IIRC trang Wikipedia có một đoạn trích khá hay về các chi tiết về kiến ​​trúc, ai đã làm nó và tại sao họ không đưa ra thị trường.
Journeyman Geek

13
Tôi tin rằng nền tảng phát triển ban đầu là i860. Đây là một sự lựa chọn có chủ ý để ngăn chặn '386-isms' đi vào thiết kế. Trong một thời gian, Microsoft cũng phát hành các ứng dụng cho các kiến ​​trúc khác nhau; Tôi có CD Word cho Windows 6 được xây dựng cho Windows NT trên i386, Alpha, MIPS và PowerPC.
Ed Avis

4
Tôi nhớ lại việc cố gắng mua phần mềm từ Microsoft khi chạy trên các hệ thống Alpha NT của chúng tôi, những người bán hàng của Microsoft ở Anh không biết CPU Alpha là gì. DEC đã cho chúng tôi các máy rất rẻ như một ISP, cuối cùng chúng tôi chỉ đặt unix cho chúng và sử dụng chúng làm Điều khoản X thay vì sau đó để dự án chuyển sang NT.
Ian Ringrose

4
"Ý tưởng ban đầu là có một cơ sở mã chung với Lớp trừu tượng phần cứng tùy chỉnh (HAL) cho mỗi nền tảng" làm cho nó có vẻ như không có HAL thực tế trong những ngày này, điều này sẽ không chính xác. Đối với một Windows NT ngày nay cũng hỗ trợ ARM trong những ngày này và ngay cả khi bạn chỉ hỗ trợ x86, có một loạt các bản sửa đổi cho x86 (bản lớn nhất rõ ràng là x64) và các lỗi cho các bộ xử lý, bo mạch chính và bất cứ thứ gì khác.
Voo

4
Ngoài ra còn có một cổng của bên thứ ba để Sparc. Sau đó, hỗ trợ PowerPC đã được phục hồi cho XBox360. Ngay trước đó, hỗ trợ IA64 đã được thêm vào. Sau đó, hỗ trợ AMD64 đã được thêm vào. Sự bổ sung mới nhất là hỗ trợ ARM. Các gốc nền tảng phát triển là i860; nó không bao giờ có ý định phát hành cho nền tảng đó, nó được thực hiện hoàn toàn vì nó "lạ" và khác biệt tối đa so với x86, PowerPC, MIPS và Co, để đảm bảo tính di động.
Jörg W Mittag

46

Theo như tôi biết, có 8 kiến ​​trúc cơ sở (và một số biến thể phụ) trong đó chỉ có 2 biến thể được hỗ trợ cho đến ngày nay với Windows 10.

Windows 1.0 đến 3.11, Windows 95, 98 và Millenium Edition

x86 (các biến thể 16 bit và 32 bit, bao gồm 8086, 80186, 80286, 80386, 80486, Pentium, Pentium Pro, Pentium II, Pentium III, P4, Core, Core Duo, Core-I và các thiết kế Celeron và Atom khác nhau.) cũng bao gồm các CPU AMD và NEC tương thích khác nhau.

Windows CE

MIPS, x86, ARM (cảm ơn @ pjc50).
(Không chắc CE có chạy trên Alpha, PowerPC không.)

Windows NT

x86, x64 (hoặc amd64, cả hai tên đều được sử dụng), MIPS, Alpha, IA32, IA64, PowerPC.
Hỗ trợ cho MIPS, Alpha và PowerPC đã bị hủy trong Windows 2000. Itanium là máy chủ chỉ bắt đầu với Windows 2000 và 32-bit (IA32) đã bị hủy trong năm 2008 và 64-bit (IA64) với Server 2012 nếu tôi nhớ lại chính xác. Chỉ x86 (giới hạn trong một số thiết bị netbook / máy tính bảng đặc biệt) và x64 hiện vẫn còn hiệu lực cho Windows 10.

Điện thoại Windows

ARM, (cũng có thể là MIPS?)

Windows 10 cho IoT

x64, ARM


2
Windows NT là Windows 10 cho điện thoại hỗ trợ ARM.
Tamoghna Chowdhury

16
"IA-32" chỉ có nghĩa là "32-bit x86", đây là phiên bản duy nhất của x86 được Windows NT hỗ trợ cho đến khi x64 / AMD64 xuất hiện. Có thể cho rằng x64 / AMD64 chỉ là một biến thể của x86, mặc dù Windows có công cụ mở rộng đặc biệt để xử lý các khác biệt của nó. "IA-64", mặt khác, là kiến ​​trúc 64 bit hoàn toàn mới cung cấp chip Itanium; không bao giờ có bất kỳ thứ gì như Itanium 32 bit.
IMSoP

9
Windows CE không phải là biến thể NT hay cổng NT. Nó có hạt nhân rất độc đáo và khác biệt, bao gồm kiến ​​trúc quy trình và bản đồ bộ nhớ khá khác nhau. Rất nhiều mã NT đã được chuyển đến nó từ HĐH, ví dụ, toàn bộ ngăn xếp mạng và nhiều thứ khác, và tất nhiên ở cấp độ người dùng, nó hỗ trợ API Windows ..
davidbak

7
Windows CE cũng chạy trên một số biến thể của pocessors Hitachi Super-H. Một ví dụ nổi tiếng là Sega Dreamcast (SH4), nhưng tôi cũng nghĩ rằng có một số thiết bị PDA dựa trên SH3 chạy Windows CE.
Michael

3
Windows Phone là một tên tiếp thị. Cho đến WP7, nó là một phần của dòng CE, WP8 là một dẫn xuất NT. Tương tự, Windows 10 IOT cũng là một hạt nhân NT được tùy biến, cũng như thế hệ 3 của XBoxen.
MSalters

21

Windows XP 64bit và Windows Server 2003-2008R2 hỗ trợ kiến ​​trúc Intel Itanium IA-64.


15

Máy tính bảng Windows Surface được phát hành năm 2012 đã sử dụng kiến trúc ARM 32 bit , phiên bản cụ thể này được đặt tên là Windows RT :

Nó thực chất là một phiên bản Windows 8.x được xây dựng cho kiến ​​trúc ARM 32 bit (ARMv7).

[Càng]

Do kiến ​​trúc khác nhau của các thiết bị dựa trên ARM so với các thiết bị x86, Windows RT có các hạn chế tương thích phần mềm.

Windows RT đã bị ngưng.

Nguồn: Wikipedia .


3

Windows 10 IoT Core chạy trên kiến ​​trúc ARM 32 bit (IA-32, ARMv7), chẳng hạn như Raspberry Pi 3. Mặc dù vậy, nó cũng có một số hạn chế nhất định.

Nguồn:


3

Các dòng cửa sổ NT đã hỗ trợ các kiến ​​trúc khác nhau trong những năm qua.

MIPS và Alpha được hỗ trợ từ 3.1 đến 4.0 (Alpha thực sự đã trở thành ứng cử viên phát hành cho Windows 2000 , nhưng nó không được đưa vào bản phát hành cuối cùng). PowerPC chỉ được nhìn thấy trong 4.0.

IA64 (Itanium) đã được hỗ trợ trong Windows XP. Nó cũng được hỗ trợ trong dòng máy chủ từ Server 2003 đến Server 2008 R2.

Microsoft đã chuyển Windows sang ARM nhưng sau đó làm tê liệt các hệ thống kết quả theo nhiều cách khác nhau. Với windows RT (phiên bản ARM của Windows 8), hệ thống đã hoàn thiện khá nhiều, nhưng các ứng dụng máy tính để bàn của bên thứ ba đã bị khóa. Với các biến thể ARM khác nhau của Windows 10, máy tính để bàn dường như biến mất hoàn toàn.


1

Windows NT (như kernel trong Windows RT, WP8, WP8.1 và Windows 10 cho điện thoại) hỗ trợ ARM v7-A (32-bit) và ARM v8-A (64-bit) (Windows 10 cho điện thoại hiện có trên Kiến trúc Lumia 950 / 950XL với chipset Qualcomm Snapdragon 810) hiện tại ngoài x86 (bao gồm x86-64 (Windows AMD64), i386 / i586 / i686 (Windows x86)). Điều này ngoài các kiến ​​trúc được hỗ trợ trong lịch sử được đề cập trong các câu trả lời khác như Alpha, MIPS, Itanium và PowerPC.

Như đã lưu ý trong một câu trả lời khác, các ứng dụng máy tính để bàn Win32 thực sự không thể chạy trên Windows NT trên ARM (tức là không có x86 trên mô phỏng ARM) nếu chúng được biên dịch cho kiến ​​trúc x86 (vì chúng chủ yếu). Tuy nhiên, như được đề cập bởi @user 2284570, các thư viện thực thi hoặc thư viện động ARM chỉ có thể chạy trong Windows NT cho ARM nếu chúng (các tệp nhị phân phân phối) đã được Microsoft ký, mà các văn phòng cản trở việc phân phối ứng dụng gốc của nhà phát triển bên thứ 3 cho các ứng dụng gốc ARM (không giống như chính sách với x86 hoặc các kiến ​​trúc được hỗ trợ trước đây chẳng hạn). Microsoft đã chọn không hỗ trợ các ứng dụng Win32 nhắm mục tiêu x86 (phần mềm Windows dành cho máy tính để bàn) ở mức nhị phân thông qua mô phỏng trên Windows cho ARM vì hình phạt hiệu năng cho việc mô phỏng sẽ rất lớn và hoàn toàn chống lại lý tưởng hiệu năng của ARM trong ngân sách năng lượng chặt chẽ (TDP thấp ).

Lưu ý: API Windows mà tôi đề cập ở đây là API gốc Win32 , không phải phiên bản .NET WINAPI ( được quản lý ). Khả năng tương thích ứng dụng đề cập đến khả năng tương thích ở mức nhị phân ở đây, không phải là khả năng tương thích ở mức nguồn, nếu điều đó không rõ ràng.

Tuy nhiên, với sự ra đời của nền tảng Windows RT và bây giờ là Nền tảng phổ quát Windows (UWP), việc xây dựng phần mềm không biết kiến ​​trúc cho Windows đã trở thành một khả năng (phần mềm trước đây phải được mô phỏng hoặc biên dịch lại để chạy trên Windows trên các kiến ​​trúc khác nhau) .


MS đã từ chối cho phép các ứng dụng máy tính để bàn của bên thứ ba ngay cả khi chúng được biên dịch lại cho nó. Đây là một hạn chế hoàn toàn nhân tạo (bằng chứng là thực tế là ai đó đã tìm ra cách để vượt qua nó)
plugwash

@plugwash trên thực tế tôi đã đề cập đến tính nhân tạo của các hạn chế đối với việc chạy các ứng dụng máy tính để bàn được biên dịch cho ARM trong đoạn thứ hai. Xin vui lòng đọc nó.
Tamoghna Chowdhury

-1

Windows NT được sử dụng để chạy trên chip MIPS và Alpha. Tôi đã chạy NT4 trên Alpha. Bạn phải flash một firmware khác để khởi động NT thay vì VMS.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.