Protected mód a virtuální paměť
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Unix gives you just enough rope to hang yourself -- and then a
couple of more feet, just to be sure.
-- Eric Allman
... We make rope.
-- Rob Gingell on Sun Microsystem's new virtual memory.
Protected mód je to, co se většinou skrýva pod reklamou na 32
bitový operační systém. Správnému operačnímu systému by mělo být
vpodstatě jedno, na kolikabitovém procesoru běží (vyjma limitů
na některé věci - jako soubory. Jednou z mála výhod "64 bitových"
operačních systému je to, že soubor může být delší než 4GB).
Protected mód ale dává systému nové a netušené možnosti.
Protected mód umožňuje jednomu řídícímu programu mít kontrolu
nad ostatními. Může jim povolovat a zakazovat nejrůznější věci
a různě je tahat za nos. Může jim například říct, že mají sound
blaster, všechny jejich přístupy na sound blaster chytit a provádět
na GUSovi. Také umožňuje multitásking - operační systém může procesu
nakukat, že běží na počítači sám, ale přesto ho kykoliv přerušit
a předat řízení jinému atd...
Jednou z nejkrásnějších věcí protected módu je virtuální paměť.
Paměť, kterou program vidí vůbec nemusí být pamětí počítače. Paměť
se rozdělí na stránky (4KB) a při přístupu k ní, se nejprve zjistí
o jakou stránku se jedná a potom se v tabulce vyhledá, kde daná
stránka ve fyzické paměti je a podstrčí se programu.
Je tím tedy možné nakukat procesu, že má paměť sám pro sebe.
Od adresy 0 že začíná jeho kód a od nějaké další adresy že začíná
neomezená volná paměť. Ostatní věci v paměti - systém, bios,
další procesy, videoram se před programem schová. Nemůže tedy tyto
věci nijak ohrozit. Také je ke stránkám dávat přístupová práva -
dát programu nějakou část pouze pro čtení (například kód sdílené
knihovny), nebo pouze pro provádění apod.
Navíc se operační systém dozví v případě, že tyto přístupová
práva byla porušena. Toho lze využít pro virtuální paměť. Pokud není
dost fyzické paměti, uloží se nějaké části na disk. Zablokuje se
potom přístup k této části paměti. V případě, že tam proces znova
vleze, paměť se opět načte z disku a proces tak nic nepozná.
Volná paměť potom může být stejně velká, jako fyzická plus volné
místo na disku dohromady.
Pokud proces chce přistupovat například k videoram, může
to sdělit operačnímu systému a ten mu potom vidoram může přidat
do jeho paměti ("namapovat") tam, kam si proces řekl.
Bohužel ale DOS podle Microsoftí terminologie "není 32 bitový
operační systém" a proto dosáhnout protected módu není vůbec žádná
legrace.
výheň