マイクロソフト・ウインドウズの内部、第4版は言う:
Intel x86プロセッサのアーキテクチャでは、4つの特権レベル(リング)を定義して、システムコードとデータが、誤ってまたは悪意を持って特権の低いコードによって上書きされるのを防ぎます。 Windowsは、カーネルモードには特権レベル0(またはリング0)を、ユーザーモードには特権レベル3(またはリング3)を使用します。 Windowsが2つのレベルのみを使用する理由は、過去にサポートされていた一部のハードウェアアーキテクチャ(Compaq AlphaやSilicon Graphics MIPSなど)が2つの特権レベルしか実装していないためです。
これは、WindowsがかつてAlphaとMIPSをサポートしていたという意味ですか?
マイクロソフトは1993年にWindowsの最初の純粋な32ビット版としてWindows NT 3.1をリリースしました。
Windows NTは、マルチアーキテクチャオペレーティングシステムとして開発されました。 IA-32、DEC Alpha、MIPS、PowerPCなど、当初はさまざまなCPUアーキテクチャをサポートしていました。
当初のアイデアは、各プラットフォーム用のカスタムHardware Abstraction Layer(HAL)を持つ共通のコードベースを持つことでした。ただし、MIPS、Alpha、およびPowerPCのサポートは、後にWindows 2000にドロップされました。
私の知る限りでは、8つの基本アーキテクチャー(および多数のサブバリアント)があり、そのうちの2つだけがWindows 10でサポートされています。
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も含まれます。
MIPS、x86、ARM(ありがとう@ pjc50)。
(CEがAlpha、PowerPC上で動作したことがあるかどうかわからない)
x86、x64(またはAMD64、両方の名前が使用されます)、MIPS、Alpha、IA32、IA64、PowerPC。
MIPS、Alpha、およびPowerPCのサポートはWindows 2000で廃止されました。思い出してください。ItaniumはWindows 2000以降でのみサーバーで、2008年は32ビット(IA32)、Server 2012では64ビット(IA64)が廃止されました。正しくx86(一部の特殊なネットブック/タブレットデバイスに限定されている)およびx64のみが、現在もWindows 10に有効です。
ARM、(おそらくMIPSも)
x 64、ARM
Windows XP 64ビットおよびWindows Server 2003-2008R2は、Intel Itanium IA-64アーキテクチャをサポートしています。
2012年にリリースされたWindows Surfaceタブレットは、32ビットARMアーキテクチャを使用していました。この特定のバージョンはWindows RT:
これは基本的に32ビットARMアーキテクチャ(ARMv7)用に構築されたWindows 8.xのエディションです。
[…]
X86デバイスと比較してARMベースのデバイスのアーキテクチャが異なるため、Windows RTにはソフトウェア互換性の制限があります。
Windows RTは廃止されました。
出典: ウィキペディア 。
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バリアントで、デスクトップは完全になくなったようです。
Windows NT(Windows RT、WP8、WP8.1、およびWindows 10 for Phonesのカーネルとして)はARM v7-A(32ビット)およびARM v8-Aをサポートします(現在、x86(x86-64(Windows AMD64)、i386/i586/i686(Windows x86)を含む)に加えて、64ビット)(現在はWindows用のWindows 10 for Qualcomm Snapdragon 810チップセットを搭載したLumia 950/950XLに対応)アーキテクチャ。これは、Alpha、MIPS、Itanium、PowerPCなど、他の回答で言及されてきた歴史的にサポートされているアーキテクチャに加えたものです。
別の回答で述べたように、Win32デスクトップアプリケーションは、x86アーキテクチャ用にコンパイルされている場合(つまり、x86 [ARMエミュレーションなし)、Windows NTのARM上でネイティブに実行できません。ほとんど)。ただし、@ user 2284570で述べられているように、ARMネイティブ実行可能ファイルまたは動的ライブラリは、Windows NTでARMを実行できるのは、それらがMicrosoftによってデジタル署名されている場合のみです。 office pはARMネイティブアプリのサードパーティ開発者による配布を妨害します(x86や他の以前サポートされていたアーキテクチャのポリシーとは異なり)。エミュレーションのパフォーマンス上のペナルティは非常に大きく、完全にARMに対して、MicrosoftはARMのWindows上でのエミュレーションを介してバイナリレベルでx86ターゲットのWin32アプリ(デスクトップWindowsソフトウェア)をサポートしないことを選択しました。 _厳しい電力バジェット(低いTDP)でのパフォーマンスの理想。
注:ここで参照するWindows APIは、Win32ネイティブAPIであり、.NET WINAPIではありません。 (管理)バージョン。アプリの互換性とは、ソースレベルの互換性ではなく、ここではバイナリレベルの互換性を指します。
しかし、Windows RTプラットフォーム、そして今やユニバーサルWindowsプラットフォーム(UWP)の出現により、Windows用のアーキテクチャーにとらわれないソフトウェアを構築することが可能になりました(以前はソフトウェアをエミュレートまたは再コンパイルする必要がありました)。異なるアーキテクチャ上のWindowsでは)。