Co to jest Jądro w Systemie Operacyjnym i jakie są różne rodzaje Jądra?
Jądro jest programem komputerowym, który jest sercem i rdzeniem Systemu Operacyjnego. Ponieważ System Operacyjny ma kontrolę nad systemem, więc Kernel ma również kontrolę nad wszystkim w systemie. Jest to najważniejsza część systemu operacyjnego. Kiedykolwiek system się uruchamia, jądro jest pierwszym programem, który jest ładowany po bootloaderze, ponieważ jądro musi obsługiwać resztę rzeczy w systemie dla systemu operacyjnego. Jądro pozostaje w pamięci do momentu wyłączenia systemu operacyjnego.
Jernel jest odpowiedzialny za zadania niskiego poziomu, takie jak zarządzanie dyskami, zarządzanie pamięcią, zarządzanie zadaniami itp. Zapewnia ono interfejs między użytkownikiem a sprzętowymi komponentami systemu. Gdy proces zgłasza żądanie do jądra, nazywa się to wywołaniem systemowym.
Jernel posiada chronioną przestrzeń jądra, która jest oddzielnym obszarem pamięci i nie jest dostępna dla innych programów użytkowych. Tak więc, kod jądra jest ładowany do tej chronionej przestrzeni jądra. Oprócz tego, pamięć używana przez inne aplikacje nazywana jest Przestrzenią Użytkownika. Ponieważ są to dwie różne przestrzenie w pamięci, więc komunikacja między nimi jest nieco wolniejsza.
Funkcje jądra
Następujące funkcje jądra:
- Dostęp do zasobów komputera: Kernel może uzyskać dostęp do różnych zasobów komputera, takich jak CPU, urządzenia I/O i inne zasoby. Działa jako pomost pomiędzy użytkownikiem a zasobami systemu.
- Zarządzanie zasobami: Obowiązkiem jądra jest dzielenie zasobów pomiędzy różne procesy w taki sposób, że jest jednolity dostęp do zasobów przez każdy proces.
- Zarządzanie pamięcią: Każdy proces potrzebuje trochę miejsca w pamięci. Tak więc, pamięć musi być przydzielona i deallocated do jego wykonania. Wszystkie te zarządzanie pamięcią jest wykonywane przez Kernel.
- Zarządzanie urządzeniami: Urządzenia peryferyjne podłączone w systemie są wykorzystywane przez procesy. Tak więc, alokacja tych urządzeń jest zarządzana przez Kernel.
Tryb jądra i tryb użytkownika
Istnieją pewne instrukcje, które muszą być wykonywane tylko przez jądro. Tak więc, CPU wykonuje te instrukcje tylko w trybie jądra. Na przykład, zarządzanie pamięcią powinno być wykonywane tylko w trybie jądra. Podczas gdy w Trybie Użytkownika, CPU wykonuje procesy, które są podane przez użytkownika w przestrzeni użytkownika.
Typy Jądra
Ogólnie, istnieje pięć typów Jądra. Są to:
1. Kernele monolityczne
Kernele monolityczne to takie, w których usługi użytkownika i usługi jądra są zaimplementowane w tej samej przestrzeni pamięci, tzn. w tym przypadku nie używa się różnych pamięci dla usług użytkownika i usług jądra. W ten sposób zwiększa się rozmiar jądra, a to z kolei zwiększa rozmiar systemu operacyjnego. Ponieważ nie ma oddzielnej przestrzeni użytkownika i przestrzeni jądra, więc wykonanie procesu będzie szybsze w jądrach monolitycznych.
Zalety:
- Zapewnia planowanie procesora, planowanie pamięci, zarządzanie plikami tylko poprzez wywołania systemowe.
- Wykonanie procesu jest szybkie, ponieważ nie ma oddzielnej przestrzeni pamięci dla użytkownika i jądra.
Wady:
- Jeśli jakakolwiek usługa zawiedzie, prowadzi to do awarii systemu.
- Jeśli nowe usługi mają być dodane, wtedy cały System Operacyjny musi być zmodyfikowany.
2. Mikrokernel
Mikrokernel różni się od jądra monolitycznego, ponieważ w mikrokernelu usługi użytkownika i usługi jądra są zaimplementowane w różnych przestrzeniach, tj. używamy przestrzeni użytkownika i przestrzeni jądra w przypadku mikrokerneli. Ponieważ używamy przestrzeni użytkownika i przestrzeni jądra oddzielnie, więc zmniejsza to rozmiar jądra, a to z kolei zmniejsza rozmiar systemu operacyjnego.
Jako że używamy różnych przestrzeni dla usług użytkownika i usług jądra, więc komunikacja między aplikacją a usługami odbywa się za pomocą parsowania wiadomości, a to z kolei zmniejsza szybkość wykonania.
Zalety:
- Jeżeli nowe usługi mają być dodane, to mogą być łatwo dodane.
Wady:
- Ponieważ używamy przestrzeni użytkownika i przestrzeni jądra oddzielnie, więc komunikacja między nimi może zmniejszyć ogólny czas wykonania.
3. jądro hybrydowe
Kernel hybrydowy jest połączeniem jądra monolitycznego i mikrokernela. Wykorzystuje ono szybkość jądra monolitycznego i modularność mikrokernela.
Jądra hybrydowe to mikrokernele, które mają „nieistotny” kod w przestrzeni jądra, aby kod działał szybciej niż w przestrzeni użytkownika. Tak więc, niektóre usługi, takie jak stos sieciowy lub system plików są uruchamiane w przestrzeni jądra, aby zmniejszyć narzut wydajności, ale nadal uruchamia się kod jądra jako serwery w przestrzeni użytkownika.
4. Nanokrnel
W Nanokrnel, jak sama nazwa wskazuje, cały kod jądra jest bardzo mały, tzn. kod wykonywany w trybie uprzywilejowanym sprzętu jest bardzo mały. Termin nanokernel jest używany do opisania jądra, które obsługuje nanosekundową rozdzielczość zegara.
5. Exokernel
Exokernel jest jądrem systemu operacyjnego, które zostało opracowane przez grupę MIT zajmującą się systemami równoległymi i rozproszonymi systemami operacyjnymi. W tego typu jądrze ochrona zasobów jest oddzielona od zarządzania, a to z kolei pozwala nam na dostosowanie do potrzeb aplikacji.
W Exokernel, ideą nie jest implementacja wszystkich abstrakcji. Ale ideą jest narzucenie jak najmniejszej ilości abstrakcji, a przez to abstrakcja powinna być używana tylko wtedy, gdy jest potrzebna. Tak więc, w Exokernel nie będzie abstrakcji wymuszających i to jest cecha, która odróżnia go od Monolitycznego Kernela i Mikrokernela. Ale wadą tego rozwiązania jest skomplikowany projekt. Projekt Exokernela jest bardzo złożony.
To tyle na ten blog. Mam nadzieję, że podobał Ci się ten blog.