Mi a felhasználói mód és a kernel mód a Windows rendszerben?

Talán hallott már „kernel” vagy „felhasználói” módban futó alkalmazásokról. Minden azon múlik, hogyan működnek az operációs rendszerek, amikor elvégzik a munkájukat. Ha ezt megérted, könnyen megértheted a különbséget a felhasználói mód és a kernel mód között.

Az operációs rendszer működésének megértése(Does)

A számítógép hardverből, elektronikus alkatrészekből és szoftverekből áll, a hardver által végrehajtott számítógépes kódból. De ami kevésbé egyértelmű, az az, hogy hogyan működnek együtt.

A számítógép legfontosabb eleme a bit vagy „bináris számjegy”. Minden(” Everything) , amit egy számítógép csinál, egyesek és nullák formájában jelennek meg. A számítógép különböző(Different) komponensei különböző módon reprezentálják a biteket. A CPU -ban a mikroszkopikus tranzisztorok egyeseket és nullákat képviselnek, akár be-, akár kikapcsolva. Ezek a tranzisztorok logikai struktúrákba vannak rendezve, ezeket logikai kapuknak nevezzük.

Az elektronikus számítógép memóriájában a biteket memóriacellák képviselik, amelyek töltése egy bizonyos küszöbérték felett vagy alatt van. A mechanikus merevlemezen a biteket egy forgó tányéron mért mágneses fluktuációként ábrázolják. Az optikai lemezeken a lézerfényt visszaverő vagy nem visszaverő gödrök és földek ugyanazt a munkát végzik. 

Nem számít, hogyan valósítják meg a bináris kód fizikai megjelenítését, végül lecsökkentheti az összes fogyasztói számítógép-összetevőt erre a nyers gépi kódra.

Tehát hogyan lehet eljutni a számítógép emberbarát felületétől a nyers, alacsony szintű folyamatokig magában a számítógépben? Itt jön be az operációs rendszer. Közvetlenül vezérli a számítógép hardverét. 

Ez a szoftver lefordítja mindazt, amit az alkalmazások (és így a felhasználó) akarnak gépi kód utasításokká, amelyeket a CPU és más komponensek megértenek. A legkritikusabb szoftver ebben a folyamatban a kernel.

Mi a Kernel?

A kernel, ahogy a neve is sugallja, az operációs rendszer magja. A kernel egy olyan szoftver, amely a RAM -ban található, és mindent irányít, amit a számítógép csinál. Amikor valamit a memóriába írunk, akkor a kernel irányítja a végrehajtást.

A kernel tudja, hogyan kell kapcsolódni olyan hardverekhez, mint a GPU(GPUs) -k és a hálózati kártyák, de előfordulhat, hogy nem tudja, hogyan üzemeltetheti ezeket teljes potenciáljukban, a számítógépipar általános szabványaira támaszkodva.

A hardveres illesztőprogramok itt lépnek életbe. Az illesztőprogramok megmondják az operációs rendszernek, hogyan dolgozzon bizonyos összetevőkkel, ezért például különböző illesztőprogramokra van szüksége az Nvidia és az AMD GPU(AMD GPUs) -khoz.

A megfelelő illesztőprogramokkal felszerelve a kernel a legfőbb tekintély a számítógépen belül, beleértve az adatokat katasztrofálisan tönkretevő dolgokat is.

Az alkalmazásprogramozási interfészek(Application Programming Interfaces) ( API(APIs) -k ) szerepe(Role)

Az MS-DOS idejében a szoftverfejlesztőknek kifejezetten a felhasználó hardveréhez kellett megírniuk szoftvereiket. Ennek leghírhedtebb példája az MS-DOS rendszereken a hangkártya-illesztőprogramok voltak.

Egy adott videojátéknak támogatnia kell a legnépszerűbb kártyákat ( Sound Blaster , Ad-lib , Gravis Ultrasound stb.), és remélni kell, hogy a legtöbb játékos lefedett. Ma az API(APIs) -knak köszönhetően a dolgok egészen másképp működnek .

A Microsoft DirectX(Microsoft DirectX) jó példa erre. Ha mélyreható magyarázatot szeretne, nézze meg a Mi az a DirectX és miért fontos? (What Is DirectX and Why Is It Important?)A legfontosabb tudnivaló azonban, hogy az API szabványos módot kínál a szoftverfejlesztők számára, hogy hardvererőforrásokat kérjenek olyan összetevőktől, mint a GPU . Ezen túlmenően a hardvergyártóknak csak arról kell gondoskodniuk, hogy termékeik megfeleljenek a DirectX követelményeinek, hogy biztosítsák a teljes kompatibilitást bármely hasonló módon kompatibilis szoftverrel.

