logo

Co to jest jądro?

W informatyce, Jądro to program komputerowy będący rdzeniem lub sercem systemu operacyjnego. Zanim szczegółowo omówimy jądro, przyjrzyjmy się najpierw jego podstawom, czyli systemowi operacyjnemu w komputerze.

System operacyjny

System operacyjny lub system operacyjny to oprogramowanie systemowe, które działa jako interfejs między komponentami sprzętowymi a użytkownikiem końcowym. Umożliwia uruchomienie innych programów. Każdy system komputerowy, niezależnie od tego, czy jest to komputer stacjonarny, laptop, tablet czy smartfon, musi mieć system operacyjny zapewniający podstawowe funkcje urządzenia. Niektóre powszechnie używane systemy operacyjne to: Okna , Linuksa , MacOS, Android, iOS itp.

Co to jest jądro w systemie operacyjnym?

Co to jest jądro
  • Jak omówiono powyżej, jądro jest podstawową częścią systemu operacyjnego (systemu operacyjnego); dzięki temu ma pełną kontrolę nad wszystkim w systemie. Każde działanie sprzętu i oprogramowania jest zarządzane i administrowane przez jądro.
  • Pełni funkcję pomostu pomiędzy aplikacjami a przetwarzaniem danych na poziomie sprzętowym. Jest to centralny element systemu operacyjnego.
  • Jest to część systemu operacyjnego, która zawsze znajduje się w pamięci komputera i umożliwia komunikację pomiędzy komponentami oprogramowania i sprzętu.
  • Jest to program komputerowy, który jest ładowany jako pierwszy podczas uruchamiania systemu (po programie ładującym). Po załadowaniu zarządza pozostałymi uruchomieniami. Zarządza także żądaniami dotyczącymi pamięci, urządzeń peryferyjnych i wejścia/wyjścia z oprogramowania. Co więcej, tłumaczy wszystkie żądania wejścia/wyjścia na instrukcje przetwarzania danych dla procesora. Zarządza również innymi zadaniami jak zarządzanie pamięcią, zarządzanie zadaniami i zarządzanie dyskami .
  • Jądro jest przechowywane i zwykle ładowane do oddzielnej przestrzeni pamięci, zwanej chroniona przestrzeń jądra. Jest chroniony przed dostępem programów użytkowych lub mniej ważnych części systemu operacyjnego.
  • Inne aplikacje, takie jak przeglądarka, edytor tekstu, odtwarzacz audio i wideo, korzystają z oddzielnej przestrzeni pamięci, zwanej przestrzeń użytkownika.
  • Dzięki tym dwóm oddzielnym przestrzeniom dane użytkownika i dane jądra nie kolidują ze sobą i nie powodują niestabilności i spowolnienia.

Funkcje jądra

Jądro systemu operacyjnego jest odpowiedzialne za wykonywanie różnych funkcji i sprawuje kontrolę nad systemem. Poniżej podano niektóre główne obowiązki jądra:

    Zarządzanie urządzeniami
    Do wykonywania różnych czynności procesy wymagają dostępu do urządzeń peryferyjnych takich jak mysz, klawiatura itp., które są podłączone do komputera. Jądro jest odpowiedzialne za kontrolowanie tych urządzeń za pomocą sterowników urządzeń. Tutaj sterownik urządzenia to program komputerowy, który pomaga lub umożliwia systemowi operacyjnemu komunikację z dowolnym urządzeniem sprzętowym.
    Jądro utrzymuje listę wszystkich dostępnych urządzeń, a lista ta może być już znana, skonfigurowana przez użytkownika lub wykryta przez system operacyjny w czasie wykonywania.Zarządzanie pamięcią
    Jądro ma pełną kontrolę nad dostępem do pamięci komputera. Każdy proces wymaga pewnej ilości pamięci do działania, a jądro umożliwia procesom bezpieczny dostęp do pamięci. Aby przydzielić pamięć, pierwszy krok jest znany jako adresowanie wirtualne, odbywa się to poprzez stronicowanie lub segmentację. Adresowanie wirtualne to proces udostępniania wirtualnych przestrzeni adresowych procesom. Zapobiega to wzajemnemu zawieszaniu się aplikacji.Zarządzanie zasobami
    Jedną z ważnych funkcjonalności Kernela jest dzielenie zasobów pomiędzy różnymi procesami. Musi dzielić zasoby w taki sposób, aby każdy proces miał równomierny dostęp do zasobu.
    Jądro umożliwia także synchronizację i komunikacja międzyprocesowa (IPC). Odpowiada za przełączanie kontekstu pomiędzy procesami.Dostęp do zasobów komputera
    Jądro jest odpowiedzialne za dostęp do zasobów komputera, takich jak pamięć RAM i urządzenia we/wy. RAM lub pamięć o dostępie swobodnym służy do przechowywania zarówno danych, jak i instrukcji. Każdy program musi uzyskać dostęp do pamięci, aby wykonać i najczęściej potrzebuje więcej pamięci niż jest dostępna. W takim przypadku jądro odgrywa swoją rolę i decyduje, jakiej pamięci użyje każdy proces i co zrobić, jeśli wymagana pamięć nie będzie dostępna.
    Jądro przydziela również żądania aplikacji w celu korzystania z urządzeń we/wy, takich jak klawiatury, mikrofony, drukarki itp.

