Na čem nerozchodíte Windows 8?
Kapitoly článků
Windows 8, ač je to divné, vyjdou nejen v 64bitové x86-64, ale i v 32bitové x86-32 verzi. Proč, to nám trošku hlava nebere, zejména poté, co jsou na procesor nakladeny další omezující požadavky, o nichž bude dnes řeč. Nejrozumnější by bylo podporu ryze x86-32 procesorů (bez 64bitového rozšíření) již zahodit, ale v Microsoftu se z nějakého důvodu rozhodli patlat se i s x86-32 verzí. Doufejme, že další verze Windows už bude jen x86-64 (resp. také ARM).
Jaký procesor tedy potřebujete? Potřebujete takový procesor, který splňuje tyto požadavky:
- PAE (Physical Address Extension neboli nehezky česky „rozšíření fyzické adresy“)
- NX (No eXecute nebo u Intelu také XD čili eXecute Disable)
- SSE2 instrukce
Pro řadu procesorů je společné, že mají tyto vlastnosti buďto všechny, nebo žádnou, ale není to pravidlem a nelze se na to spoléhat. Určitě lze říci, že má-li procesor NX bit, má také PAE, neboť předpokladem NX bitu je právě přítomnost PAE, které pro tuto vlastnost vytváří prostor. Stejně tak se dá říci, že má-li procesor podporu NX bitu, má také SSE2 instrukce, i když existují určité výjimky (i o nich bude dnes řeč). Obecně tedy stačí hledat podporu NX bitu a máte vše, co z hlediska procesoru k provozu Windows 8 potřebujete.
Physical Address Extension
Co to vlastně PAE je? Když to řekneme hodně jednoduše, tak to vlastně dělá určitým způsobem z 32bitového procesoru 36bitový, i když jen co do adresace paměti a ani to není úplně přesné. S ryze 32bitovým procesorem obsloužíte sakum-prásk se vším všady nejvýše 4 GiB paměti, s „36bitovým“ už stoupne limit na 64 GiB. To byl důvod, proč se PAE zavedlo – aby bylo možné pracovat s více než 4 GiB paměti (reálným limitem pak bývalo skutečné množství osaditelné RAM na desku). Implementace je však taková, že v rámci zpětné kompatibility může beztak jedna instrukce sahat pouze do 4GiB prostoru (instrukce stále pracují pouze s 32bitovými adresami), takže této vlastnosti v reálu využívají jen některé operační systémy (využití většího množství paměti je složitější, je potřeba přepínat tabulky stránek paměti pro jednotlivé běžící procesy, což má lehce negativní vliv na výkon, navíc stejně jeden proces víc jak 4 GiB paměti dostat nemůže).
Z Windows chápou PAE už Windows 2000, desktopové verze (Windows 2000 Professional a Windows XP) jsou však uměle omezené jen na podporu 4 GiB (mimo jiné i kvůli minimalizaci všemožných komplikací). Více paměti dokážou z 32bitových systémů Windows využít jen serverové verze (od Windows 2000 Advanced Serveru až po Windows Server 2008; Windows Server 2008 R2 už je pouze 64bitový, takže tam nemá smysl PAE řešit).
Mimochodem: protože PAE rozšiřuje i počet příznaků (flags) v tabulkách stránek, mohl přibýt nový příznak: NX bit. Proto všechny procesory, které mají NX bit, mají i PAE.
NX bit
NX bit je zjednodušeně řečeno hardwarový způsob, jak zabránit ve spouštění dat považovaných za data, nikoli za programové instrukce. Při stránkování paměti se právě v tabulce stránky dané oblasti paměti nastavuje NX bit, který, pokud je nastaven, znamená, že uložená data jsou skutečně jen obyčejná data a nikoli instrukce programu. Procesor sám o sobě pak zabraňuje pokusům o spouštění instrukcí z takto označených částí paměti. Vyžaduje to samozřejmě podporu operačního systému, který musí stránky správně označovat. Ve Windows se podpora poprvé objevila až s příchodem druhého ServicePacku pro Windows XP.
SSE2
Streaming SIMD Extensions 2 je sada 144 instrukcí, která se poprvé objevila v roce 2001 v Intelových Pentiích 4. V AMD ji implementovali o dva roky později s příchodem procesorů s 64bitovým rozšířením, integrovaným paměťovým řadičem a komunikačním rozhraním HyperTransport, jinými slovy u AMD to začalo Opterony a Athlony 64. Můžeme se tedy oprávněně domnívat, že vyžadovat její podporu dnes, v roce 2012, není nic až tak úplně přehnaného, přestože třeba Windows 7 se bez ní obejdou.
Vyžadovaná podpora pro výše zmíněné funkce procesoru se objevila poprvé ve Windows 8 Release Preview. Všechny předchozí verze Windows 8 na těchto starších procesorech fungovaly (Windows 8 Consumer Preview i Windows Developer Preview, jak ukazuje obrázek).