Czym jest tryb użytkownika a tryb jądra w systemie Windows?

Być może słyszałeś o aplikacjach działających w trybie „jądra” lub „użytkownika”. Wszystko zależy od tego, jak działają systemy operacyjne, gdy wykonują swoją pracę. Kiedy już to zrozumiesz, łatwo zrozumiesz różnicę między trybem użytkownika a trybem jądra.

Zrozumienie działania systemu operacyjnego(Does)

Komputer składa się ze sprzętu, elementów elektronicznych i oprogramowania, kodu komputerowego wykonywanego przez ten sprzęt. Mniej jasne może być jednak to, jak ze sobą współpracują.

Najistotniejszym elementem komputera jest bit lub „cyfra binarna”. „Wszystko(” Everything) , co robi komputer, jest przedstawiane jako jedynki i zera. Różne(Different) komponenty komputera reprezentują bity na różne sposoby. W procesorze(CPU) mikroskopijne tranzystory reprezentują jedynki i zera, gdy są włączone lub wyłączone. Tranzystory te są ułożone w struktury logiczne, zwane bramkami logicznymi.

W elektronicznej pamięci komputera bity są reprezentowane przez komórki pamięci mające ładunek powyżej lub poniżej pewnego progu. Na mechanicznym dysku twardym bity są przedstawiane jako fluktuacje magnetyczne mierzone na wirującym talerzu. Na dyskach optycznych wgłębienia i obszary, które odbijają lub nie odbijają światła laserowego, wykonują tę samą pracę. 

Bez względu na to, w jaki sposób zostanie osiągnięta fizyczna reprezentacja kodu binarnego, można ostatecznie zredukować wszystkie komponenty komputerów konsumenckich do tego surowego kodu maszynowego.

Jak więc przejść od przyjaznego dla człowieka interfejsu komputera do surowych, niskopoziomowych procesów w samym komputerze? Tu właśnie pojawia się system operacyjny. Bezpośrednio kontroluje sprzęt komputera. 

To oprogramowanie tłumaczy wszystko, czego chcą aplikacje (a tym samym użytkownik), na instrukcje kodu maszynowego, które rozumieją procesor(CPU) i inne komponenty. Najważniejszym elementem oprogramowania w tym procesie jest jądro.

Co to jest jądro?

Jądro jest, jak sama nazwa wskazuje, rdzeniem systemu operacyjnego. Jądro to oprogramowanie, które znajduje się w pamięci RAM(RAM) i kieruje wszystkim, co robi komputer. Kiedy coś jest zapisywane w pamięci, to jądro kieruje wykonaniem.

Jądro wie, jak łączyć się ze sprzętem, takim jak procesory graficzne(GPUs) i karty sieciowe, ale może nie wiedzieć, jak wykorzystać ich pełny potencjał, opierając się na ogólnych standardach w branży komputerowej.

Tutaj wchodzą w grę sterowniki sprzętowe. Sterowniki informują system operacyjny, jak pracować z określonymi komponentami, dlatego potrzebujesz różnych sterowników na przykład dla procesorów graficznych Nvidia i AMD(AMD GPUs) .

Wyposażone w odpowiednie sterowniki jądro jest najwyższym autorytetem w komputerze, włączając w to robienie rzeczy, które mogą katastrofalnie zniszczyć dane.

Rola interfejsów(Role) programowania aplikacji(Application Programming Interfaces) ( API(APIs) )

W czasach MS-DOS twórcy oprogramowania musieli pisać swoje oprogramowanie specjalnie dla sprzętu użytkownika. Najbardziej znanym tego przykładem w systemach MS-DOS(MS-DOS) były sterowniki kart dźwiękowych.

Dana gra wideo musiałaby obsługiwać najpopularniejsze karty ( Sound Blaster , Ad-lib , Gravis Ultrasound itp.) i mieć nadzieję, że większość graczy zostałaby objęta. Dziś wszystko działa zupełnie inaczej, dzięki API(APIs) .

Świetnym przykładem jest Microsoft DirectX(Microsoft DirectX) . Jeśli chcesz uzyskać szczegółowe wyjaśnienie, sprawdź Co to jest DirectX i dlaczego jest to ważne? (What Is DirectX and Why Is It Important?)Jednak najważniejszą rzeczą, o której należy wiedzieć, jest to, że interfejs API(API) oferuje programistom standardowy sposób żądania zasobów sprzętowych z komponentów takich jak GPU . Ponadto producenci sprzętu muszą jedynie zapewnić, że ich produkty są zgodne z DirectX , aby zapewnić pełną kompatybilność z każdym podobnie zgodnym oprogramowaniem.

