Linux & NT - omezení 4GB

Milan Kerslager milan.kerslager na spsselib.hiedu.cz
Úterý Duben 13 01:32:08 CEST 1999


Dobré ráno,

dnes kolem půlnoci jsem TO nevydržel a poslal p. Dočekalovi tento dopis.
Protože do jádra a procesoru Intel až tolik nevidím, prosil bych o
zdrcující kritiku. Hlavně bych chtěl vědět, jak že to funguje v BSD,
někdo tu naznačil, že tam je mechanizmus jiný (nebo ne?).
Dopis je stručný, ale případné doplnění uvítají jistě i ostatní. Pokud
mi je zašlete na soukromou adresu, pošlu během týdne sumář (případně i
DD).

------- Forwarded Message Follows -------

From:           Milan Keršláger <milan.kerslager na spsselib.hiedu.cz>
To:             dd na namodro.cz
Subject:        Linux & NT - omezení 4GB
Date sent:      Tue, 13 Apr 1999 00:24:31 +0100 MET

Dobrý den,

Vážený pane Dočekal. Vaše obhajování produktů firmy Microsoft je
ohromující. Nepřekrucujte však technická data:

Procesor Intel ve své nynější podobě je schopen adresace 4GB paměti.
Všechny rozumné systémy využijí tento adresní prostor dle svého.
Jak Linux, tak NT používají model, kdy jádro systému sídlí v jedné
části adresního prostoru, do které se mapuje i fyzická paměť a procesy,
které si třeba i Vy pouštíte, obývají zbývající část adresního prostoru
procesoru. To umožňje efektivně mapovat virtuální adresní prostor
procesů do adresního prostoru jádra, který zahrnuje i fyzickou paměť
(rozumějte - DIMMy či SIMMy, které si kupujete). Finta je v tom, že
prázdné místo ve virtuálním adresním prostoru procesů můžete kromě
mapování do RAM mapovat i na disk. To je pojem virtuální paměti, určitě
jste o tom už slyšel (lidově "swapování").
Jednotlivé OS mohou tuto hranici nastavovat různě. Windows NT zvolily
strategii 2+2 GB, což znamená, že systém může pojmout 2GB RAM mínus
prostor pro jádro a jeho datové struktury. Každý proces pak může ve
virtuální paměti namapovat také 2GB, více prostě nemůže.
Linux zvolil z pochopitelných důvodů model 1+3, protože pak lze
pracovat ve virtuálním adresním prostoru s více daty. V současné době
je už nejméně půl roku tato hranice VOLITELNÁ. Je to od té doby, co se
vyskytli první lidé, kteří na svých strojích měli více jak cca 960MB RAM
(to je ten 1GB - jádro+rezerva). NT mají hranici pevnou, ovšem 4GB RAM v
nich stejně jako v Linuxu nevyužijete - problémem je použitý procesor,
kapacita jeho adresní sběrnice a logika adresování.

Že Linux zvolil jako základní model 1+3 vyplývá z potřeb aplikací,
které tak získávají spoustu virtuálního adresního prostoru. Jako bonus
lze pak velkoryse mapovat soubory do paměti, což výrazně urychlí
přístup k datům na disku na rozdíl od klasického čtení disk - cache -
buffer - pamět (takto jen disk - paměť).

Proč NT zvolila 2+2? Protože hranici nelze měnit, protože nevlastníme
nikdo zdrojové kódy, které tak nelze jednoduše upravit. Posun u Linuxu
není problém, u NT by to znamenalo novou instalaci a to byste je
nepochválil. Ani zmenšení virtuálního adresního prostoru na 2GB není u
NT problém - managment virtuální paměti je tak mizerný, že by to nemělo
cenu. Jen si zkuste vzít 16MB RAM a přidat 32MB odkládacího souboru.
Systém bude nepohyblivý už při obsazení jeho půlky. Příčin je
několik. Například - odkádání do souboru je pomalé a neefektivní.
Rychlejší je mít speciální partition (ještě lépe na speciálním disku),
kde se neberou ohledy na strukturu filesystému.

Závěr tedy zní, že jste se velice mýlil v článku, který zaštiťujete
jakousi "hodnotící" agenturou. Buď máte mizerné zdroje nebo tomu
nerozumíte. Můžete si vybrat - poslední a elegantní možnost je:
"Spletl jsem se".

Zdroj:  http://svet.namodro.cz/go/r-art.asp?id=990410003
Článek: Linux stále pozadu za konvečními Unixy

PS: z uvedeného vyplývá, že lze nastavit hranici např. i 3.95GB + 50MB,
    ovšem v tom případě budete mít pro každý svůj program pouze 50MB
    adresního prostoru, víc nenamapujete, i když váš systém bude
    oplývat téměř 4GB RAMky, nespustíte žádný větší program.

Přeji Vám pěkný den.
                             S pozdravem MK.

Milan Keršláger, http://www.spsselib.hiedu.cz/~kerslage/

Vysvětlení: Jako učitel doufám, že jste se něco přiučil, ještě že
            je u nás školství zdarma!


Další informace o konferenci Linux