Chráněný režim
Chráněný režim (anglicky protected mode, též protected virtual address mode, tj. režim chráněné virtuální paměti) je v informatice speciální operační režim mikroprocesorů rodiny x86 (a kompatibilních). Umožňuje v počítači například zajistit, že spuštěný program (tj. proces) nemůže zasahovat mimo svůj vymezený prostor (tj. nemůže zasahovat ani do jiných procesů ani do jádra operačního systému).
Chráněný režim byl uveden v 16bitovém procesoru Intel 80286 a vylepšen ve 32bitovém procesoru Intel 80386. Je podporován i 64bitovými procesory x86-64.
Charakteristika
Původní mikroprocesory pro počítače IBM PC kompatibilní používaly procesory 8086 a 8088 s podporou reálného režimu, který postrádal jakoukoliv možnost ochrany. Nebylo proto možné naprogramovat operační systém, který by umožnil navzájem oddělit operační systém i běžící procesy a tím ani nebylo možné zajistit správnou funkci multitaskingu.
Chráněný režim byl uveden v roce 1982 v 16bitovém procesoru Intel 80286, v roce 1986 byl vylepšen ve 32bitovém procesoru Intel 80386. Je k dispozici i ve všech kompatibilní procesorech. V roce 2003 byl uveden 64bitový procesor Opteron, který též podporuje chráněný režim a podporují ho i další x86-64 kompatibilní procesory z rodiny x86.
Mezi operační systémy, které chráněný režim používají, patří všechny verze Microsoft Windows z řady Windows NT, macOS, Linux (i Android, pokud běží na mikroprocesoru od firmy Intel), tedy všechny plně 32bitové systémy. Systém DOS je 16bitový a chráněný režim nepodporuje, ale mohou ho využívat některé jeho součásti (např. EMM386) nebo aplikace (např. hra Doom nebo starší verze Microsoft Windows).
Vlastnosti chráněného režimu
Chráněný režim přináší ve schopnostech mikroprocesorů několik nových vlastností, které dohromady umožňují naprogramovat moderní operační systém. Od moderních systémů provozovaných jako desktop nebo server se požaduje, aby zajistily:
- spolehlivý běh počítače
- podpora běhu více úloh najednou (multitasking)
- spuštěné procesy se nemohou navzájem ovlivňovat (ať už záměrně nebo kvůli programátorské chybě)
- jádro operačního systému má plnou kontrolu nad činností počítače (vynucuje dodržování přidělených oprávnění)
Ochrana paměti
Chráněný režim přináší podporu ochrany paměti, která umožňuje přidělit běžícímu procesu určitý úsek operační paměti a znemožnit, aby mohl zasahovat mimo tento vymezený prostor. Umožňuje tím zavést multitasking (v paměti může být najednou více procesů).
Privilegovaný režim
Privilegovaný režim umožňuje zajistit, aby neprivilegované procesy nemohly měnit nastavení, která byla provedena v privilegovaném režimu. Jádro operačního systému běží v privilegovaném režimu a všechny ostatní procesy v neprivilegovaném. Tak jádro neztratí nad počítačem kontrolu a jen jádro může procesům přidělovat a odebírat systémové prostředky, ukončovat je, vynucovat změnu kontextu, rozhodovat o dostatečném oprávnění k provedení určité činnosti atd.
Virtualizace paměti
Dále chráněný režim přináší pokročilou správu operační paměti, která spočívá v podpoře virtuální paměti pomocí stránkování, což usnadňuje provozování multitaskingu.
Virtualizace systému
Chráněný režim přináší také možnost virtualizace, takže uvnitř jednoho systému (hypervizor) lze provozovat jiný systém (virtualizovaný), který bude mít dojem, že má počítač jen pro sebe (je však pod kontrolou hypervizoru).
Zpětná kompatibilita
Procesory podporující chráněný režim zachovávají kvůli zpětné kompatibilitě i podporu staršího reálného režimu. To umožnilo používat již existujícího software (jak aplikační software, tak i operační systém DOS nebo starší Microsoft Windows).
Procesory rodiny x86 se dodnes z důvodu zpětné kompatibility spouštějí nejprve v reálném režimu a do chráněného režimu musí být teprve přepnuty, což moderní operační systémy (Microsoft Windows, Linux, macOS, …) dělají při bootování hned po aktivaci jádra.
Nové 64bitové procesory
Chráněný režim podporují i 64bitové procesory x86-64, které mají novou instrukční sadu, ale umí zajistit všechny výše zmíněné vlastnosti chráněného režimu u 32bitových procesorů. Navíc je u 64bitových procesorů rodiny x86 zajištěna zpětná kompatibilita, která umožňuje přepnout mikroprocesor do 32bitového nebo 16bitového režimu, ve kterém se chová stejně, jako původní procesory.