Az API(APIs) -k fordítási réteget kínálnak a szoftveralkalmazások és az alacsony szintű kernel között a hardver-illesztőprogramokkal. Igen, ez enyhe teljesítménybüntetéssel jár. Mégis, a modern számítógépeken ez elhanyagolható, és számos előnnyel jár, így végre elérkeztünk a felhasználói módhoz és a kernel módhoz.

Felhasználói mód vs. Kernel mód

A modern operációs rendszerek több száz vagy több ezer „folyamatot” futtatnak egyidejűleg, dinamikusan biztosítva számukra a CPU -időt a prioritásaik és a számítási teljesítményigényük alapján.

Amikor elindít egy alkalmazást, az folyamatokat generál, és a CPU végrehajthatja azokat felhasználói vagy kernel módban.

A felhasználói módban futó Windows -folyamatok csak a saját privát virtuális memória címteréhez és kezelőtáblájához férnek hozzá. A szoftver ezeket a táblázatokat használja az adatok RAM -ban való tárolására és az erőforrások lekérésére. Nincs közvetlen hozzáférés a memóriához vagy más hardverekhez, és az operációs rendszeren múlik, hogy ezeket a virtuális tereket a számítógép tényleges hardveréhez rendelje hozzá.

Ez több okból is jó, de a legfontosabb előny az, hogy az alkalmazás nem tud felülírni vagy módosítani a virtuális memória címterén kívüli adatokat. Ezenkívül bizonyos funkciók nem engedélyezettek a felhasználói módú folyamatokon, főleg azok, amelyek összeomolhatják a rendszert vagy megsemmisíthetik az adatokat.

Amikor egy folyamat elindul vagy kernel módba kerül, teljes hozzáféréssel rendelkezik a rendszererőforrásokhoz, még az operációs rendszer számára fenntartott erőforrásokhoz is. Tehát elméletileg felülírhatja az operációs rendszer megfelelő működéséhez szükséges kulcsfontosságú adatokat.

Csapdák és kivételek

Fontos megérteni, hogy ezt a két módot maga a CPU kényszeríti ki hardver szinten . Ha egy felhasználói módban futó alkalmazás olyan műveletet próbál végrehajtani, amelyhez kernel módú hozzáférés szükséges, akkor „csapdát” vagy „kivételt” generál. Az operációs rendszer ezután foglalkozik az alkalmazással, általában leállítja és összeomlási naplót generál, hogy a fejlesztők láthassák, mi történt a memóriában, amikor a dolgok elmentek.

A Kernel mód (Kernel Mode)veszélyei(Dangers) : A halál kék (Blue Screen)képernyője(Death)

Ha valaha is tapasztalt egy Blue Screen of Death -t (ki nem?), amely arra kényszerítette a számítógépét, hogy kikapcsoljon vagy újrainduljon, akkor jó eséllyel kernel módú folyamat volt a hibás.

Ha egy folyamat kernel módban olyasmit csinál, amit nem kellene, az operációs rendszer nem tud talpra állni, és az egész számítógép leáll. Amikor egy felhasználói módú folyamat tönkremegy, csak az alkalmazás összeomlik, a szoftver és az operációs rendszer többi része pedig probléma nélkül továbbléphet.

Ez az egyik olyan terület, ahol az API(APIs) -k alapvető szerepet játszanak, mivel ez az API kernel módú jogosultságokat kér. A felhasználói módú alkalmazások lényegében olyan kéréseket delegálnak az API -ra, amelyek kernel módú jogosultságokat igényeltek volna .

Ez az oka annak, hogy a kernel mód általában csak az alacsony szintű rendszerfolyamatok számára engedélyezett, amelyeknek közvetlenül hozzá kell férniük a számítógép hardveréhez. Általában ezt a jogosultságot kiterjesztik egy folyamatra, mert nagyobb teljesítményt igényel, mint amennyit a felhasználói mód nyújtani tud. Egyes CPU -utasítások csak kernel módban működnek, tehát ha egy folyamatnak használnia kell ezeket a funkciókat, akkor azt emelni kell.

Ha problémái vannak a Blue Screen of Death alkalmazással, feltétlenül olvassa el a Blue Screen of Death hibaelhárítási útmutatóját a Windows 10 rendszerhez(Blue Screen of Death Troubleshooting Guide for Windows 10) !



About the author

Szoftvermérnök vagyok, több mint 10 éves tapasztalattal a Windows mérnöki területen. Szakterületem a Windows alapú alkalmazások, valamint a Microsoft következő generációs Windows operációs rendszeréhez, a Windows 11-hez tartozó hardver és hangillesztőprogramok fejlesztése. A Windows-alkalmazások készítése terén szerzett tapasztalataim alapján különösen értékes eszköz vagyok minden olyan vállalat számára, amely innovatív technológiai termékeket fejleszt.



Related posts