miniatura|Anells de privilegi per al x86 disponibles al mode protegit En ciències de la computació, els dominis de protecció jeràrquica,Paul A. Karger, Andrew J. Herbert, An Augmented Capability Architecture to Support Lattice Security and traceability of Access, sp, p. 2, 1984 IEEE Symposium on Security and Privacy, 1984Walter Binder, Design and Implementation of the J-SEAL2 Mobile Agent nucli, saint, p. 35, 2001 Symposium on Applications and the Internet (SAINT'01), 2001 amb freqüència anomenats anells de protecció, són mecanismes per protegir dades i funcionalitat dels errors (tolerància a fallades) i comportament maliciós (seguretat de computadors). Aquest enfocament és diametralment oposat a la de la seguretat basada en capacitat.

Els sistemes operatius proporcionen diferents nivells d'accés als recursos. Un anell de protecció és un de dos o més nivells jeràrquics o capes de privilegis dins de l'arquitectura d'un sistema de computació. Això és generalment imposat pel maquinari per algunes arquitectures de CPU que ofereixen diferents modes de CPU en el maquinari o nivell de microcodi. Els anells estan disposats en una jerarquia des dels més privilegiats (de més confiança), usualment numerat zero, fins al menys privilegiat (de menys confiança), usualment amb el major nombre d'anell. En la majoria de sistemes operatius, l'anell 0 és el nivell amb la majoria dels privilegis i interacciona més directament amb el maquinari físic, com el CPU i la memòria.

Es proporcionen portes especials entre els anells per permetre a un anell exterior accedir als recursos d'un anell interior d'una manera predefinida, en lloc de permetre'n un ús arbitrari. Un accés correcte per portes entre els anells pot millorar la seguretat prevenint que els programes d'un anell o nivell de privilegi mai no usi els recursos destinats als programes d'un altre anell. Per exemple, s'ha d'evitar que el spyware que s'executa com un programa d'usuari a l'anell 3 encengui una càmera web sense informar a l'usuari, ja que l'accés al maquinari ha de ser una funció reservada l'anell 1 per als controladors de dispositius. Els programes com navegadors web corrent en els anells de nombres més alts, han de sol·licitar l'accés a la xarxa, un recurs restringit a un anell de numeració inferior.

Implementacions Els anells suportats en maquinari van ser alguns dels conceptes més revolucionaris introduïts pel sistema operatiu Multics, un altament segur predecessor de la família UNIX de sistemes operatius d'avui. No obstant això, la majoria dels sistemes de propòsit general usen només dos anells, encara que el maquinari on corren proporciona més mode de CPU. Per exemple, Windows XP i anteriors només utilitza dos anells, amb l'anell 0 corresponent al mode de nucli i l'anell 3 per al mode d'usuari.

Moltes modernes arquitectures de CPU (incloent la popular arquitectura Intel x86) inclouen alguna forma de protecció d'anell, encara que el sistema operatiu Windows NT, igual que el Unix, no explota plenament aquesta característica. L'OS/2 ho va fer fins a cert punt, ja que utilitza tres anells:\book\DDK\PDRREF.INF+5 Presentació Device Driver Reference for OS/2-5. Introduction to US/2 Presentació Drivers l'anell 0 per al codi del nucli i controladors de dispositius, l'anell 2 per al codi privilegiat (programes d'usuari amb permisos d'accés d'entrada/sortida) i l'anell 3 per al codi sense privilegis (gairebé tots els programes d'usuari). Sota DOS, el nucli, els controladors i les aplicacions típicament s'executen en l'anell 3, mentre que els controladors de memòria del 386, com el EMM386 corren en l'anell 0. Addicionalment, el EMM386 3.xx del DR-DOS pot córrer opcionalment alguns mòduls (com el DPMS) en l'anell 1. OpenVMS utilitza quatre maneres de trucades (en ordre decreixent de privilegis): nucli, executiu, supervisor i usuari.

Hi ha hagut un renovat interès en aquesta estructura de disseny, amb la proliferació del programari hipervisor Xen, el debat en curs sobre el nucli monolític o el micronucli (particularment en grups de notícies Usenet i fòrums d'Internet), l'estructura de disseny de l'anell 1 de Microsoft com a part de la seva iniciativa NGSCB i els hipervisores encastats al firmware, com el Intel VT-x (anteriorment Vanderpool).

L'original sistema Multics tenia vuit anells, però molts sistemes moderns en tenen menys. El maquinari és conscient en tot moment de l'anell actual del fil de la instrucció que s'està executant, gràcies a registres de màquina especials. En alguns sistemes, les àrees de memòria virtual són assignades en maquinari a números d'anells. Un exemple és el Data General Eclipsi MV/8000, en el qual els tres primers bits del PC serveix com el registre d'anell. Per tant, el codi que s'executa en el PC Virtual PC en 0xE200000, estaria automàticament en l'anell 7, per exemple, i cridar a una subrutina en una secció diferent de la memòria automàticament causaria una transferència d'anell.

El maquinari restringeix severament les maneres en què el control pot ser passat d'un anell a un altre, i també imposa restriccions en els tipus d'accés a la memòria que poden ser fets a través dels anells. Típicament hi ha una porta especial o instrucció de trucada que transfereix el control d'una manera segura cap a punts d'entrada predefinits en anells de menor nivell (de més confiança), això funciona com una trucada de supervisor en molts sistemes operatius que fan servir l'arquitectura d'anell. Les restriccions de maquinari estan dissenyades per limitar les oportunitats per violacions accidentals o malicioses de seguretat. A més, l'anell més privilegiat pot tenir capacitats especials (com l'adreçament de memòria real que passa per sobre de la del maquinari de memòria virtual).

En alguns sistemes, la protecció de l'anell pot ser combinada amb les maneres del processador (mestre/nucli/forma privilegiada versus esclau/usuari/mode no privilegiat). Els sistemes operatius que corren en maquinari que suporta ambdues poden usar les dues formes de protecció o només una.

L'ús eficaç de l'arquitectura d'anell requereix una estreta cooperació entre el maquinari i el sistema operatiu. Els sistemes operatius dissenyats per treballar en múltiples plataformes de maquinari poden fer només un ús limitat dels anells si no estan presents en cadascuna de les plataformes suportades. Sovint, el model de seguretat és simplificat a "nucli" i "usuari", encara que el maquinari ofereix una granularitat més fina a través d'anells.

Mode supervisor El mode de supervisor és un flag intervingut pel maquinari que pot ser canviat per codi corrent en el programari de nivell de sistema. Les tasques o fils a nivell de sistema tindran aquest flag activat mentre s'estan executant, mentre que les aplicacions en l'espai d'usuari no. Aquest flag determina si seria possible executar operacions de codi màquina com la modificació de registres per a diverses taules de descriptors o dur a terme operacions com ara desactivar les interrupcions. La idea de tenir dues maneres diferents per operar ve de "amb més control, ve més responsabilitat" - es confia que mai falli un programa en la manera supervisor, ja que una fallada pot provocar que tot el sistema operatiu de l'ordinador falli i s'aturi.

El mode supervisor és "una manera d'execució en alguns processadors que activa l'execució de totes les instruccions, incloent les privilegiades. També pot donar accés a un espai d'adreces diferent, al maquinari de maneig de memòria i altres perifèrics. Aquesta és la manera en què usualment corre el sistema operatiu ".FOLDOC supervisor model

En un nucli monolític, el sistema operatiu corre en mode supervisor i les aplicacions corren en mode d'usuari. Altres tipus de sistemes operatius, com els que tenen un exonucli o micronucli, no necessàriament comparteixen aquest comportament.

Alguns exemples del món del PC: Linux i Windows són dos sistemes operatius que utilitzen supervisor / mode usuari. Per realitzar funcions especialitzades, el codi de manera d'usuari ha de fer una trucada al sistema dins de la manera de supervisor o fins i tot a l'espai del nucli on el codi de confiança del sistema operatiu portarà a terme la tasca necessària i retornarà a l'espai d'usuari. DOS, així com altres sistemes operatius simples i molts dispositius encastats corren en mode de supervisor permanentment, el que significa que els controladors poden ser escrits directament com programes d'usuari. (Mentre no siguin carregats controladors de memòria 386 com el EMM386)

La majoria dels processadors tenen almenys dos modes diferents. Els processadors x86 tenen quatre modes diferents dividits en quatre diferents anells. Els programes que corren en l'anell 0 poden fer qualsevol cosa amb el sistema, i el codi que s'executa en anell 3 podríeu fallar en qualsevol moment sense que això afecti a la resta del sistema de computador. Els anells 1 i 2 són rarament usats, però pot ser configurats amb diferents nivells d'accés.

El canvi de "mode usuari" a "mode nucli" és, en la majoria dels sistemes existents, molt costós. S'ha mesurat que, en la sol·licitud bàsica de getpid, costa entre 100 i 1500 cicles en la majoria de les màquines. D'ells només al voltant de 100 són per al Swithen real (70 des de l'espai de l'usuari a l'espai del nucli, i 40 de tornada), la resta és "overhead del nucli".Jochen Liedtke. On μ-nucli Construction , Proc. 15th ACM Symposium on Operating System Principles (SOSP), desembre 1995 Ousterhout, J. K. 1990. Why aren't operating systems getting faster as faster in hardware? In USENIX Summer Conference, Anaheim, CA, pàg. 247 {256. Al microkernel L3 la minimització d'aquesta sobrecàrrega redueix el cost total al voltant de 150 cicles.

Maurice Wilkes va escriure:Maurice Wilkes Operating systems in a changing world ACM SIGOPS Operating Systems Review. Volume 28, Issue 2 (abril 1994). p. 9-21 ISSN 0163-5980 quote from

... it eventually became clear that the hierarchical protection that rings provided did not closely match the requirements of the system programmer and Gave little or no improvement on the simple system of having two modes only. Rings of protection lent themselves to efficient implementation in maquinari, but there was little else de ser said for them. […] The attractiveness of fine-grained protection remained, even after it was seen that rings of protection did not provide the answer ... This again proved a blind alley ...

... amb el temps va quedar clar que la protecció jeràrquica que els anells proporcionen no sempre concorda amb les exigències del programador de sistema, i tenir dos modes únics al sistema simple va donar poca o cap millora. Anells de protecció es presten a una implementació eficient en el maquinari, però hi havia poc més a dir sobre ells. […] L'atractiu de la protecció de granular fina es va mantenir, fins i tot després que s'ha vist que els anells de protecció no van donar la resposta ... Això de nou va resultar ser un carreró sense sortida ...

Per guanyar rendiment i determinisme, alguns sistemes col·loquen les funcions que probablement serien vistes com a lògica d'aplicació, en lloc de com controladors de dispositiu, de cap manera nucli; aplicacions de seguretat (control d'accés, tallafocs, etc.), i els monitors del sistema operatiu són citats com a exemples. Almenys un sistema de gestor de base de dades encastat, eXtremeDB Kernel Mode, ha estat desenvolupat específicament per a la implementació de manera de nucli, per proporcionar una base de dades local per a les funcions d'aplicació basades en el nucli, i per eliminar els canvis de context que en cas contrari ocorren quan interaccionen les funcions del nucli amb un sistema de base de dades corrent en mode usuari.Gorine, Andrei and Krivolapov, Alexander. "Kernel Mode Databases: A DBMS Technology For High-Performance Applications", Dr Dobb s Journal, May, 2008 ..