Hvad er brugertilstand vs kernetilstand i Windows

Du har måske hørt om programmer, der kører i "kerne"- eller "bruger"-tilstand. Det hele afhænger af, hvordan operativsystemer fungerer, når de udfører deres arbejde. Når du først forstår det, er det nemt at forstå forskellen mellem brugertilstand og kernetilstand.

Forstå, hvad et operativsystem gør(Does)

En computer består af hardware, de elektroniske komponenter og software, computerkoden, der udføres af denne hardware. Men hvad der måske er mindre klart, er hvordan de arbejder sammen.

En computers vigtigste element er bit eller "binære ciffer. ” Alt(” Everything) , hvad en computer gør, er repræsenteret som etaller og nuller. Forskellige(Different) computerkomponenter repræsenterer bits på forskellige måder. I en CPU repræsenterer mikroskopiske transistorer etaller og nuller ved enten at være tændt eller slukket. Disse transistorer er arrangeret i logiske strukturer, kaldet logiske porte.

I elektronisk computerhukommelse er bits repræsenteret af hukommelsesceller, der enten har en ladning over eller under en vis tærskel. På en mekanisk harddisk er bits repræsenteret som magnetiske udsving målt på en roterende tallerken. På optiske diske udfører gruber og områder, der gør eller ikke reflekterer laserlys, det samme arbejde. 

Uanset hvordan den fysiske repræsentation af binær kode opnås, kan du i sidste ende reducere alle forbrugercomputerkomponenter til denne rå maskinkode.

Så hvordan går man fra en computers menneskevenlige grænseflade til de rå processer på lavt niveau i selve computeren? Det er her, operativsystemet kommer ind i billedet. Det styrer direkte computerens hardware. 

Denne software oversætter alt, hvad applikationer (og dermed brugeren) ønsker til maskinkodeinstruktionerne, som CPU'en(CPU) og andre komponenter forstår. Det mest kritiske stykke software i denne proces er kernen.

Hvad er kernen?

Kernen er, som navnet antyder, kernen i styresystemet. Kernen er software, der ligger i RAM og styrer alt, hvad computeren gør. Når noget er skrevet ind i hukommelsen, er det kernen, der styrer udførelsen.

Kernen ved, hvordan den skal kommunikere med hardware såsom GPU'er(GPUs) og netværkskort, men den ved muligvis ikke, hvordan den skal betjene dem til deres fulde potentiale, idet den er afhængig af generiske standarder i computerindustrien.

Hardware-driverne kommer i spil her. Drivere fortæller dit operativsystem, hvordan det skal arbejde med specifikke komponenter, hvorfor du for eksempel har brug for forskellige drivere til Nvidia og AMD GPU'er(AMD GPUs) .

Udstyret med de rigtige drivere er kernen den ultimative autoritet inden for computeren, herunder at gøre ting, der katastrofalt kan ødelægge data.