Interfejsy API(APIs) oferują warstwę translacji między aplikacjami programowymi a jądrem niskiego poziomu wraz ze sterownikami sprzętowymi. Tak, wiąże się to z niewielką utratą wydajności. Jednak na nowoczesnych komputerach jest to znikome i ma wiele zalet, w którym w końcu dochodzimy do trybu użytkownika i trybu jądra.

Tryb użytkownika a tryb jądra

Nowoczesne systemy operacyjne obsługują jednocześnie setki lub tysiące „procesów”, dynamicznie dając im czas procesora(CPU) zgodnie z potrzebami w oparciu o ich priorytety i wymagania dotyczące mocy obliczeniowej.

Po uruchomieniu aplikacja generuje procesy, a procesor(CPU) może je wykonywać w trybie użytkownika lub w trybie jądra.

Proces Windows działający w trybie użytkownika ma dostęp tylko do własnej prywatnej przestrzeni adresowej pamięci wirtualnej i tablicy uchwytów. Oprogramowanie wykorzystuje te tabele do przechowywania danych w pamięci RAM(RAM) i żądania zasobów. Nie ma bezpośredniego dostępu do pamięci ani innego sprzętu, a od systemu operacyjnego zależy mapowanie tych wirtualnych przestrzeni na rzeczywisty sprzęt komputera.

Jest to dobre z wielu powodów, ale najważniejszą korzyścią jest to, że aplikacja nie może nadpisywać ani zmieniać danych poza przestrzenią adresową pamięci wirtualnej. Ponadto niektóre funkcje są niedostępne dla procesów trybu użytkownika, głównie te, które mogą spowodować awarię systemu lub zniszczyć dane.

Gdy proces zostaje uruchomiony lub przechodzi w tryb jądra, ma pełny dostęp do zasobów systemowych, nawet tych zarezerwowanych dla systemu operacyjnego. Tak więc teoretycznie może nadpisać kluczowe dane, których system operacyjny potrzebuje do prawidłowego działania.

Pułapki i wyjątki

Ważne jest, aby zrozumieć, że te dwa tryby są wymuszane na poziomie sprzętowym przez sam procesor(CPU) . Jeśli aplikacja działająca w trybie użytkownika próbuje zrobić coś, co wymaga dostępu w trybie jądra, generuje „pułapkę” lub „wyjątek”. System operacyjny zajmie się wtedy aplikacją, zwykle zamykając ją i generując dziennik awarii, aby programiści mogli zobaczyć, co wydarzyło się w pamięci, gdy coś poszło z torów.

Niebezpieczeństwa (Dangers)trybu(Kernel Mode) jądra : niebieski (Death)ekran(Blue Screen) śmierci _

Jeśli kiedykolwiek doświadczyłeś niebieskiego ekranu(Blue Screen) śmierci ((Death) kto nie?), który zmusił komputer do wyłączenia lub ponownego uruchomienia, istnieje duża szansa, że ​​winę ponosi proces trybu jądra.

Gdy proces w trybie jądra robi coś, czego nie powinien, system operacyjny nie może go odzyskać, a cały komputer zatrzymuje się. Kiedy proces w trybie użytkownika wariuje, tylko aplikacja ulega awarii, a reszta oprogramowania i systemu operacyjnego mogą działać bez żadnych problemów.

Jest to jeden obszar, w którym API(APIs) odgrywają zasadniczą rolę, ponieważ jest to API proszące o uprawnienia trybu jądra. Aplikacje trybu użytkownika zasadniczo delegują żądania, które wymagałyby uprawnień trybu jądra do interfejsu API(API) .

Dlatego tryb jądra jest zwykle przyznawany tylko procesom systemowym niskiego poziomu, które potrzebują bezpośredniego dostępu do sprzętu komputera. Zwykle to uprawnienie jest rozszerzane na proces, ponieważ wymaga on większej wydajności, niż może zapewnić tryb użytkownika. Niektóre instrukcje procesora(CPU) działają tylko w trybie jądra, więc jeśli proces musi korzystać z tych funkcji, musi zostać podwyższony.

Jeśli masz problemy z niebieskim ekranem(Blue Screen) śmierci , koniecznie przeczytaj nasz Przewodnik rozwiązywania problemów z niebieskim ekranem śmierci dla systemu Windows (Blue Screen of Death Troubleshooting Guide for Windows 10)10(Death) !



About the author

Jestem profesjonalnym inżynierem dźwięku z ponad 10-letnim doświadczeniem. Pracowałem przy wielu projektach, od małych domowych systemów audio po duże produkcje komercyjne. Moje umiejętności polegają na tworzeniu doskonałych ścieżek dźwiękowych i narzędzi do przetwarzania dźwięku, dzięki którym muzyka brzmi świetnie. Mam również ogromne doświadczenie w pracy z systemem Windows 10 i mogę pomóc Ci w pełni wykorzystać możliwości systemu komputerowego.



Related posts