Pisanie OS/Jądro
Czym jest jądro?
edytujNajogó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
edytujJądro monolityczne
edytujJą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
edytujMikroją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
edytujPrzykładem systemu z jądrem hybrydowym jest ReactOS, oraz systemy Windows z linii NT.