Rollen af ​​applikationsprogrammeringsgrænseflader(Application Programming Interfaces) ( API'er(APIs) ) _(Role)

I tiden med MS-DOS måtte softwareudviklere skrive deres software specifikt til brugerens hardware. Det mest berygtede eksempel på dette på MS-DOS- systemer var lydkortdrivere.

Et givet videospil ville skulle understøtte de mest populære kort ( Sound Blaster , Ad-lib , Gravis Ultrasound osv.) og håbe, at de fleste spillere var dækket. I dag fungerer tingene meget anderledes, takket være API'er(APIs) .

Microsoft DirectX er et godt eksempel. Hvis du vil have en dybdegående forklaring, så tjek Hvad er DirectX, og hvorfor er det vigtigt? (What Is DirectX and Why Is It Important?)Det vigtigste at vide er dog, at API'en(API) tilbyder en standard måde for softwareudviklere at bede om hardwareressourcer fra komponenter som GPU'en(GPU) . Derudover må hardwareproducenter kun sikre, at deres produkter er i overensstemmelse med DirectX for at sikre fuld kompatibilitet med enhver tilsvarende kompatibel software.

API'er(APIs) tilbyder et lag af oversættelse mellem softwareapplikationer og lavniveaukernen med dens hardwaredrivere. Ja, dette kommer med en lille præstationsstraf. På moderne computere er dette stadig ubetydeligt, og det kommer med en række fordele, og det er her, vi endelig kommer til brugertilstand og kernetilstand.

Brugertilstand vs. kernetilstand

Moderne operativsystemer kører hundredvis eller tusindvis af "processer" samtidigt, hvilket dynamisk giver dem CPU- tid efter behov baseret på deres prioriteter og krav til beregningskraft.

Når du starter et program, genererer det processer, og CPU'en(CPU) kan udføre dem i enten brugertilstand eller kernetilstand.

En Windows -proces, der kører i brugertilstand, har kun adgang til sit eget private virtuelle hukommelsesadresserum og håndteringstabel. Softwaren bruger disse tabeller til at gemme data i RAM og anmode om ressourcer. Der er ingen direkte adgang til hukommelse eller anden hardware, og det er op til operativsystemet at kortlægge disse virtuelle rum til computerens faktiske hardware.

Dette er godt af mange grunde, men den mest afgørende fordel er, at applikationen ikke kan overskrive eller ændre data uden for dens virtuelle hukommelsesadresserum. Derudover er visse funktioner ude af grænser for processer i brugertilstand, hovedsageligt dem, der kan crashe systemet eller ødelægge data.

Når en proces starter eller ophøjes til kernetilstand, har den fuld adgang til systemressourcer, selv dem, der er reserveret til operativsystemet. Så i teorien kan det overskrive vigtige data, som operativsystemet skal bruge for at køre korrekt.

Fælder og undtagelser

Det er vigtigt at forstå, at disse to tilstande håndhæves på hardwareniveau af CPU'en(CPU) selv. Hvis et program, der kører i brugertilstand, forsøger at gøre noget, der kræver kernetilstandsadgang, genererer det en "fælde" eller "undtagelse". Operativsystemet vil derefter håndtere applikationen, normalt ved at lukke den ned og generere en crash-log, så udviklerne kan se, hvad der skete i hukommelsen, da tingene gik af sporet.

The Dangers of Kernel Mode : The Blue Screen of Death

Hvis du nogensinde har oplevet en Blue Screen of Death (hvem har ikke det?), der tvang din computer til at slukke eller genstarte, er der en god chance for, at det var en kernetilstandsproces, der skyldtes.

Når en proces i kernetilstand gør noget, den ikke skal, kan operativsystemet ikke genoprette det, og hele computeren stopper. Når en proces i brugertilstand går galt, er det kun applikationen, der går ned, og resten af ​​softwaren og operativsystemet kan fortsætte uden problemer.

Dette er et område, hvor API'er(APIs) spiller en væsentlig rolle, da det er API'en(API) , der beder om kernetilstandsprivilegier. Brugertilstandsapplikationer uddelegerer i det væsentlige anmodninger, der ville have krævet kernetilstandsrettigheder til API'en(API) .

Dette er grunden til, at kernetilstand normalt kun gives til systemprocesser på lavt niveau, der skal have direkte adgang til computerens hardware. Normalt udvides dette privilegium til en proces, fordi den kræver mere ydeevne, end brugertilstanden kan give. Nogle CPU- instruktioner virker kun i kernetilstand, så hvis en proces skal bruge disse funktioner, skal den forhøjes.

Hvis du har problemer med Blue Screen of Death , skal du sørge for at læse vores Blue Screen of Death-fejlfindingsvejledning til Windows 10(Blue Screen of Death Troubleshooting Guide for Windows 10) !



About the author

"Jeg er freelance-ekspert i Windows og Office. Jeg har over 10 års erfaring med at arbejde med disse værktøjer og kan hjælpe dig med at få mest muligt ud af dem. Mine færdigheder omfatter: at arbejde med Microsoft Word, Excel, PowerPoint og Outlook; skabe web sider og applikationer; og hjælpe kunder med at nå deres forretningsmål."



Related posts