Privilegovaný režim

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Privilegovaný režim procesoru je v informatice metoda, jak ochránit počítačový systém proti chybě hardware nebo software. V privilegovaném režimu běží operační systém, zatímco uživatelské úlohy jsou procesorem prováděny v neprivilegovaném stavu. Procesor musí rozlišovat alespoň tyto dva stavy, avšak mohou jich rozlišovat i více.

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:

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.

Související informace naleznete také v článku Virtualizace.