Mikä on käyttäjätila vs. ydintila Windowsissa

Olet ehkä kuullut sovelluksista, jotka toimivat "ytimen" tai "käyttäjän" tilassa. Kaikki riippuu siitä, kuinka käyttöjärjestelmät toimivat tehdessään työtään. Kun ymmärrät sen, on helppo ymmärtää ero käyttäjätilan ja ydintilan välillä.

Käyttöjärjestelmän toiminnan ymmärtäminen(Does)

Tietokone koostuu laitteistosta, elektronisista komponenteista ja ohjelmistoista, tämän laitteiston suorittamasta tietokonekoodista. Mutta mikä voi olla vähemmän selvää, on se, kuinka he toimivat yhdessä.

Tietokoneen oleellisin elementti on bitti tai "binäärinumero". ”Kaikki(” Everything) , mitä tietokone tekee, esitetään ykkösinä ja nolliksina. Tietokoneen eri(Different) komponentit edustavat bittejä eri tavoin. CPU : ssa mikroskooppiset transistorit edustavat ykkösiä ja nollia joko päällä tai pois päältä. Nämä transistorit on järjestetty loogisiksi rakenteiksi, joita kutsutaan logiikkaporteiksi.

Elektronisessa tietokoneen muistissa bittejä edustavat muistisolut, joiden varaus on joko tietyn kynnyksen ylä- tai alapuolella. Mekaanisella kiintolevyllä bitit esitetään magneettisina vaihteluina, jotka mitataan pyörivällä lautasella. Optisilla levyillä kuopat ja maat, jotka heijastavat tai eivät heijasta laservaloa, tekevät saman työn. 

Riippumatta siitä, kuinka binäärikoodin fyysinen esitys saavutetaan, voit lopulta vähentää kaikki kuluttajatietokoneen komponentit tähän raakakonekoodiin.

Joten miten siirryt tietokoneen ihmisystävällisestä käyttöliittymästä itse tietokoneen raaka-aineisiin, matalan tason prosesseihin? Siellä käyttöjärjestelmä tulee mukaan. Se ohjaa suoraan tietokoneen laitteistoa. 

Tämä ohjelmisto kääntää kaikki sovellukset (ja siten käyttäjä) haluavat konekoodin käskyiksi, jotka CPU ja muut komponentit ymmärtävät. Tämän prosessin kriittisin ohjelmisto on ydin.

Mikä on ydin?

Ydin on, kuten nimestä voi päätellä, käyttöjärjestelmän ydin. Ydin on ohjelmisto, joka sijaitsee RAM -muistissa ja ohjaa kaikkea mitä tietokone tekee. Kun jotain kirjoitetaan muistiin, ydin ohjaa suoritusta.

Ydin osaa liittää laitteistot, kuten grafiikkasuorittimet(GPUs) ja verkkokortit, mutta se ei välttämättä osaa käyttää niitä täysimääräisesti, koska se luottaa tietokoneteollisuuden yleisiin standardeihin.

Laitteisto-ohjaimet tulevat esiin tässä. Ajurit kertovat käyttöjärjestelmällesi kuinka toimia tiettyjen komponenttien kanssa, minkä vuoksi tarvitset erilaisia ​​ajureita esimerkiksi Nvidia- ja AMD-grafiikkasuorittimiin(AMD GPUs) .

Oikeilla ohjaimilla varustettu ydin on tietokoneen ylin auktoriteetti, mukaan lukien asioiden tekeminen, jotka voivat tuhota tiedot katastrofaalisesti.

Sovellusohjelmointirajapintojen rooli(Role) ( API(Application Programming Interfaces) ) _ _(APIs)

MS-DOSin(MS-DOS) aikoina ohjelmistokehittäjien oli kirjoitettava ohjelmistonsa erityisesti käyttäjän laitteistoa varten. Tunnetuin esimerkki tästä MS-DOS- järjestelmissä olivat äänikorttiohjaimet.

Tietyn videopelin tulee tukea suosituimpia kortteja ( Sound Blaster , Ad-lib , Gravis Ultrasound jne.) ja toivoa, että useimmat pelaajat ovat katettuja. Nykyään asiat toimivat hyvin eri tavalla API(APIs) :iden ansiosta .

Microsoft DirectX on hyvä esimerkki. Jos haluat perusteellisen selityksen, katso Mikä on DirectX ja miksi se on tärkeää? (What Is DirectX and Why Is It Important?)Tärkeintä on kuitenkin tietää, että API tarjoaa ohjelmistokehittäjille vakiotavan pyytää laitteistoresursseja GPU :n kaltaisista komponenteista . Lisäksi laitteistovalmistajien on vain varmistettava, että heidän tuotteensa ovat DirectX :n mukaisia, jotta ne ovat täysin yhteensopivia kaikkien samoin yhteensopivien ohjelmistojen kanssa.

