Jądro systemu operacyjnego (ang. kernel) - podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania.

Spis treści

[edytuj] Budowa jÄ…dra

Wyróżniamy kilka podstawowych metod konstrukcji jąder:

Model funkcjonowania jÄ…dra monolitycznego.
  • jÄ…dro monolityczne - czÄ™sto stosowane w systemach typu Unix. Wszystkie zadania sÄ… wykonywane przez jÄ…dro, bÄ™dÄ…ce jednym, dużym programem dziaÅ‚ajÄ…cym w trybie jÄ…dra. PrzykÅ‚adami takiego jÄ…dra mogÄ… być: Linux, OpenBSD, FreeBSD, chociaż wiÄ™kszość posiada umiejÄ™tność dołączania i odłączania modułów (najczęściej zawierajÄ…cych kod sterownika urzÄ…dzenia lub obsÅ‚ugi potrzebnego w danej chwili systemu plików).
    Zaletą tej techniki jest prostota, stabilność, łatwość komunikacji pomiędzy różnymi członami jądra (to przecież w tym wypadku jeden program!). Wadą jest, w późniejszym stadium rozwoju projektu, uciążliwość w rozwijaniu programu oraz w znajdywaniu błędów.
Model komunikacji mikrojÄ…dra z aplikacjami.
  • mikrojÄ…dro - w tej technice z monolitycznego jÄ…dra zostaje tylko jego podstawowa część, a części odpowiedzialne za bardziej wyrafinowane funkcje sÄ… wydzielone do funkcjonalnych bloków albo realizowane jako zwykÅ‚e procesy w trybie użytkownika.
  • nanokernel - technika zbliżona do techniki mikrojÄ…dra, różnica w wielkoÅ›ci - nanokernel jest jeszcze mniejszy.
  • exokernel - architektura bÄ™dÄ…ca odmianÄ… nanojÄ…dra. CechÄ… wyróżniajÄ…cÄ… jest możliwość zarzÄ…dzania zasobami systemu przez nieuprzywilejowanego użytkownika, a rola jÄ…dra sprowadza siÄ™ do zabezpieczania zasobów. PrzykÅ‚adem systemu korzystajÄ…cego z tego typu jÄ…dra jest system XOK, zbudowany w MIT Laboratory for Computer Science, pracujÄ…cy na komputerach PC. Wyposażony on zostaÅ‚ w bibliotekÄ™ ExOS, która implementuje system UNIX i umożliwia uruchamianie wiÄ™kszoÅ›ci aplikacji tego systemu.
  • cachekernel - w tej technice jÄ…dro systemu buforuje obiekty systemowe takie jak wÄ…tki czy przestrzenie adresowe tak jak sprzÄ™t komputerowy buforuje pamięć. JÄ…dra aplikacji trybu użytkownika sÄ… odpowiedzialne za Å‚adowanie tych danych i ponowne ich zapisanie stosujÄ…c specyficzne dla danej aplikacji mechanizmy.
Model komunikacji jÄ…dra hybrydowego z aplikacjami.
  • jÄ…dro hybrydowe - kompromis miÄ™dzy architekturÄ… jÄ…dra monolitycznego i mikrojÄ…dra. W krytycznych usÅ‚ugach - np. stos sieci - usÅ‚ugi sÄ… na staÅ‚e wkompilowane w główny kod jÄ…dra, inne usÅ‚ugi pozostajÄ… oddzielone od głównego jÄ…dra i dziaÅ‚ajÄ… jako serwery (w przestrzeni jÄ…dra). DziÄ™ki temu rozwiÄ…zaniu możliwe jest zachowanie wydajnoÅ›ci jÄ…dra monolitycznego dla kluczowych usÅ‚ug. Klasyfikacja ta budzi kontrowersje niektórych programistów.

[edytuj] Cechy jÄ…dra

Z budowy jÄ…dra wynikajÄ… jego cechy, takie jak:

[edytuj] Zastosowanie systemów operacyjnych

Zastosowanie systemów operacyjnych wynika ściśle z ich budowy, a to przeważnie sprowadza się do budowy ich jądra. Tak więc:

[edytuj] Przykłady jąder systemów operacyjnych

JÄ…dra monolityczne:

  • Tradycyjne jÄ…dra UNIX, jak np. jÄ…dra systemów BSD
  • Linux

Hybrydowe:

MikrojÄ…dra: