Reálný a chráněný adresový režim: Porovnání verzí
Bez shrnutí editace |
Bez shrnutí editace |
||
Řádek 65: | Řádek 65: | ||
== Aplikační kompatibilita reálného režimu == | |||
Z největší části, binární kompatibilita s kódem reálného režimu, schopnost k přístupu až 16 MB fyzické paměti a 1GB virtuální paměti byly největší změny na programových aplikacích. Avšak neprobíhalo to bez limitácií, pokud aplikace využila nebo se spoléhala na některé techniky uvedeny níže nebežala: | |||
Aritmetika segmentu | |||
Privilegované instrukce | |||
Přímý hardwarový přístup | |||
Psaní do části kódu | |||
Data provádění | |||
Segmenty překrývání | |||
Použití bios-ových funkcí, protože bios-ové přerušení patří Intel-uVe skutečnosti téměř všechny DOS aplikační programy porušily tyto pravidla. Kvůli těmto omezením byl vytvořen virtuální 8086 režim a povolen s 386. I přes takový potencionálním překážkám, Windows 3.x a jeho nástupci mohou využívat binární kompatibilitu s reálným režimem při spuštění aplikaci Windows 2.x, Které běžely v reálném režimu ve Windows 2.x. | |||
Verze z 20. 6. 2010, 16:01
Chráněný režim
Chráněný režim nebo chráněna virtuální adresace je provozní režim CPU kompatibilních s x86 .
Poprvé byl přidán do architektury x86tiek v roce 1982 , vydala ho společnost Intel jako procesor 80286 (286), ale až od procesoru 80386 (386) v roce 1985 se začal využívat v operačních systémech a aplikacích. Chránený režim dovoľuje systémovým programom využívať mnoho nových rysov navrhnutých k zlepšeniu multitaskingu (spracovanie viacerých úkonov naraz) ak lepšiemu ovládaniu aplikačných programov , napr. systém stránkovania , ochrana pamäti a podpora pre virtuálnu pamäť . Chráněný režim dovoluje systémovým programům využívat mnoho nových rysů navržených ke zlepšení multitaskingu (zpracování více úkonů najednou) ak lepšímu ovládání aplikačních programů , např. systém stránkování , ochrana paměti a podpora pro virtuální paměť.
Po zapnutí procesoru, který podporuje x86 chráněný režim, se začnou provádět příkazy v reálném režimu, aby se zaručila zpětná kompatibilita se staršími procesory. Chráněný režim může být zaveden až poté, co systémový program nastaví několik deskriptorových tabulek a umožní "Povolení ochrany " bit v Kontrolním registru 0 (CR0).
Kvůli přidaným zlepšení není chráněný režim stal základem pro všechny následující vylepšení na architektuře x86.
Historie
8086, předchůdce 286, byl původně navržen s 20-bitovou paměťovou adresové sběrnicí. Toto dovolovalo procesoru přístup 220 bajtů paměti, ekvivalentní k 1 mebibajtov. V té době byl 1 mebibajt považován za relativně velké množství paměti, a tak návrháři z IBM Personal Computer rezervovali prvních 640 kilobajtů pro aplikace a použití operačního systému a zbylých 384 kilobajtů bylo rezervováno pro základní vstupně-výstupní systém (BIOS) a paměť pro přídavné zařízení.
Jak plynul čas, cena paměti se nepřetržitě klesala a využití se zvětšilo. Omezování 1MB se nakonec stalo významným problémem. Intel zamýšlel rešit tuto limitaci spolu s jinými vydáním 286
286
Prvotní chráněný režim, vydaný s 286, už nebyl velmi používaný. Několik nedostatků, jako neschopnost přístupu k BIOS-u a neschopnost změnit zpět do reálného režimu bez resetování procesoru zabránil širšímu uplatnění. Toto bylo brzděné faktem, že 286 dovolovala přístup k paměti v 16 bitech, 216 bajtů, ekvivalent k 64 kilobajtů, přístupných v čase.
Zpětná kompatibilita s předchůdci 8086 byla udržována tím, že při spuštěn se zahajuje reálný režim. Funkce reálného režimu umožnily starším programem běžet bez zbytečné modifikace na novějších 286. Pro přístup k dodatečným funkcím 286, operační systém nastavoval procesor do chráněného režimu. Toto umožnilo 24 bitovou adresace, která dovolovala procesoru přístup 224 bajtů paměti, tedy 16 megabytů.
386
S vydáním 386 v roce 1985, mnoho problémů zabránilo rozsáhlému přijetí předchozího chráněného režimu.
386 vydali s adresové sběrnicí velikosti 32 bitů, která dovoluje přístup do 232 bajtů paměti, ekvivalent ke 4 gigabajtům. Segmentová velikost byla rovněž zvýšena na 32 bitů, což znamenalo, že 4GB mohly být zpřístupněny bez zbytečného přepínání mezi segmentmi.
Chráněný režim je nyní využíván doslova ve všech moderních operačních systémů, které fungují na x86 architektuře, např. Microsoft Windows, Linux, a mnoho jiných.
S vydáním 386 následující další prvky byly přidány k chráněnému režimu
Stránkování 32-bitový fyzický a virtuální adresového prostoru (32 bitový fyzický adresového prostoru není součást 80386SX a jiných 386 procesorových variant, které používají starší 286 sběrnici.) 32-bitová segmentová část Schopnost přepínání se zpět k reálnému režimu Virtuální 8086 režim
Vstupy a výstupy chráněného režimu
Až do vydání 386, chráněný režim neposkytoval přímou metodu pro vrácení se do reálného režimu jakmile už jednou byl přepnut do chráněného režimu. IBM vytvořilo obkľučku, která zahrnovala rese-tování CPU a ukládání systémových registrů, ukazatel zásobníku a často i masku přerušení v real-time hodinách čipu RAM. Toto dovolovalo BIOS-u navrátit CPU do stejného stavu a začít provádět kód před resetem.
Pro vstup do chráněného režimu, musela být vytvořena globální tabulka deskritporov (GDT) s minimálně třemi záznamy: nulový deskriptor, kódový segmentový deskriptor a datový segmentový deskriptor. 20. adresové řádek (A20 řádek) také musel dovolovat použití všech adresových řádků takže CPU mohl přistupovat za 1MB paměti (pouze prvních 20. bylo povolených použivat až po spuštění Aby byl zaručen kompatibility se starším softwarem). Po provedení těchto dvou kroků, PE bit musel být nastaven v CR0 rejstříku a druhý skok se musel uskutečnit k vyčištění vstupní fronty.
Rysy
Chráněný režim má množství nových znaků navržených ke zlepšení kontroly operačního systému nad aplikačním softwarem, aby zvětšil bezpečnost a stabilitu systému. Tyto bonusy dovolují operačnímu systému fungovat způsobem, který by jinak byl významně těžší nebo dokonce nemožný bez pořádné hardwarové podpory
Privilegované úrovně
V chráněném režimu existují 4 privilegované úrovně nebo prstence, Začínají od 0 po 3, kde prstenec 0 je najprivilegovanejší a 3 nejméně privilegovaný. Používání prstenců dovoluje programovému vybavení omezit úkoly z prístupneních dat, volací brány nebo vykonávat privilegované instrukce.
Ve většině prostředí, operační systémy a některé ovladače zařízení běží v prstenci 0 a aplikace běží v prstenci 3
Aplikační kompatibilita reálného režimu
Z největší části, binární kompatibilita s kódem reálného režimu, schopnost k přístupu až 16 MB fyzické paměti a 1GB virtuální paměti byly největší změny na programových aplikacích. Avšak neprobíhalo to bez limitácií, pokud aplikace využila nebo se spoléhala na některé techniky uvedeny níže nebežala:
Aritmetika segmentu Privilegované instrukce Přímý hardwarový přístup Psaní do části kódu Data provádění Segmenty překrývání Použití bios-ových funkcí, protože bios-ové přerušení patří Intel-uVe skutečnosti téměř všechny DOS aplikační programy porušily tyto pravidla. Kvůli těmto omezením byl vytvořen virtuální 8086 režim a povolen s 386. I přes takový potencionálním překážkám, Windows 3.x a jeho nástupci mohou využívat binární kompatibilitu s reálným režimem při spuštění aplikaci Windows 2.x, Které běžely v reálném režimu ve Windows 2.x.
Reálný režim
Reálný režim, také volal skutečný adresový režim, je způsob práce 80286 a pozdnější x86-slučitelná CPU. Reálný režim je charakterizován 20 bitové rozdělené paměti osloví prostor, přímý softwarový přístup k biosovým rutinám a hardwaru periférie a žádnou představu o ochraně paměti nebo multitaskingu na hardwarové úrovni. Všichni x86 procesory v 80286 sériích a pozdnější začátek v reálném režimu u síly-na; 80186 CPU a dříve měl jen jeden operační režim, který je ekvivalentní k reálnému režimu v pozdnějších čipech.
Historie
286 architektury představilo chráněný režim, počítat s (kromě jiného) hardware-úrovňová ochrana paměti. Používat tyto nové rysy vyžadovalo nový operační systém, který byl specificky určen pro to. Od primární designové specifikace mikroprocesorů x86 je to oni jsou úplně zpět slučitelní se softwarem psaným pro všechny čipy x86 před nimi, 286 čipu bylo děláno k začátku v ' reálný režim ' — to je, v režimu který sešel z nových pamětových ochranných rysů, tak že to mohlo provozovat operační systémy psaný pro 8086 a 80186. K tomuto dni dokonce i nejnovějším x86 CPU (včetně x86 _ 64 CPU) začátek v reálném režimu u síly-na, a může provozovaný software psaný pro nějaký předchozí čip. DOS operační systémy (MS-DOS, DR-DOS, etc.) pracovat v reálném režimu. Brzy verze Microsoft Windows vpustily reálný režim, až do Windows 386, který vpustil chráněný režim a více úplně pochopená Windows 3.0, který mohl vpustit jeden skutečný nebo chráněný režim. Windows 3.0 mohl vlastně vběhnout dva “příchuti” chráněného režimu - “standardní režim”, který běžel používat chráněný režim, a “386-zlepšil režim”, který je virtualized verze standardního režimu a tak by nepokračoval dál 286. Windows 3.1 odstranil podporu pro režim Reala, a to bylo první tradiční provozní podmínky, které vyžadovaly přinejmenším 80286 procesoru. Téměř všechny moderní x86 operační systémy (unix, linux, OS/2, Mac OS, Windows 95 a pozdnější, etc.) měnit procesor do chráněného režimu u startu.
Zdroje:
http://sk.wikipedia.org/wiki/Chr%C3%A1nen%C3%BD_re%C5%BEim
http://wikipedia.infostar.cz/r/re/real_mode.html
--Jakub Charvát 11. 6. 2010, 08:24 (UTC)