Što je korisnički način u odnosu na kernel način u sustavu Windows

Možda ste čuli za aplikacije koje se izvode u "kernel" ili "korisničkom" načinu rada. Sve se svodi na to kako operativni sustavi rade kada rade svoj posao. Kada to shvatite, lako je shvatiti razliku između korisničkog načina rada i načina rada jezgre.

Razumijevanje onoga što operativni sustav radi(Does)

Računalo se sastoji od hardvera, elektroničkih komponenti i softvera, računalnog koda koji izvršava taj hardver. Ali ono što je možda manje jasno je kako rade zajedno.

Najvažniji element računala je bit ili „binarna znamenka. ” Sve što(” Everything) radi računalo predstavljeno je kao jedinice i nule. Različite(Different) komponente računala predstavljaju bitove na različite načine. U CPU -u , mikroskopski tranzistori predstavljaju jedinice i nule tako što su uključeni ili isključeni. Ti tranzistori su raspoređeni u logičke strukture, nazvane logička vrata.

U memoriji elektroničkog računala bitovi su predstavljeni memorijskim ćelijama koje imaju naboj iznad ili ispod određenog praga. Na mehaničkom tvrdom disku bitovi su predstavljeni kao magnetske fluktuacije mjerene na ploči koja se vrti. Na optičkim diskovima, jame i zemlje koje reflektiraju ili ne reflektiraju lasersko svjetlo rade isti posao. 

Bez obzira na to kako se postiže fizički prikaz binarnog koda, na kraju možete svesti sve komponente računala potrošača na ovaj sirovi strojni kod.

Dakle, kako prijeći od sučelja prilagođenog ljudima na računalu do sirovih procesa niske razine u samom računalu? Tu dolazi operativni sustav. On izravno kontrolira hardver računala. 

Ovaj softver prevodi sve što aplikacije (a samim tim i korisnik) žele u upute strojnog koda koje razumiju CPU i druge komponente. Najkritičniji dio softvera u ovom procesu je kernel.

Što je kernel?

Kernel je, kao što ime govori, jezgra operacijskog sustava. Kernel je softver koji se nalazi u RAM- u i usmjerava sve što računalo radi. Kada se nešto zapiše u memoriju, kernel je ta koja usmjerava izvršenje.

Kernel zna kako se sučeljavati s hardverom kao što su GPU-ovi(GPUs) i mrežne kartice, ali možda neće znati kako ih koristiti do punog potencijala, oslanjajući se na generičke standarde u računalnoj industriji.

Ovdje dolaze u obzir hardverski drajveri. Upravljački programi govore vašem operativnom sustavu kako raditi s određenim komponentama, zbog čega su vam potrebni različiti drajveri za Nvidia i AMD GPU(AMD GPUs) , na primjer.

Opremljen pravim upravljačkim programima, kernel je ultimativni autoritet unutar računala, uključujući radnje koje mogu katastrofalno uništiti podatke.

Uloga aplikacijskih (Role)programskih(Application Programming Interfaces) sučelja ( API(APIs) )

U danima MS-DOS-a(MS-DOS) , programeri softvera morali su pisati svoj softver posebno za hardver korisnika. Najozloglašeniji primjer ovoga na MS-DOS sustavima bili su upravljački programi zvučnih kartica.

Određena video igra morala bi podržavati najpopularnije kartice ( Sound Blaster , Ad-lib , Gravis Ultrasound , itd.) i nadati se da je većina igrača pokrivena. Danas stvari rade sasvim drugačije, zahvaljujući API-jima(APIs) .

Microsoft DirectX je izvrstan primjer. Ako želite detaljno objašnjenje, pogledajte Što je DirectX i zašto je važan? (What Is DirectX and Why Is It Important?)Međutim, najvažnije je znati da API nudi standardni način na koji programeri softvera traže hardverske resurse od komponenti poput GPU -a . Osim toga, proizvođači hardvera moraju samo osigurati da su njihovi proizvodi usklađeni s DirectX -om kako bi osigurali potpunu kompatibilnost s bilo kojim softverom koji je također usklađen.

