Vad är användarläge vs kärnläge i Windows
Du kanske har hört talas om applikationer som körs i "kärna" eller "användarläge". Allt beror på hur operativsystem fungerar när de gör sitt jobb. När du väl förstår det är det lätt att förstå skillnaden mellan användarläge och kärnläge.
Förstå vad ett operativsystem gör(Does)
En dator består av hårdvara, elektroniska komponenter och mjukvara, datorkoden som exekveras av den hårdvaran. Men det som kanske är mindre tydligt är hur de fungerar tillsammans.
En dators viktigaste element är biten eller "binär siffra. ” Allt(” Everything) en dator gör representeras som ettor och nollor. Olika(Different) datorkomponenter representerar bitar på olika sätt. I en CPU representerar mikroskopiska transistorer ettor och nollor genom att antingen vara på eller av. Dessa transistorer är arrangerade i logiska strukturer, kallade logiska grindar.
I elektroniskt datorminne representeras bitar av minnesceller som antingen har en laddning över eller under en viss tröskel. På en mekanisk hårddisk representeras bitar som magnetiska fluktuationer mätt på en snurrande tallrik. På optiska skivor gör gropar och landområden som reflekterar eller inte reflekterar laserljus samma jobb.
Oavsett hur den fysiska representationen av binär kod uppnås, kan du så småningom reducera alla konsumentdatorkomponenter till denna råa maskinkod.
Så hur går man från det människovänliga gränssnittet på en dator till de råa processerna på låg nivå i själva datorn? Det är där operativsystemet kommer in. Det styr direkt datorns hårdvara.
Denna programvara översätter allt applikationer (och därmed användaren) vill ha till maskinkodinstruktionerna som CPU och andra komponenter förstår. Den mest kritiska mjukvaran i denna process är kärnan.
Vad är kärnan?
Kärnan är, som namnet antyder, kärnan i operativsystemet. Kärnan är programvara som finns i RAM och styr allt som datorn gör. När något skrivs in i minnet är det kärnan som styr exekveringen.
Kärnan vet hur man samverkar med hårdvara som GPU:er(GPUs) och nätverkskort, men den kanske inte vet hur man använder dem till sin fulla potential, eftersom den förlitar sig på generiska standarder inom datorindustrin.
Hårdvarudrivrutinerna spelar in här. Drivrutiner talar om för ditt operativsystem hur man arbetar med specifika komponenter, varför du till exempel behöver olika drivrutiner för Nvidia och AMD GPU(AMD GPUs) .
Utrustad med rätt drivrutiner är kärnan den ultimata auktoriteten inom datorn, inklusive att göra saker som katastrofalt kan förstöra data.
Rollen för applikationsprogrammeringsgränssnitt(Application Programming Interfaces) ( API(APIs) ) _(Role)
På MS-DOS(MS-DOS) dagar var mjukvaruutvecklare tvungna att skriva sin programvara specifikt för användarens hårdvara. Det mest ökända exemplet på detta på MS-DOS- system var drivrutiner för ljudkort.
Ett givet videospel skulle behöva stödja de mest populära korten ( Sound Blaster , Ad-lib , Gravis Ultrasound , etc.) och hoppas att de flesta spelarna var täckta. Idag fungerar saker väldigt annorlunda, tack vare API:er(APIs) .
Microsoft DirectX är ett bra exempel. Om du vill ha en djupgående förklaring, kolla in Vad är DirectX och varför är det viktigt? (What Is DirectX and Why Is It Important?)Det viktigaste att veta är dock att API :et erbjuder ett standardsätt för mjukvaruutvecklare att be om hårdvaruresurser från komponenter som GPU . Dessutom måste maskinvarutillverkare bara se till att deras produkter överensstämmer med DirectX för att säkerställa full kompatibilitet med all mjukvara som också är kompatibel.
API(APIs) :er erbjuder ett lager av översättning mellan mjukvaruapplikationer och lågnivåkärnan med dess hårdvarudrivrutiner. Ja, detta kommer med ett litet prestationsstraff. Ändå, på moderna datorer, är detta försumbart, och det kommer med en mängd fördelar, vilket är där vi äntligen kommer till användarläge och kärnläge.
Användarläge kontra kärnläge
Moderna operativsystem kör hundratals eller tusentals "processer" samtidigt, vilket dynamiskt ger dem CPU- tid efter behov baserat på deras prioriteringar och krav på beräkningskraft.
När du startar ett program genererar det processer och CPU :n kan köra dem i antingen användarläge eller kärnläge.
En Windows -process som körs i användarläge har bara tillgång till sitt eget privata virtuella minnesadressutrymme och hanteringstabell. Programvaran använder dessa tabeller för att lagra data i RAM och begära resurser. Det finns ingen direkt tillgång till minne eller annan hårdvara, och det är upp till operativsystemet att mappa dessa virtuella utrymmen till datorns faktiska hårdvara.
Detta är bra av många anledningar, men den mest avgörande fördelen är att applikationen inte kan skriva över eller ändra data utanför sitt virtuella minnesadressutrymme. Dessutom är vissa funktioner förbjudna för processer i användarläge, främst sådana som kan krascha systemet eller förstöra data.
När en process startar eller höjs till kärnläge har den full tillgång till systemresurser, även de som är reserverade för operativsystemet. Så i teorin kan det skriva över avgörande data som operativsystemet behöver för att fungera korrekt.
Fällor och undantag
Det är viktigt att förstå att dessa två lägen upprätthålls på hårdvarunivå av processorn(CPU) själv. Om ett program som körs i användarläge försöker göra något som kräver åtkomst i kärnläge, genererar det en "fälla" eller "undantag". Operativsystemet kommer sedan att hantera applikationen, vanligtvis genom att stänga av den och generera en kraschlogg så att utvecklarna kan se vad som hände i minnet när saker gick av stapeln.
The Dangers of Kernel Mode : The Blue Screen of Death
Om du någonsin har upplevt en Blue Screen of Death (vem har inte gjort det?) som tvingade din dator att stänga av eller starta om, finns det en god chans att det var en process i kärnläge att skylla på.
När en process i kärnläge gör något den inte är tänkt att göra, kan operativsystemet inte återhämta sig från det, och hela datorn stannar. När en process i användarläge går i stå är det bara applikationen som kraschar, och resten av programvaran och operativsystemet kan fortsätta utan problem.
Detta är ett område där API(APIs) :er spelar en viktig roll eftersom det är API :et som ber om kärnlägesprivilegier. Användarlägesapplikationer delegerar i huvudsak förfrågningar som skulle ha krävt kärnlägesprivilegier till API :et .
Detta är anledningen till att kärnläge vanligtvis bara ges till systemprocesser på låg nivå som behöver komma åt datorns hårdvara direkt. Vanligtvis utökas denna behörighet till en process eftersom den behöver mer prestanda än vad användarläget kan ge. Vissa CPU- instruktioner fungerar bara i kärnläge, så om en process behöver använda dessa funktioner måste den höjas.
Om du har problem med Blue Screen of Death , se till att läsa vår Blue Screen of Death-felsökningsguide för Windows 10(Blue Screen of Death Troubleshooting Guide for Windows 10) !
Related posts
Hur man aktiverar mörkt läge i Windows 11
Hur man installerar Windows 11 med ett lokalt konto
6 sätt att logga ut från Windows 11 -
Hur man startar Windows 11 i felsäkert läge (8 sätt) -
5 sätt att skapa och lägga till en ny användare i Windows 11 -
Chipset och moderkort som stöder Windows 11 operativsystem
Hur man loggar ut från e-postkontot i Mail-appen i Windows 11
Hur man installerar Windows Subsystem för Linux på Windows 11
Fix Datorn måste stödja TPM 2.0-fel när du installerar Windows 11
Så här fixar du Windows 11-viloläge som inte fungerar
Så här justerar du webbkamerans ljusstyrka i Windows 11
Aktivera eller inaktivera Wi-Fi och Ethernet-adapter på Windows 11
Hur fungerar funktionen Dynamic Refresh Rate i Windows 11
Hur du aktiverar eller inaktiverar Snap Layouts på Windows 11
Windows 11 Releasedatum, pris, hårdvarukrav
Hur man aktiverar God Mode i Windows 11
Klicka här för att ange ditt senaste autentiseringsmeddelande i Windows 11
Hur man aktiverar mörkt läge i Windows 11 -
7 sätt att byta användare i Windows 11 -
Visa eller dölj ikoner i Aktivitetsfältets hörnspillområde på Windows 11