Windowsはx86以外のハードウェアアーキテクチャをサポートしたことがありますか?


66

Microsoft Windows Internals、4th Editionのコメント:

Intel x86プロセッサのアーキテクチャでは、4つの特権レベル(リング)を定義して、システムコードとデータが、より低い特権のコードによって不注意または故意に上書きされるのを防ぎます。Windowsは、カーネルモードに特権レベル0(またはリング0)を使用し、ユーザーモードに特権レベル3(またはリング3)を使用します。Windowsが2つのレベルのみを使用する理由は、過去にサポートされていた一部のハードウェアアーキテクチャ(Compaq AlphaとSilicon Graphics MIPSなど)が2つの特権レベルのみを実装したためです。

これは、かつてWindowsがAlphaとMIPSをサポートしていたということですか?


49
信じられないかもしれませんが、Microsoftは世界で最も「オープンアーキテクチャ」の会社の1つでした。元のMS-DOSは、数十の異なるプラットフォームや他のOSと互換性があり、Windowsも同じように設計されていました。Excelは、さまざまなプラットフォームで実行される仮想マシン上に構築されました。これは偶然ではありませんでした。IBMPC(およびクローン)が事実上かつ迅速に事実上の標準になり、Microsoftが基本ソフトウェアを提供したのです。どちらを選択しますか?すべてのアプリケーションを実行できるシステムですか?それともベンダーがロックインしているシステムですか?:)
ルアーン

13
私はAlphaとMIPSの両方にWindowsをインストールしましたが、それはずっと前のことです。私がマイクロソフトのインターンだったとき、私の仕事の1つは、開発者が自分の机に持っていなかったハードウェアでVisual Basicテストスイートを実行することでした。
エリックリッパー

7
@Luaan-「オープンアーキテクチャ」だけでなく、「オープンOS」も!かつて彼らの公式にライセンスされたUnixバリアントは、世界で最も一般的なインストール済みのUnixだったことを他にどのように説明できますか- ウィキペディアのXenixを参照してください
-davidbak

4
今日でも、x86 / x64以外のアーキテクチャで実行されるWindowsのバージョンがあります。つまり、ARMデバイス用のWindows RTです。
TigerhawkT3

2
@Luaanまた、特に初期のIBM PCクローンは必ずしもIBM PCと完全に互換性があるとは限らなかったため、解決が必要な本当の問題でした。当時、「100%IBM互換性」はハードウェアベンダーのセールスポイントでした。私たちは今日、そのようなことを当たり前のことと考えていますが、1980年代前半かそこらでは、まったく保証されませんでした。マイクロソフトは、MS-DOS 5.0が1991年に市場に登場するまで、オペレーティングシステムの小売市場に実際に参入しませんでした。はい、Windows 3.0の画期的な成功物語の1年後です。
CVn

回答:


82

Microsoft は、1993年にWindowsの最初の純粋な32ビットバージョンとしてWindows NT 3.1をリリースしました。

Windows NTは、マルチアーキテクチャオペレーティングシステムとして開発されました。IA-32、DEC Alpha、MIPS、PowerPCなど、当初サポートされていたさまざまなCPUアーキテクチャ。

元のアイデアは、各プラットフォーム用のカスタムハードウェアアブストラクションレイヤー(HAL)を備えた共通のコードベースを持つことでした。ただし、MIPS、Alpha、およびPowerPCのサポートは、後にWindows 2000で廃止されました。


7
IIRCのWikipediaページには、どのアーキテクチャ、誰がそれを行ったのか、そしてなぜそれらが市場に出なかったのかについてのきちんとした入門書があります。
ジャーニーマンオタク

13
元の開発プラットフォームはi860だったと思います。これは、 '386-isms'が設計に入るのを止めるための意図的な選択でした。しばらくの間、マイクロソフトはさまざまなアーキテクチャ向けのアプリケーションもリリースしました。i386、Alpha、MIPS、PowerPC上のWindows NT用に構築されたWord for Windows 6のCDがあります。
エドエイビス

