web-dev-qa-db-ja.com

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

マイクロソフト・ウインドウズの内部、第4版は言う:

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

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

66
xiaokaoy

マイクロソフトは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にドロップされました。

82
jcbermu

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

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以降でのみサーバーで、2008年は32ビット(IA32)、Server 2012では64ビット(IA64)が廃止されました。正しくx86(一部の特殊なネットブック/タブレットデバイスに限定されている)およびx64のみが、現在もWindows 10に有効です。

ウインドウズの電話

ARM、(おそらくMIPSも)

IoT用のWindows 10

x 64、ARM

46
Tonny

Windows XP 64ビットおよびWindows Server 2003-2008R2は、Intel Itanium IA-64アーキテクチャをサポートしています。

21
JamesRyan

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

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

[…]

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

Windows RTは廃止されました。

出典: ウィキペディア

15
A.L

Windows 10 IoT Coreは、Raspberry Pi 3などの32ビットARMアーキテクチャ(IA-32、ARMv7)で実行されます。これには一定の制限がありますしかし。

出典:

3
Ghanima

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バリアントで、デスクトップは完全になくなったようです。

3
plugwash

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では)。

1