API(APIs) :t tarjoavat käännöskerroksen ohjelmistosovellusten ja matalan tason ytimen välillä laitteisto-ajureineen. Kyllä, tästä seuraa pieni suoritusrangaistus. Silti nykyaikaisissa tietokoneissa tämä on merkityksetöntä, ja sillä on useita etuja, jolloin pääsemme lopulta käyttäjätilaan ja ydintilaan.

Käyttäjätila vs. ydintila

Nykyaikaiset käyttöjärjestelmät suorittavat satoja tai tuhansia "prosesseja" samanaikaisesti, antaen niille dynaamisesti CPU -aikaa tarpeen mukaan niiden prioriteettien ja laskentatehovaatimusten perusteella.

Kun käynnistät sovelluksen, se luo prosesseja, ja CPU voi suorittaa ne joko käyttäjätilassa tai ydintilassa.

Käyttäjätilassa toimivalla Windows -prosessilla on pääsy vain omaan yksityiseen virtuaalimuistiin osoiteavaruuteen ja kahvataulukkoon. Ohjelmisto käyttää näitä taulukoita tietojen tallentamiseen RAM -muistiin ja resurssien pyytämiseen. Muistiin tai muihin laitteistoihin ei ole suoraa pääsyä, ja käyttöjärjestelmän tehtävänä on yhdistää nämä virtuaalitilat tietokoneen todelliseen laitteistoon.

Tämä on hyvä monesta syystä, mutta tärkein etu on, että sovellus ei voi korvata tai muuttaa tietoja virtuaalisen muistin osoiteavaruutensa ulkopuolella. Lisäksi tietyt toiminnot eivät ole rajoitettuja käyttäjätilan prosesseihin, pääasiassa ne, jotka voivat kaataa järjestelmän tai tuhota tietoja.

Kun prosessi käynnistyy tai se nostetaan ydintilaan, sillä on täysi pääsy järjestelmäresursseihin, jopa käyttöjärjestelmälle varattuihin. Joten teoriassa se voi korvata tärkeitä tietoja, jotka käyttöjärjestelmä tarvitsee toimiakseen kunnolla.

Ansoja ja poikkeuksia

On tärkeää ymmärtää, että prosessori(CPU) itse pakottaa nämä kaksi tilaa laitteistotasolla . Jos käyttäjätilassa toimiva sovellus yrittää tehdä jotain, joka vaatii kernel-tilan pääsyn, se luo "ansan" tai "poikkeuksen". Käyttöjärjestelmä käsittelee sitten sovellusta, yleensä sulkemalla sen ja luomalla kaatumislokin, jotta kehittäjät voivat nähdä, mitä tapahtui muistissa, kun asiat menivät raiteilta.

Ydintilan (Kernel Mode)vaarat(Dangers) : Kuoleman sininen (Blue Screen)näyttö(Death) _ _

Jos olet koskaan kokenut Blue Screen of Deathin(Death) (kuka ei?), joka pakotti tietokoneesi sammumaan tai käynnistymään uudelleen, on hyvä mahdollisuus, että syynä oli ydintilan prosessi.

Kun ydintilassa oleva prosessi tekee jotain, mitä sen ei pitäisi tehdä, käyttöjärjestelmä ei voi toipua siitä ja koko tietokone pysähtyy. Kun käyttäjätilan prosessi menee pieleen, vain sovellus kaatuu, ja muu ohjelmisto ja käyttöjärjestelmä voivat toimia ilman ongelmia.

Tämä on yksi alue, jossa API(APIs) :illa on olennainen rooli, koska se on sovellusliittymä(API) , joka pyytää kernel-tilan oikeuksia. Käyttäjätilan sovellukset siirtävät API(API) :lle pyynnöt, jotka olisivat vaatineet ydintilan oikeuksia .

Tästä syystä kernel-tila myönnetään yleensä vain matalan tason järjestelmäprosesseille, joiden on päästävä suoraan tietokoneen laitteistoon. Yleensä tämä etuoikeus laajennetaan prosessiin, koska se tarvitsee enemmän suorituskykyä kuin käyttäjätila voi tarjota. Jotkut suorittimen(CPU) käskyt toimivat vain ydintilassa, joten jos prosessin on käytettävä näitä toimintoja, se on korotettava.

Jos sinulla on ongelmia Blue Screen of Deathin(Death) kanssa, muista lukea Blue Screen of Death -vianmääritysopas Windows 10:lle(Blue Screen of Death Troubleshooting Guide for Windows 10) !



About the author

Olen ammattimainen ääniinsinööri, jolla on yli 10 vuoden kokemus. Olen työskennellyt monenlaisissa projekteissa pienistä kodin äänijärjestelmistä suuriin kaupallisiin tuotantoihin. Taitoni on luoda erinomaisia ​​ääniraitoja ja äänenkäsittelytyökaluja, jotka saavat musiikin kuulostamaan upealta. Olen myös erittäin kokenut Windows 10:n kanssa, ja voin auttaa sinua saamaan kaiken irti tietokonejärjestelmästäsi.



Related posts