4
Alpha NTシステムで実行中のMicrosoftからソフトウェアを購入しようとしていたことを思い出します。英国のMicrosoft営業担当者はAlpha CPUが何であるかを知りませんでした。DECはISPとして非常に安価なマシンを提供してくれたので、最終的にはプロジェクトをNTに移植するのではなく、Unixを使用してX-Termsとして使用しました。
イアンリングローズ

4
「元のアイデアは、各プラットフォーム用のカスタムハードウェアアブストラクションレイヤー(HAL)を備えた共通のコードベースを持つことでした」と、最近では実際のHALが存在しないように聞こえます。最近のWindows NTでは、ARMもサポートしています。x86のみをサポートしている場合でも、x86の幅広いリビジョン(明らかに最大のものはx64)と、さまざまなプロセッサ、メインボード、その他のバグ修正があります。
Voo

4
Sparcへのサードパーティポートもありました。その後、XBox360のPowerPCサポートが復活しました。その少し前に、IA64サポートが追加されました。その後、AMD64サポートが追加されました。最新の追加はARMサポートです。オリジナルの開発プラットフォームは、i860のでした。そのプラットフォーム向けにリリースすることを意図したものではなく、移植性を確保するために「奇妙な」ものであり、x86、PowerPC、MIPS、Coとは大きく異なるため、純粋に行われました。
ヨルグWミットタグ

46

私の知る限り、8つの基本アーキテクチャ(およびいくつかのサブバリアント)があり、そのうちWindows 10でサポートされているのは2つだけです。

Windows 1.0から3.11、Windows 95、98およびMillenium Edition

x86(8086、80186、80286、80386、80486、Pentium、Pentium Pro、Pentium II、Pentium III、P4、Core、Core Duo、Core-I、およびさまざまなCeleronおよびAtomデザインを含む16ビットおよび32ビットのバリアント。)また、互換性のあるさまざまなAMDおよびNEC CPUも含まれています。

Windows CE

MIPS、x86、ARM(@ pjc50に感謝)。
(CEがAlpha、PowerPCで実行されたかどうかはわかりません。)

Windows NT

x86、x64(またはamd64、両方の名前が使用されます)、MIPS、Alpha、IA32、IA64、PowerPC。
MIPS、Alpha、およびPowerPCのサポートはWindows 2000で廃止されました。ItaniumはWindows 2000以降のサーバーであり、32ビット(IA32)は2008年、64ビット(IA64)はServer 2012で廃止されました。現在、x86(一部の専用ネットブック/タブレットデバイスに限定)およびx64のみがWindows 10で有効です。

ウインドウズの電話

ARM、(おそらくMIPS?)

IoT向けWindows 10

x64、ARM


2
電話機用のWindows 10としてのWindows NTはARMをサポートしています。
タモフナチョードリー

16
「IA-32」は、「32ビットx86」を意味します。これは、x64 / AMD64が登場するまでWindows NTでサポートされているx86の唯一のバージョンです。おそらくx64 / AMD64はx86の単なる変形ですが、Windowsにはその違いを処理するための特別なツールがあります。一方、「IA-64」は、Itaniumチップに電力を供給したまったく新しい64ビットアーキテクチャです。32ビットItaniumなどはありませんでした。
IMSoP

9
Windows CEはNTのバリアントで、NTのポートでもありませんでした。まったく異なるプロセスアーキテクチャとメモリマップを含む、独自の非常にユニークで異なるカーネルがありました。多くのNTコードがOSから移植されました。たとえば、ネットワークスタック全体など、WindowsのAPIをサポートするユーザーランドレベルです。
davidbak16年

7
Windows CEは、Hitachi Super-Hプロセッサーの一部のバリアントでも実行されました。有名な例はSega Dreamcast(SH4)ですが、Windows CEを実行するSH3に基づいたPDAもあったと思います。
マイケル

3
Windows Phoneはマーケティング名です。WP7まではCEラインの一部でしたが、WP8はNT派生物です。同様に、Windows 10 IOTも、第3世代のXBoxenと同様に、カスタマイズされたNTカーネルです。
-MSalters


