CPU modovi

**CPU modovi** (također poznati kao **procesor modovi**, **CPU stejtovi**, **CPU leveli privilegija** i sl.) operativni su modovi za centralnu procesorsku jedinicu većine računarskih arhitektura, koji postavljaju ograničenja na tip i obim operacija koje se kroz instrukcije od CPU-a mogu izvoditi. Naprimjer, ovaj dizajn omogućava operativnom sistemu da vrši rad sa većim privilegijama od aplikacionog softvera tako što operativni sistemi i aplikacije rade u različitim režimima.

U idealnom slučaju, samo visoko povjerljiv kernel kod smije izvršavati sve u neograničenom režimu; sve ostalo (uključujući i nenadzorne dijelove operativnog sistema) radi u ograničenom režimu i mora koristiti sistemski poziv (putem prekida) da zahtijeva od kernela da izvrši neku operaciju u njegovo ime, ako bi ta operacija mogla oštetiti ili ugroziti sistem. To čini nemogućim da nepouzdani programi mijenjaju ili oštećuju druge programe (ili sam računar). Upravljački program uređaja dizajniran je da bude dio kernela zbog potrebe za čestim pristupom ulazno/izlaznim operacijama.

Više modova može biti implementirano, npr. omogućavajući hipervizoru da pokreće više nadzornika operativnog sistema ispod sebe, što je osnovni dizajn mnogih današnjih sistema virtualnih mašina.

## Tipovi modova 
*Dodatne informacije o međudjelovanju između nivoa apstrakcije CPU-a i OS-a: Protection ring*

Neograničeni mod često se zove kernel mod, ali postoje i mnogi drugi nazivi (master mod, supervizor mod, privilegovani mod i sl.). Ograničeni modovi obično se nazivaju korisnički modovi, ali su poznati i pod nazivima slave mod, problem state itd.

### Hipervizor 
: Hipevizorski mod koristi se za podršku virtualizaciji, omogućavajući simultanu operaciju više operativnih sistema.

### Kernel i korisnik 
: U kernel modu, CPU može izvršavati bilo koju operaciju dozvoljenu svojom arhitekturom; svaka instrukcija se može izvršiti, svaka ulazno-izlazna operacija inicirati, pristupiti bilo kojoj memorijskoj lokaciji itd. U drugim CPU režimima, hardver nameće određena ograničenja operacijama CPU-a. Tipično, određene instrukcije nisu dozvoljene (posebno one, uključujući ulazno-izlazne operacije, koje mogu promeniti globalno stanje mašine), određeni memorijski segmenti nisu dostupni itd. Mogućnosti CPU-a u korisničkom režimu obično su podskup onih dostupnih u kernel režimu, ali u nekim slučajevima, kao što je hardverska emulacija nenativnih arhitektura, one se mogu značajno razlikovati od standardnog kernel moda.
:

Neke CPU arhitekture podržavaju više modova, često sa hijerarhijom privilegija. Takve arhitekture se često opisuju kao sigurnosne arhitekture zasnovane na prstenovima (*ring-based security*), gde hijerarhija privilegija liči na niz koncentričnih prstenova, sa kernel modom u centru. Multics hardver bio je prva značajna implementacija sigurnosti zasnovane na prstenovima, ali mnoge druge hardverske platforme su dizajnirane po sličnom principu, uključujući Intel 80286 u zaštićenom modu i IA-64, iako se u tim slučajevima koristi drugačiji naziv.

Zaštita moda može se proširiti i na resurse izvan samog hardvera CPU-a. Hardverski registri prate trenutni operativni režim CPU-a, ali dodatni registri virtuelne memorije, unosi u tabelu stranica i drugi podaci mogu pratiti identifikatore režima za druge resurse. Naprimjer, CPU može raditi u Ring 0, što je naznačeno status rječju u samom CPU-u, ali svaki pristup memoriji može se dodatno validirati prema zasebnom broju prstena za segment virtuelne memorije na koji se pristupa i/ili prema broju prstena za fizičku stranicu koja se cilja (ako postoji). Ovo je demonstrirano na PSP prenosnom sistemu.

Hardver koji ispunjava virtualizacijske zahtjeve prema Popeku i Goldbergu znatno olakšava pisanje softvera koji efikasno podržava virtualnu mašinu. Takav sistem može pokretati softver koji "vjeruje" da je pokrenut u supevizor modu, ali u stvari radi u korisničkom modu.

## Arhitekture 
Nekoliko računarskih sistema predstavljenih 1960-ih, kao što su IBM System/360, DEC PDP-6/PDP-10, GE-600/Honeywell 6000 serija i Burroughs B5000 i B6500 serije, podržavaju dva CPU moda: jedan mod koji omogućava sve privilegije kodu koji se u njemu izvršava, te mod koji spriječava direktan pristup ulazno/izlaznim uređajima i nekim drugim hardverskim resursima kodu koji se u njemu izvršava.

Prvi režim se naziva raznim imenima, npr.: supervizor stejt (System/360), izvršni mod (PDP-6/PDP-10), master mod (GE-600 serija), kontrolni mod (B5000 serija) i kontrolni stejt (B6500 serija). Drugi režim se naziva: problem stejt (System/360), korisnički mod (PDP-6/PDP-10), slave mod (GE-600 serija) i normal stejt (B6500 serija); u B5000 seriji postoji više nekontrolnih režima.

### RISC-V 
RISV-V ima tri glavna CPU moda: korisnički mod (U - *user mode*), supervizorski mod (S - *supervisor mode*), te mašinski mod (M - *machine mode*).

Virtualizacija je podržana kroz ortogonalnu CSR postavku umjesto četvrtog moda.

## Reference 
Kategorija:Centralna procesorska jedinica
Kategorija:Sigurnost računara