Rodzaje jądra

Istnieje pięć typów jądra, które podano poniżej:

Co to jest jądro

1. Jądra monolityczne

W jądrze monolitycznym ta sama przestrzeń pamięci jest używana do implementowania usług użytkownika i usług jądra.

Co to jest jądro

Oznacza to, że w tego typu jądrze nie ma innej pamięci używanej dla usług użytkownika i usług jądra.

Ponieważ wykorzystuje tę samą przestrzeń pamięci, rozmiar jądra wzrasta, zwiększając ogólny rozmiar systemu operacyjnego.

Wykonywanie procesów jest również szybsze niż w przypadku innych typów jądra, ponieważ nie wykorzystuje oddzielnej przestrzeni użytkownika i jądra.

Przykłady jąder monolitycznych Unix, Linux, Open VMS, XTS-400 itp.

Zalety:

  • Wykonywanie procesów jest również szybsze, ponieważ nie ma oddzielnej przestrzeni użytkownika i przestrzeni jądra oraz wymaga mniej oprogramowania.
  • Ponieważ jest to pojedynczy fragment oprogramowania, jego źródła i skompilowane formularze są mniejsze.

Niedogodności:

  • Jeśli jakakolwiek usługa wygeneruje błąd, może spowodować awarię całego systemu.
  • Jądra te nie są przenośne, co oznacza, że ​​dla każdej nowej architektury należy je przepisać.
  • Są duże i dlatego trudne w zarządzaniu.
  • Aby dodać nową usługę, należy zmodyfikować cały system operacyjny.

2. Mikrojądro

Co to jest jądro

Mikrojądro jest również określane jako MK i różni się od tradycyjnego jądra lub jądra monolitycznego. W tym, usługi użytkownika i usługi jądra są implementowane w dwóch różnych przestrzeniach adresowych: przestrzeni użytkownika i przestrzeni jądra . Ponieważ wykorzystuje różne przestrzenie dla obu usług, zmniejsza się rozmiar mikrojądra, co również zmniejsza rozmiar systemu operacyjnego.

przekonwertuj ciąg na int w Javie

Mikrojądra są łatwiejsze w zarządzaniu i utrzymaniu w porównaniu do jąder monolitycznych. Mimo to, jeśli będzie większa liczba wywołań systemowych i przełączania kontekstu, może to zmniejszyć wydajność systemu, spowalniając go.

Jądra te wykorzystują system przekazywania komunikatów do obsługi żądań z jednego serwera do drugiego.

Mikrojądra zapewniają tylko niektóre podstawowe usługi, takie jak definiowanie przestrzeni adresowych pamięci, IPC (komunikacja międzyprocesowa) i zarządzanie procesami. Inne usługi, takie jak łączność sieciowa, nie są dostarczane przez Kernel i obsługiwane przez program przestrzeni użytkownika znany jako serwery .

Jedną z głównych wad jąder monolitycznych jest to, że błąd w jądrze może spowodować awarię całego systemu, można usunąć w mikrojądrze. Podobnie jak w przypadku mikrojądra, jeśli proces jądra ulegnie awarii, awariom całego systemu można zapobiec, ponownie uruchamiając usługi spowodowane błędami.