API-ji(APIs) nude sloj prijevoda između softverskih aplikacija i kernela niske razine sa svojim hardverskim upravljačkim programima. Da, ovo dolazi s malom kaznom izvedbe. Ipak, na modernim računalima to je zanemarivo, a dolazi s nizom prednosti, gdje konačno dolazimo do korisničkog načina rada i načina rada jezgre.

Korisnički način u odnosu na kernel način

Moderni operativni sustavi pokreću stotine ili tisuće "procesa" istovremeno, dinamički im dajući CPU vrijeme prema potrebi na temelju njihovih prioriteta i zahtjeva za računskom snagom.

Kada pokrenete aplikaciju, ona generira procese, a CPU ih može izvršiti u korisničkom ili kernel načinu.

Windows proces koji se izvodi u korisničkom načinu ima pristup samo svom privatnom adresnom prostoru virtualne memorije i tablici rukovanja. Softver koristi ove tablice za pohranu podataka u RAM i traženje resursa. Nema izravnog pristupa memoriji ili drugom hardveru, a na operacijskom je sustavu da preslika te virtualne prostore na stvarni hardver računala.

To je dobro iz mnogo razloga, ali najvažnija prednost je ta što aplikacija ne može prepisati ili mijenjati podatke izvan svog adresnog prostora virtualne memorije. Osim toga, određene funkcije su zabranjene za procese u korisničkom načinu rada, uglavnom one koji bi mogli srušiti sustav ili uništiti podatke.

Kada se proces pokrene ili je podignut na način rada jezgre, ima puni pristup resursima sustava, čak i onima koji su rezervirani za operativni sustav. Dakle, u teoriji, to bi moglo prebrisati ključne podatke koje operacijski sustav treba da radi ispravno.

Zamke i iznimke

Važno je razumjeti da se ova dva načina rada na hardverskoj razini provodi sam CPU . Ako aplikacija koja radi u korisničkom načinu pokušava učiniti nešto što zahtijeva pristup u načinu rada jezgre, generira "zamku" ili "iznimku". Operativni sustav će se tada pozabaviti aplikacijom, obično tako što će je isključiti i generirati zapisnik o padu kako bi programeri mogli vidjeti što se dogodilo u memoriji kada su stvari krenule izvan tračnica.

Opasnosti (Dangers)kernel(Kernel Mode) moda : Plavi (Death)ekran(Blue Screen) smrti _

Ako ste ikada doživjeli Plavi ekran (Blue Screen)smrti(Death) ( tko nije?) koji je prisilio vaše računalo da se isključi ili ponovno pokrene, postoji velika šansa da je kriv proces u načinu rada jezgre.

Kada proces u kernel modu učini nešto što ne bi trebao, operativni sustav se ne može oporaviti od toga i cijelo računalo se zaustavlja. Kada proces u korisničkom načinu rada krene naopako, samo se aplikacija ruši, a ostatak softvera i operativni sustav mogu se nastaviti bez ikakvih problema.

Ovo je jedno područje u kojem API-ji(APIs) igraju bitnu ulogu budući da API traži privilegije u načinu rada jezgre. Aplikacije u korisničkom načinu rada u biti delegiraju zahtjeve koji bi zahtijevali privilegije načina rada jezgre na API .

To je razlog zašto je kernel-mode obično dodijeljen samo sistemskim procesima niske razine koji trebaju izravno pristupiti hardveru računala. Obično se ova privilegija proširuje na proces jer treba više performansi nego što može pružiti korisnički način. Neke CPU upute rade samo u kernel modu, pa ako proces treba koristiti te funkcije, mora biti povišen.

Ako imate problema s Plavim zaslonom(Blue Screen) smrti , svakako pročitajte naš Vodič za rješavanje problema Plavog ekrana smrti za Windows (Blue Screen of Death Troubleshooting Guide for Windows 10)10(Death) !



About the author

Profesionalni sam audio inženjer s više od 10 godina iskustva. Radio sam na nizu projekata, od malih kućnih audio sustava do velikih komercijalnih produkcija. Moje vještine leže u stvaranju izvrsnih zvučnih zapisa i alata za obradu zvuka koji čine da glazba zvuči izvrsno. Također imam izuzetno iskustvo sa sustavom Windows 10 i mogu vam pomoći da izvučete maksimum iz svog računalnog sustava.



Related posts