Procesor wykonuje programy w trybie użytkownika lub trybie jądra. Kiedy używasz komputera, procesor często przełącza się pomiędzy tymi dwoma typami trybów, w zależności od tego, co robi. Ale czym są tryb użytkownika i tryb jądra? Jaka jest różnica między tymi dwoma trybami? Dlaczego procesor musi przełączać się między tymi trybami.
Co to jest tryb użytkownika w systemie Windows?

Tryb użytkownika w systemie Windows
Po uruchomieniu programu w systemie Windows program ten uruchamia się w trybie użytkownika. Ilekroć program w trybie użytkownika chce zostać uruchomiony, system Windows tworzy dla niego proces. Proces to po prostu program wykonywany przez procesor lub program, który system Windows zaplanował do wykonania. Za każdym razem, gdy system Windows tworzy proces, tworzy także wirtualną przestrzeń adresową dla tego procesu.
Wirtualna przestrzeń adresowa to zbiór adresów logicznych (niefizycznych), które system Windows przypisuje procesowi. Procesy mogą używać tych adresów do przechowywania danych w pamięci fizycznej.
Dodatkowo wirtualna przestrzeń adresowa jest izolowana. Dlatego wirtualna przestrzeń adresowa jednego procesu nie koliduje z przestrzenią adresową innego procesu. A ponieważ programy w trybie użytkownika mają oddzielne przestrzenie adresowe, jeśli jeden program ulegnie awarii, ten program ulegnie awarii samodzielnie i nie będzie to miało wpływu na inne programy ani na cały system operacyjny.
Innym sposobem opisania aplikacji trybu użytkownika jest użycie terminu „mniej uprzywilejowane”. System Windows ogranicza aplikacjom trybu użytkownika bezpośredni dostęp do krytycznych zasobów systemu, czyniąc je w ten sposób mniej uprzywilejowanymi. Na przykład, jeśli aplikacja chce uzyskać dostęp do sprzętu, musi przejść przez jądro systemu operacyjnego przy użyciu wywołań systemowych (styl programowania, w którym program komputerowy żąda usługi z jądra systemu operacyjnego).
Mówiąc najprościej, aplikacje, takie jak gry wideo, działają w trybie użytkownika. Mają niewiele uprawnień, więc nie mają nieograniczonego dostępu do zasobów systemowych. Każda aplikacja trybu użytkownika ma własną przestrzeń adresową. Aplikacja nie może zmienić przestrzeni adresowej innej aplikacji. Dlatego też awaria jednej aplikacji nie ma wpływu na inne programy uruchomione na komputerze.
Co to jest tryb jądra w systemie Windows?
![Różnica między trybem jądra a trybem użytkownika w systemie Windows Różnica między trybem jądra a trybem użytkownika w systemie Windows]()
Tryb jądra w systemie Windows
Zanim omówimy tryb jądra, musimy najpierw wiedzieć, czym jest „jądro” i jak działa w systemie Windows.
Jądro jest mózgiem systemu operacyjnego. Jest to podstawowy komponent oprogramowania, na którym opierają się wszystkie pozostałe komponenty systemu operacyjnego. Jądro zarządza sprzętem komputerowym, planuje działanie komputera i obsługuje interakcje między sprzętem a oprogramowaniem aplikacyjnym.
Krótko mówiąc, jądro jest najbardziej uprzywilejowanym fragmentem kodu działającym w systemie, ponieważ to kod bezpośrednio oddziałuje ze sprzętem. Każdy inny program, który chce korzystać z zasobów sprzętowych, musi zażądać dostępu poprzez jądro.
Kiedy aplikacja działa w trybie użytkownika i chce uzyskać dostęp do sprzętu, takiego jak kamera internetowa, musi zażądać jądra za pomocą wywołań systemowych. Aby obsłużyć te żądania, procesor w momencie wykonywania programu przełącza się z trybu użytkownika do trybu jądra.
Po zakończeniu wykonywania procesor przełącza się z powrotem do trybu użytkownika i rozpoczyna wykonywanie następnego zaplanowanego procesu. Nazywa się to „przełączaniem kontekstu” .
Jaka jest różnica między trybem użytkownika a trybem jądra?
Główną różnicą pomiędzy trybem użytkownika a trybem jądra jest poziom uprawnień zapewnianych przez każdy tryb. W trybie użytkownika aplikacje mają mniejsze uprawnienia. Nie mają bezpośredniego dostępu do zasobów sprzętowych i nie mogą zapisywać danych w przestrzeni adresowej innych aplikacji.
Kod działający w trybie jądra ma podwyższone uprawnienia. Ma nie tylko bezpośredni dostęp do sprzętu komputerowego, ale wszystkie programy działające w trybie jądra, w tym system operacyjny, również współdzielą przestrzeń adresową. Jeśli więc program w trybie jądra ulegnie awarii, może to spowodować awarię całego systemu operacyjnego. Aby zapobiec występowaniu takich problemów, system Windows pozwala na działanie tylko niektórych procesów w trybie jądra.
W systemie Windows zastosowano warstwowe podejście do oddzielania programów użytkownika od zasobów systemowych
System Windows używa modelu warstwowego do określania poziomów uprawnień procesów. Aplikacje znajdujące się w warstwie najbardziej zewnętrznej to aplikacje posiadające uprawnienia do wypożyczania. Rdzeniem tych warstw jest jądro. Dzięki temu jądro ma nieograniczony dostęp do zasobów systemu operacyjnego.
Podejście warstwowe chroni także krytyczną funkcjonalność systemu operacyjnego. Kiedy programy w wyższej warstwie losowo ulegają awarii, nie ma to wpływu na system operacyjny. Z drugiej strony, awaria jądra wpływa na cały system operacyjny.