4 GB RAM a 32bitový OS [EN]
Pěkně a jednoduchou angličtinou vysvětleno, proč dvaatřicetibitový systém nevyužije ("nevidí") 4 GB RAM.
Pěkně a jednoduchou angličtinou vysvětleno, proč dvaatřicetibitový systém nevyužije ("nevidí") 4 GB RAM.
Zpět na aktuality Přidat komentář k aktualitě Nahoru
to nie je dostatocne presne vysvetlenie, 4 GB nie je technicky limit pre mnozstvo podporovanej pamate ako sa uvadza v clanku vid:
viac: Pushing the Limits of Windows: Physical Memory
je to sposobene tym, ze autor nerobi rozdiel medzi fyzickym adresnym priestorom a virtualnym adresnym priestorom
4GB je technicky limit ale tyka sa virtualneho adresneho priestoru a nema priamy suvis s fyzickym adresnym priestorom
Ako uz pisal mkmt, len to napisem zrozumitelne pre laikov:
Jediny dovod preco 32bit WinXP nepodporuje viac ako 4GB RAM je ten ze mrkvosoft produkuje sracky (ci uz preto ze su blbi alebo umyselne aby si uzivatel o 3roky musel kupit od nich novsiu sracku).
Adresovat viac ako 4GB RAM vedel uz snad aj Pentium1 Pro, niekedy v r. 1998, a od toho okamziku nebol problem urobit 32bitovy OS ktory by podporoval viac ako 4GB RAM (vid serverove OS). Obmedzenie pre jednu aplikaciu by sa este dalo akceptovat (kvoli flat modelu aplikacii), ale obmedzenie pre cely OS je len problem lenivosti navrharov OS.
O lenost nejde, je to umely omezeni. V roce 2001 kdyz vysly XP navic nejspis nikdo necekal, ze jeste v roce 2009 (a nejspis i 2010, dal netipuju) to bude stale nejpouzivanejsi system.
Jakto ze necekal? To je prave to ze oni cekaju ze im budeme platit kazdy rok jak idioti.
Mohli venovat vyvojarsky cas zakladnej funkcionalite OS (medzi co patri aj sprava RAM), namiesto debilnych zneliek/zvukov a inych omalovaniek a zbytocnych grafickych efektov a inych blbosti.
A ktera firma tohle neceka?
Pokud jsou ti známy zákony trhu, tak víš, že obal prodává.
bohuzial, primarne ti nie je vina Microsoftu, system Win XP by mohol bez problemov adresovat viac ako 4GB, bohuzial mnoho ovladacov nie je navrhovanych s tym aby ratali s 64 bit adresovanim fyzickej pamate, ktore je pouzivane pri PAE rezime, rovnako mnohe 32 bit zariadenia maju tento problem, spristupnenie fyzickej pamate za hranicou 4GB by v mnohych pripadoch viedlo k neriesitelnym problemom
ostatne uz som tu o tom pisal, serverove a klientske verzie win sa z pohladu architektury nijako nelisia, prepnutie XP do rezimu servra, ktory podporuje viac ako 4GB RAM je otazka editovania 3 poloziek v registri, kazdy si to moze odskusat
to ze win "nevidi" viac ako 4GB RAM je sposobeny tym ze memory manager aj v PAE rezime ignoruje fyzicke adresy nad 4GB, nie je to tym, ze by PAE nebolo funkcne
ostatne peknym prikladom vyuzitia viac ako 4GB RAM v 32 bit XP je Superspeed RAMdisk, ktory v pripade ze bezi PAE umoznuje vyuzit celu instalovanu pamat
Tak s tym nesuhlasim. Adresovanie zariadeni ostava v 32bitovom priestore, tam nema kde nastavat problem.
PAE ovplyvnuje paging, vtip je v prevode linearnej adresy na fyzicku, linearne adresy ostavaju 32bitove (pre aplikacia a aj pre ovladace by to malo ostat transparentne). PAE rozsiruje adresaciu na 36bitov, nie na 64bitov.
to nespravne interpretujes, 36 bitov je limit pre velkost pamate ale v skutocnosti polozky PDE a PTE maju 64 bit namiesto 32, je to nutne uz len preto, lebo DEP pouziva NX bit, co je 63. bit PTE
ovladace priamo pristupuju k pamati, a preto priamo narabaju s tymito polozkami, na rozdiel od normalnych aplikacii, ktore nadalej pouzivaju 32 bit adresy virtualnej pamate
Ovladace nepristupuju priamo k pamati ale vyziadaju si od OS nech to namapuje a potom pristupuju cez logicke adresy. Robil som nejaky interface ovladac-BIOS, a na pristup na fyzicku adresu E000:0 som dostal od Win logicku adresu haluze, proste nieco ako 62049752h. T.j. loghicku. Nebol by problem to namapovat. Ovladce by nikdy nemali liezt priamo na polozky v GDT, LDT apod. Je debilina uz to ze ovladace WinXP su v ring0 (aspon taky mam z toho dojem kedze som si mohol robit co som chcel, zapisovat do CRx registrov CPU apod). V ring0 ma bezat len jadro nikto iny.
naozaj sa nechcem hadat, ak ti nestaci toto, tak uz naozaj neviem...
/PAE - Causes Ntldr to load Ntkrnlpa.exe, which is the version of the x86 kernel that is able to take advantage of x86 PAEs. The PAE version of the kernel presents 64-bit physical addresses to device drivers, so this switch is helpful for testing device driver support for large memory systems.
okrem toho ako som uz pisal prepnutie XP do rezimu servra, ktory podporuje viac ako, 4GB RAM nie je problem architektury klient/server ale otazka editacie 3 poloziek v registri, este jednoduchsie napr. pomocou tweaknt
priklad pouzitia ovladaca s priamym pristupom k pamati je superspeed ramdisk
To je ale problem MS architektury ze ich kernel presentuje kdesi nejake 64bitove adresy. Urobia debilny kernel a potom nariekaju ze maju neriesitelne problemy.
P.S. inac je to ok ze umoznuje ovladacom pristup aj nad 32bit adresny priestor, ale pre 99.99999% ovladacov je to naprd a vystacili by si s 32bit fyzickou adresaciou. PCI zariadenia (t.j. vsetky zariadenia v PC) su dodnes snad vsetky v 32bitovom adresnom priestore, kvoli kompatibilite.
to sme sa asi dobre nerozumeli, ja pod priamym pristupom myslim priamy pristup ovladacov k polozkam PDE a PTE, ktore su v PAE rezime 64 bit a to sa tyka akehokolvek OS, pretoze je to sucastou specifikacie PAE, a samozrejme pre kazdy OS z toho vyplyvaju rovnake problemy
ak sa trochu poohliadnes po nete, tak zbadas, ze problem PAE a ovladace sa zdaleka netyka len win
PS: vobec som nechcel rozputat debatu na tuto temu, skor som chcel poukazat na nespravnu interpretaciu 4GB vs 32 bit, ktora vyplyva z nepochopenia fungovania virtualnej pamate t.j. ze sa zamiena fyzicky adresny priestor s virtualnym
Ale ved na to prave driver vobec nema sahat. Je to vysostna vec OS a OS si to ma chranit. Problemy s ovladacmi zacnu vznikat vtedy ak sa PCI zariadenia namapuju do 64bit priestoru, to ale nie je na dnesnych PC nutne, kludne mohla byt memory hole medzi 3GB a 4GB a ovladace 32bitove ako doteraz. Kym cely svet neprejde na full 64bitove OS.
Proste sa mi nepaci ze v r.199x intel umoznil adresovat viac ako 4GB a je to dodnes uplne nahovno (okrem serverovych OS) ptz MS to nebol schopny implementovat do neserverovych OS.
vsak ti pisem, ze je to zalezitost hocijakeho OS, ak je ten ovladac naprd napisany tak bude problem vzdy, to by aj v Linuxe mohol byt kernel pre vsetky distribucie kompilovany ako PAE enabled, bohuzial to tak nie je
uz som hore pisal, ze z pohladu architektury nie je ziadny rozdiel medzi klient/server, XP to ma zablokovane len cez registre
To s registrami je ako napisat ze mam trabant a zmenou napisu na kufri z toho urobim BMW. Furt to bude trabant :)
zda sa, ze si ma nepochopil, jednoducho windows server ma podporu PAE implementovanu uplne rovnako ako XP, otazka je, ci je zablokovanie adries nad 4GB u XP ziaduce alebo nie ale toto som tu vobec nechcel riesit...
A co ma clovek z toho ze sa to da zmenit v registroch?
Bud to malo byt povolene uz od zaciatku aby s tym ratali aj vyrobcovia a urobili ovladace tak aby fungovali, alebo je to implementovane zle a tak to radsej odrbali ignorovanim adries a mysleli si ze si to nikto nevsimne alebo co? Evidentne plati druha moznost.
myslim, ze nemas pravdu, keby to bolo implementovane zle, tak sa to nepouziva ani u servrov
mam pocit, ze chces za kazdu cenu dokazat, ze za tieto problemy moze microsoft, co vsak preukazatelne nie je pravda
dam priklad z uplne inej oblasti -OS Sun Solaris, ale je mi jasne ze je to zbytocne, lebo pochopit nechces:
Caution: Some device drivers have been found to have bugs when they are used on machines with more than 4 Gbytes of memory. PCI device drivers written by Sun have been tested on IA (Intel Architecture) compatible machines with more than 4 Gbytes of memory. Sun's OEM partners intend to test their machines with devices they supply on IA compatible machines with more than 4 Gbytes of memory. In some cases, however, if you add a third-party device driver to your system, it might become unstable. Panics and data corruption might result if this third-party driver is configured with a DMA address range larger than its device can handle. If your system becomes unstable and you need that driver, you must disable PAE mode.
to si nieco nepochopil ty. ked sa nejaky bug da vyriesit vypnutim pae, tak to este neznamena ze na vine je pae samotne. na vine je vzdy bug nejakeho cinskeho debila (ci uz spackal hw alebo sw)
samozrejme na vine nie je PAE, ale uplne rovnake problemy su na win a akomkolvek OS
no a? a to teraz kvoli tomu ma byt u WinXP defaultne vypnute pae? Lebo par cinskych debilov nevie napisat korektne ovladac? Naco je to podrbane WHQL?
Problemy sposoboval kedysi aj pristup nad 1MB, tak to sme mali potom ostat u DOSu a 640kB RAM, aby nahodou nebol problem s pristupom nad 1MB.
zjavne necitas pozorne XP nema defaultne vypnute PAE
tych debilov zdaleka nie je par
rovnako v Linuxe, nie je kernel pre kazdu distribuciu kompilovany ako PAE enabled z rovnakych dovodov
Nemusis ma chytat za slovicka vies ako som to myslel. Je prd platne ze je to povolene ked to nepouzije viac ako 4GB. Malo to byt plne funkcne uz v zakladnej konfiguracii. Problemovy ovladac si ma opravit vyrobca, ale netreba pisat nove ovladace (a aj tak pre XP robil snad kazdy nove ovladace). Navyse keby user chcel mohol to vypnut. A nie naopak.
Ja pisem cely cas len to ze IMHO to malo byt defaultne povolene a funkcne, a za to ze neni moze len MS (ci uz to MS obmedzil na 4GB zo strachu pred problemami alebo z debility to mi je fuk).
defaultne to nie je je povolene ani v Linuxe...
nemam chut dalej pokracovat v tejto debate, aj preto ze som na zaciatku reagoval na uplne iny problem...
informaciee boli poskytnute, je na kazdom aby si urobil obraz, myslim, ze kazdy kto aspon trochu chape suvislosti, si vytvoril nazor...
ak si zatazeny na Microsoft, je to tvoja vec, mna tiez MS neplati ale fakty su fakty a nebudem sa pred tym skryvat...