Przykłady mikrojądra L4, AmigaOS, Minix, K42 itp.

Zalety

  • Mikrojądra można łatwo zarządzać.
  • Nową usługę można łatwo dodać bez konieczności modyfikowania całego systemu operacyjnego.
  • W mikrojądrze, jeśli proces jądra ulegnie awarii, nadal można zapobiec awarii całego systemu.

Niedogodności

  • Istnieje większe zapotrzebowanie na oprogramowanie do łączenia, co zmniejsza wydajność systemu.
  • Zarządzanie procesami jest bardzo skomplikowane.
  • Błędy w przesyłaniu wiadomości są trudne do naprawienia.

3. Jądro hybrydowe

Co to jest jądro

Jądra hybrydowe są również znane jako jądra modułowe i jest to połączenie jądra monolitycznego i mikrojądra. Wykorzystuje szybkość jąder monolitycznych i modułowość mikrojąder.

Jądro hybrydowe można rozumieć jako rozszerzoną wersję mikrojądra z dodatkowymi właściwościami jądra monolitycznego. Jądra te są szeroko stosowane w komercyjnych systemach operacyjnych, takich jak różne wersje MS Windows.

znaczniki HTML

Jest bardzo podobny do mikrojądra, ale zawiera także dodatkowy kod w przestrzeni jądra, aby zwiększyć wydajność systemu.

Jądra hybrydowe umożliwiają uruchamianie niektórych usług, takich jak stos sieciowy w przestrzeni jądra aby zmniejszyć wydajność w porównaniu z tradycyjnym mikrojądrem, ale nadal pozwala na uruchamianie kodu jądra (takiego jak sterowniki urządzeń) jako serwerów w przestrzeni użytkownika.

Przykładami jądra hybrydowego są Windows NT, Netware, BeOS itp.

Zalety:

  • Nie ma wymogu ponownego uruchomienia w celu przeprowadzenia testów.
  • Można szybko zintegrować technologię innych firm.

Niedogodności:

wyliczenia Java
  • Istnieje możliwość wystąpienia większej liczby błędów i większej liczby interfejsów do przejścia.
  • Utrzymanie modułów może być mylącym zadaniem dla niektórych administratorów, zwłaszcza gdy zajmują się takimi kwestiami, jak różnice w symbolach.

4. Nanojądro

Jak sama nazwa wskazuje, w Nanokernel cały kod jądra jest bardzo mały, co oznacza, że ​​kod wykonywany w trybie uprzywilejowanym sprzętu jest bardzo mały . Tutaj termin nano definiuje jądro obsługujące rozdzielczość zegara nanosekundową.

Przykłady nanojądra są EROS itp.

Zalety

  • Zapewnia abstrakcje sprzętowe nawet przy bardzo małych rozmiarach.

Niedogodności

  • Nanokernel nie ma usług systemowych.

5. Egzokernel

Exokernel wciąż się rozwija i stanowi eksperymentalne podejście do projektowania systemu operacyjnego.

Ten typ jądra różni się od innych jąder, jak ten; ochrona zasobów jest oddzielona od zarządzania, co pozwala nam na dostosowanie do konkretnych aplikacji.

Zalety:

  • System oparty na egzokernelu może zawierać wiele systemów operacyjnych z bibliotekami. Każda biblioteka eksportuje inny interfejs API, na przykład jeden może być używany do tworzenia interfejsu użytkownika na wysokim poziomie, a drugi do kontroli w czasie rzeczywistym .

Niedogodności:

  • Konstrukcja egzokernelu jest bardzo złożona.

Co to jest panika jądra?

Jak już omawialiśmy, jądro to kontroluje cały system komputerowy; dlatego jeśli ulegnie awarii, może zniszczyć cały system. W systemach MacOS i Linux takie niepożądane zdarzenie nazywane jest „ Panika jądra. Aby odzyskać dane po jądrze Panic, musimy ponownie uruchomić system.

Zwykle te błędy jądra są spowodowane problemami z komunikacją sprzętową. Dlatego jeśli występują powtarzające się błędy jądra, spróbuj odłączyć mniej wymagane lub niepotrzebne urządzenia i sprawdź, czy problem został rozwiązany, czy nie.