Przejdź do zawartości

Pisanie OS/Jądro

Z Wikibooks, biblioteki wolnych podręczników.

>Programowanie:OS_Programming

Czym jest jądro?[edytuj]

Najogólniej rzecz ujmując jądro jest najniżej położonym elementem systemu operacyjnego. Znajduje się ono między sprzętem oraz całą gamą oprogramowania (zarówno systemowego, jak i użytkowego).

Budowa jądra[edytuj]

Jądro monolityczne[edytuj]

Jądro tego typu jest dużym obrazem pamięci, który wczytywany jest zaraz po uruchomieniu systemu i działa aż do momentu wyłączenia komputera. Jest to stosunkowo proste i wygodne dla programisty rozwiązanie, jednak niesie ze sobą pewne wady, takie jak np:

  • zawieszenie któregoś z elementów jądra powoduje zawieszenie całego systemu
  • wymiana jakiegokolwiek elementu jądra wymaga ponownej rekompilacji całego jądra
  • błędy, takie jak np. wskazanie na adres 0 powodują duże problemy
  • duża ilość kodu wykonywana jest w przestrzeni jądra

Natomiast z zalet wymienić należy przede wszystkim:

  • prostotę budowy
  • dużą szybkość działania

Jądra monolityczne są używane w większości systemów z rodziny UNIX (np. Linux, *BSD).

Mikrojądro[edytuj]

Mikrojądro zawiera tylko najbardziej niezbędne elementy, takie jak funkcje zarządzania wątkami, komunikacja międzyprocesowa oraz obsługa przerwań i wyjątków. Zalety:

  • mniej podatny na zawieszenie niż jądro monolityczne

Wady:

  • trudniejsza budowa jądra

Przykładem systemu z mikrojądrem jest MINIX, Hurd, L4 jak również rozwiązanie Singularity w projekcie Microsoftu.

Hybrydowe[edytuj]

Przykładem systemu z jądrem hybrydowym jest ReactOS, oraz systemy Windows z linii NT.