Käyttäjätila - User space
Nykyaikainen tietokone käyttöjärjestelmä yleensä erottelee virtuaalimuistin osaksi ydintilamäärän ja käyttäjän tilaa . Ensisijaisesti tämä erottelu suojaa muistia ja suojaa laitteistoa haitalliselta tai virheelliseltä ohjelmistokäyttäytymiseltä.
Ytintila on ehdottomasti varattu etuoikeutetun käyttöjärjestelmän ytimen , ytimen laajennusten ja useimpien laiteajurien käyttämiseen . Sitä vastoin käyttäjätila on muistialue, jolla sovellusohjelmistot ja jotkin ohjaimet suoritetaan.
Yleiskatsaus
Termi userland (tai käyttäjätila) viittaa kaikkeen koodiin, joka toimii käyttöjärjestelmän ytimen ulkopuolella. Userland viittaa yleensä erilaisiin ohjelmiin ja kirjastoihin , joita käyttöjärjestelmä käyttää vuorovaikutuksessa ytimen kanssa: ohjelmisto, joka suorittaa syöttöä/lähtöä , käsittelee tiedostojärjestelmäobjekteja , sovellusohjelmistoja jne.
Jokainen käyttäjä tilaa prosessi toimii normaalisti omalla virtuaalimuistin tilaa, ja, ellei nimenomaisesti sallittu, ei voi käyttää muistia muiden prosessien. Tämä on perusta muistin suojaukselle nykypäivän valtavirran käyttöjärjestelmissä ja rakennuspalikka etuoikeuksien erottamiseen . Erillistä käyttäjätilaa voidaan käyttää myös tehokkaiden virtuaalikoneiden rakentamiseen - katso Popekin ja Goldbergin virtualisointivaatimukset . Prosessit, joilla on riittävästi oikeuksia, voivat pyytää ytimen yhdistämään osan toisen prosessin muistitilasta omaansa, kuten virheenkorjainten tapauksessa . Ohjelmat voivat myös pyytää jaettuja muistialueita muiden prosessien kanssa, vaikka käytettävissä on myös muita tekniikoita prosessien välisen viestinnän mahdollistamiseksi .
| Käyttäjätila | Käyttäjäsovellukset | bash , LibreOffice , GIMP , Blender , 0 AD , Mozilla Firefox , ... | ||||
|---|---|---|---|---|---|---|
| Järjestelmän osat |
Demoneja : systemd , runit , udevd , polkitd , sshd , smbd ... |
Ikkunahallinta : X11 , Wayland , SurfaceFlinger (Android) |
Grafiikka : Mesa , AMD Catalyst , ... |
Muut kirjastot: GTK , Qt , EFL , SDL , SFML , FLTK , GNUstep , ... |
||
| C -standardikirjasto |
fopen, execv, malloc, memcpy, localtime, pthread_create... (enintään 2000 aliohjelmia ) glibc tavoitteena on nopea, MUSL ja uClibc tavoite sulautetut järjestelmät, Bionic kirjoitettu Android jne Kaikki pyrkivät olemaan POSIX- / SUS -yhteensopivia. |
|||||
| Ytimen tila | Linux -ydin |
stat, splice, dup, read, open, ioctl, write, mmap, close, exit, Jne (noin 380 systeemikutsuja) Linux-ydin järjestelmä soittaa Interface (SCI tavoitteena on olla POSIX- / SUS -yhteensopiva) |
||||
|
Prosessien ajoituksen osajärjestelmä |
IPC -osajärjestelmä |
Muistinhallinnan osajärjestelmä |
Virtuaalitiedostojen alijärjestelmä |
Verkko -osajärjestelmä |
||
| Muut komponentit: ALSA , DRI , evdev , LVM , laitekartoitin , Linux Network Scheduler , Netfilter Linux Security Modules : SELinux , TOMOYO , AppArmor , Smack |
||||||
| Laitteisto ( suoritin , keskusmuisti , tietojen tallennuslaitteet jne.) | ||||||
Toteutus
Yleisin tapa toteuttaa käyttäjän tila erillään ydintilassa sisältää käyttöjärjestelmän suoja renkaat . Suojarenkaat puolestaan toteutetaan CPU -tiloja käyttäen . Tyypillisesti ytimen avaruusohjelmat toimivat ytintilassa , jota kutsutaan myös valvojatilaksi ; normaalit sovellukset käyttäjätilassa toimivat käyttäjätilassa.
Monet käyttöjärjestelmät ovat yhden osoiteavaruuden käyttöjärjestelmiä- niillä on yksi osoitetila kaikille käyttäjätilakoodeille. (Ytimen moodikoodi voi olla samassa osoitetilassa tai toisessa osoiteavaruudessa). Monilla muilla käyttöjärjestelmillä on prosessikohtainen osoitetila, erillinen osoitetila kullekin käyttäjätilaprosessille.
Toinen kokeellisissa käyttöjärjestelmissä käytetty lähestymistapa on, että kaikilla ohjelmistoilla on yksi osoitetila ja että ohjelmointikielen semantiikka varmistaa, että mielivaltaista muistia ei voida käyttää - sovellukset eivät yksinkertaisesti voi saada mitään viittauksia kohteisiin, joita he eivät saa käyttää pääsy. Tämä lähestymistapa on toteutettu JXOS: ssa , Unununiumissa ja Microsoftin Singularity -tutkimushankkeessa.
Katso myös
Huomautuksia
Viitteet
Ulkoiset linkit
- Linux -ytimen tilan määritelmä
- Käyttäjätilaan siirtyminen Wayback Machine -laitteella (arkistoitu 26. maaliskuuta 2016)