15

2012年にリリースされたWindows Surfaceタブレットは32ビットARMアーキテクチャを使用し、この特定のバージョンはWindows RTと名付けられました。

基本的に、32ビットARMアーキテクチャ(ARMv7)用に構築されたWindows 8.xのエディションです。

[…]

x86デバイスと比較してARMベースのデバイスのアーキテクチャが異なるため、Windows RTにはソフトウェア互換性の制限があります。

Windows RTは廃止されました。

出典:ウィキペディア



3

Windows NTラインは、長年にわたって様々なアーキテクチャをサポートしてきました。

MIPSとAlphaは3.1から4.0でサポートされていました(Alphaは実際にはWindows 2000のリリース候補まで作成しましたが、最終リリースには達しませんでした)。PowerPCは4.0でのみ見られました。

IA64(Itanium)はWindows XPでサポートされていました。Server 2003からServer 2008 R2へのサーバーラインでもサポートされていました。

MicrosoftはWindowsをARMに移植しましたが、結果として生じるシステムをさまざまな方法で人為的に不自由にしました。Windows RT(Windows 8のARMバージョン)では、システムはほぼ完全でしたが、サードパーティのデスクトップアプリはロックアウトされました。Windows 10のさまざまなARMバリアントにより、デスクトップは完全になくなったようです。


1

Windows NT(Windows RT、WP8、WP8.1、およびWindows 10 for Phonesのカーネルとして)は、ARM v7-A(32ビット)およびARM v8-A(64ビット)(現在Windows 10現在x86(x86-64(Windows AMD64)、i386 / i586 / i686(Windows x86)を含む)に加えて、Lumia 950 / 950XLとQualcomm Snapdragon 810チップセット)アーキテクチャ。これは、Alpha、MIPS、Itanium、PowerPCなどの他の回答で言及されている、歴史的にサポートされているアーキテクチャに追加されています。

別の回答で述べたように、Win32デスクトップアプリは、x86アーキテクチャ用にコンパイルされている場合(ほとんどの場合)、ARM上のWindows NT(つまり、ARMエミュレーションのx86なし)でネイティブに実行できません。ただし、@ user 2284570で述べたように、ARMネイティブ実行可能ファイルまたはダイナミックライブラリは、ARM(配布バイナリ)がMicrosoftによってデジタル署名されている場合にのみARM用Windows NTで実行できます。 (x86などの以前にサポートされたアーキテクチャのポリシーとは異なります)。マイクロソフトは、ARMのWindowsでのエミュレーションを介して、バイナリレベルでx86ターゲットのWin32アプリ(デスクトップWindowsソフトウェア)をサポートしないことを選択しました。 )。

注:ここで参照するWindows API は、.NET WINAPI(管理)バージョンではなく、Win32 ネイティブ API です。ここでアプリの互換性とは、明らかではない場合、ソースレベルの互換性ではなく、バイナリレベルの互換性を指します。

ただし、Windows RTプラットフォームと現在のユニバーサルWindowsプラットフォーム(UWP)の出現により、Windows用のアーキテクチャに依存しないソフトウェアを構築することが可能になりました(以前は、異なるアーキテクチャのWindowsで実行するには、ソフトウェアをエミュレートまたは再コンパイルする必要がありました) 。


MSは、サードパーティのデスクトップアプリを再コンパイルしても、それを許可しませんでした。これは純粋に人為的な制限でした(誰かがそれを迂回する方法を見つけたという事実によって証明されるように)
プラグウォッシュ

@plugwash実際、2番目の段落で、ARM用にコンパイルされたデスクトップアプリの実行に対する制限の人工性について言及しました。読んでください。
タモフナチョードリー

-1

Windows NTは、MIPSおよびAlphaチップで実行されていました。NT4をAlphaで実行しました。VMSの代わりにNTを起動するには、異なるファームウェアをフラッシュする必要がありました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.