Privilegovaný režim
Privilegovaný režim procesoru je ve výpočetní technice takový mód vykonávání strojového kódu procesorem, který dovoluje používat větší než nejvíce restriktivní podmnožinu instrukční sady; předmětným omezením se sleduje zabránění procesu v možném narušení stability běhu operačního systému tím, že by (bez spoluúčasti entity běžící v privilegovaném režimu) mohl zasahovat do jiné než pro vykonávání svého vlastního kódu přidělené paměti.
V privilegovaných režimech běží kmenové rutiny operačního systému a tzv. ovladače, což je software, jehož logikou je definováno, jak se zachází s konkrétními periferními zařízeními (klávesnicí, myší, pevným diskem, síťovým adaptérem, zvukovou kartou atd.). Kýžené stability je přitom dosahováno tak, že na vývojáře ovladačů se kladou mnohem vyšší nároky než na programátory aplikačního software, ovladače nemohou zavádět uživatelé s běžnou úrovní oprávnění nebo jejich binární podoby podléhají digitálnímu podepisování.
Princip činnosti
[editovat | editovat zdroj]Procesory s privilegovaným režimem rozeznávají alespoň dvě úrovně – privilegovaný a neprivilegovaný stav. V privilegovaném stavu je procesoru dovoleno provádět privilegované strojové instrukce, které mohou ohrozit chod počítače a v tomto režimu běží pouze jádro operačního systému (tzv. kernel space). V neprivilegovaném stavu lze provádět pouze neprivilegované instrukce, které chod počítače ohrozit nemohou a běží v něm všechny uživatelské programy (tzv. user space).
Pokus o provedení privilegované instrukce v neprivilegovaném stavu vede k aktivaci operačního systému (privilegovaná část programového vybavení počítače), který může zodpovědný proces ukončit nebo po příslušných kontrolách požadovanou operaci provést a výsledky dosadit.
Procesory mohou rozeznávat více úrovní zabezpečení (anglicky ring) a tím pádem i více různých skupin strojových instrukcí. Tvůrci operačního systému mohou (ale nemusí) všechny úrovně využít například pro oddělený běh ovladačů hardware (ovšem za cenu snížení výkonu). V každém případě musí být schopnost rozeznávat různé úrovně součástí návrhu procesoru již při výrobě a veškerá pravidla a rozdělení instrukcí do skupin musí být provedena tak, aby nedošlo k narušení vyšší úrovně z nižší úrovně (ringu).
Mezi privilegované instrukce patří například:
- řízení CPU
- zákaz přerušení
- práce se speciálními registry
- práce s vstupními a výstupními zařízeními
- nastavení mapování paměti
Další využití
[editovat | editovat zdroj]Skutečnost, že procesor (resp. operační systém) může dosadit výsledky do instrukcí, které nebyly díky aktivnímu neprivilegovanému stavu vykonány, využívá virtualizace nebo simulace neexistujícího hardware.
Teoreticky je tedy možné zajistit, aby například pod Windows XP fungoval DOSový program, který přistupuje přímo na sériový port. Ve skutečnosti ale tato možnost není v řadě Windows NT implementována, a tak staré programy, které přistupují přímo k hardware pomocí instrukcí IN/OUT, nemohou v standardním 32bitovém systému Windows fungovat.
Naopak při virtualizaci umožňuje dosazení výsledků zcela běžně simulovat v počítači kompletní (neexistující) počítač a spustit si tak například další operační systém jako běžnou úlohu, kterou počítač zpracovává. Hostovaný operační systém pak až na zpoždění nemůže zjistit, že nemá celý počítač jen pro sebe.