U přechodu na x86-64 mě fascinuje, že se tak pokud vím velmi dlouho vyráběly procesory s poměrně složitým HW navíc, který většina lidí nevyužívala - kolem 2009 už byl třeba skoro každý desktopový procesor 64bit, ale všichni na tom jeli 32bit XPčka. U serverů nevím, ale čekal bych to nějak podobně, jen s přechodem na 64bit o pár let dřív. Tak že se to vyplatilo vyrábět, a neprodávat místo toho levnější procesory (nebo mít větší zisk), stále 32bit.
1)Opteron je pro servery.
V serverech byl nástup 64bit mnohem rychlejší.
2)Win XP měla obě edice. Pravda že 64bit byla méně rozšířená, ale sám jsem jich pár nainstaloval.
3)Win Vista vyšla v roce 2007. OEM volili 64bit protože to je více než 32. (BFU zas volili x86 protože to je víc než 64 :)
4)Výrobci HW byli vždy napřed před vyrobci SW.
5)Životnost CPU je mnohem víc než 6 let.
6)Ty instrukční sady toho křemíku zas tolik nesežerou.
Ano, taky jsem měl pocit že by se dalo ušetřit(nebo spíš lépe využít) spoustu křemíku. Ale ne kvůli CPU ale kvůli RAM.
XP měla sice PAE, ale omezené na 3,5GB.
Vzhledem k ceně jsem všude dával 4GB.
Smutne je, ze to omezeni PAE bylo umele :-(
Uz Win NT enterprise server zvladal vice jak 4GB pameti.
Bohuzel pri vyvoji Win2K/XP (coz byl vlastne merge obou vetvi - NT a 3.11/95) dohromady se prislo na to, ze je problem vyrobcum 'komzumnich' HW, co psali ovladace primarne pro Win95 vetev, poradne vysvetlit, co je treba udelat, aby dokazali fungovati i s PAE (tedy vice jak 4GB) pameti ......
Nejvetsim problemem jsou DMA buffery - ty musi byt alokovany specialni funkci kernelu, aby bylo zaruceno, ze fyzicky lezi pod hranici 4GB - protoze DMA radic nevi nic o zadnem PAE a jde natvrdo naprimo do pameti.
Takze klasicke reseni ala MicroSoft - nez to poradne popsat, vystelit a domluvit se s vyrobci HW ohledne driveru, tak to radsi umele omezime :-(
Výrobci HW chtějí vyrábět HW. Nechtějí - a často neumějí - psát ovladače. To byl problém při přechodu z Win3.x a DOSu na Win95. A byl to ještě daleko větší problém při přechodu na řadu NT, což vedlo k prodlužování života řady Win9x až k WinME.
Pokud jde o podporu PAE a drivery, tak máte pravdu, že je to problém memory managementu na úrovni driverů. Dokumentace samozřejmě existovala. Problém byl ale v tom, že výrobci HW prostě netestovali na systémech s více než 4GB RAM, protože to tehdy bylo jen pár high-end serverů. A ani MS nemá na výrobce páku, kterou by je snadno donutil k podpoře PAE. Co jim řeknete? "Vezměte vaše drahé vývojáře, kteří mají nestíhají psát drivery pro váš nově uváděný HW, a nechte je místo toho projít a přetestovat stávající drivery tak, aby vaše herní grafická karta nebo zvuková karta fungovala i na high-end serveru s více než 4GB RAM." Jistě si umíte představit odpověď.
https://web.archive.org/web/20081025182404/http://blogs.technet.com/markrussinovich/archive/2008/07/21/3092070.aspx
Mezi desktopy a servery je ale rozdíl. High-end servery (na Intelu) s více než 4GB RAM tehdy dělalo pár výrobců, kteří byli (na rozdíl od "milionu" výrobců desktopů) v certifikačním programu.
Padla tu otázka, proč tedy Windows XP vůbec podporovaly PAE API. To je z toho důvodu, aby na nich mohly běžet aplikace, které PAE používají. S menší pamětí, na kterou technicky není potřeba PAE, ale se stejným API. Jinak by výrobce musel uvolnit jednu verzi aplikace pro PAE OS, a druhou pro ne-PAE OS, což by byla poměrně značná nevýhoda.
Dá se také čekat, že svou roli hrál i obchodní aspekt. Windows 2000 Server a 2003 Server Standard uměl jen 4GB RAM. Podporu větší RAM měly až vyšší edice: Windows 2000 Advanced Server (8GB) a Datacenter (32GB), Windows 2003 Enterprise/Datacenter (64GB), s vyšší cenovkou.
Pravda, a proto jsem pouzival system s 8 a posleze 12GB ram, kde XP (pro) pouzivaly naprosto bez potizi celou ram. Ano, vyzadovalo to trochu toho nastavovani a (bezne) aplikace to pochopitelne neumely vyuzivat primo, takze omezeni per aplikace zustavalo na 2/3GB.
XP nejsou nic jineho nez 2k3 server. Jde o identicke systemy s drobne jinym presetem.
To neumozneni PaE bylo asi tak stejne jako neumozneni vice RDP sessions na desktopove systemy. Staci zmenit par (presne receno 12) bajtu jednoho dll, ze ...
Pani v tom maju evidentne chaos. PAE umozni pouzivat 32bit systemu az 64 giga, ale kedze ide stale o 32 instrukcie tak konkretny proces je obmedzeny na 4 gb(aj menej podla systemu) ktore mozu byt mapovane kamkolvek v dostupnych 64 gb.
To obmedzenie nie je teda umela ale dane tym ze 32bit instrukcna sada nedokaze adresovat viac ako 2^32. A tyka sa to nie len widli ale aj ostatnych OS.
> PAE omezene na 3,5 GB? K cemu by to bylo? Nema to byt 64 GB?
V té době s tím neuměly pracovat ovladače hw, proto to Microsoft uměle omezil na bezpečných 3,5 GB. Je to stejné, jako když v době DOSu rezidentní programy používaly paměť "na konci", mezi 640 kB a 1 MB.
32bit Windows Server to omezení asi neměl a nepřekvapuje mě, že si někdo příslušně upravil desktopovou verzi. Já sám běžné dával RDP server a Místní zásady zabezpečení z Pro do Home.
Ano vlna 64bit CPU se kryla s vlnou NTB.
Alespoň u nás ve střední Evropě. V té době měl PC každý a každý si pořizoval NTB.
Jenže notebooky měli jen 2 sloty pro RAM.
Což v kombinaci DDR 400 znamenalo 2GB paměti. Při použití DDR2 800 4GB RAM maximálně.
V kombinaci s integrovanou grafikou, která si kus RAM ukousla pro sebe, ztrácel 64bit OS smysl.
Jenže ta AMD64 architektura je právě hodně kompatibilní s původní X86. Vyhodilo se pár instrukcí co mělo redundantní kódování, přidal se REX prefix, přidalo se RIP adresování a bylo hotovo... Toto byl největší benefit této instrukční sady před 20 lety a teď je to její největší zkáza. X86 tu ještě bude dlouho, ale budoucnost to rozhodně není.