Menu

Budowa systemu

Budowa komputera

Przykładowe systemy

Programowanie

Linki



Jądro systemu

Jądro systemu, zwane również kernelem jest to centralna i najważniejsza część systemu operacyjnego. Znajduje się pomiędzy warstwą sprzętową, czyli obsługuje cały sprzęt zainstalowany w komputerze (czasem bezpośrednio, czasem przez sterowniki lub moduły), a warstwą oprogramowania, czyli aplikacji uruchamianych przez użytkownika. Ta część systemu operacyjnego musi być szczególnie dobrze zaprojektowana i zaimplementowana, ponieważ każdy występujący w niej błąd może poważnie zaszkodzić działaniu całego systemu operacyjnego.

Jądro systemu jest zwykle trzecim etapem uruchamiania komputera. Jest ono ładowane przez program ładujący do pamieci operacyjnej i stamtąd wykonywane.

Typy kernelów

1. Kernel monolityczny

Ten rodzaj jądra systemu, zawiera w sobie większość lub wszystkie usługi systemowe i sterowniki urządzeń. Zwiększa to szybkość działania usług systemu operacyjnego i komunikacji pomiędzy poszczególnymi podsystemami (np. dwoma sterownikami urządzeń). Wadą tego rozwiązania jest natomiast wielkość kernela, która często przekracza rozmiar jednego megabajta, jak również wrażliwość na błędy programistyczne i wzajemna zależność każdego z części jądra. Przykładem systemu operacyjnego wykorzystującego kernel monolityczny jest Linux (występujące moduły jądra ładowane oddzielnie, po załadowaniu stanowią z kernelem jedną całość, więc jest to kernel monolityczny).

2. Mikrokernel

Rozwiązanie to dąży do przeniesienia większości usług systemowych do przestrzeni użytkownika (jako oddzielne aplikacje). Jądro systemu zajmuje się jedynie najważniejszymi procesami systemu operacyjnego, czyli między innymi zarządzaniem pamięci, wielozadaniowością i komunikacją między aplikacjami. Zaletą mikrokernela jest szybkość działania i odpowiedzi jądra systemu, jak również teoretycznie jego stabilność. Oczywiście każdą stabilność da się uszkodzić źle napisanym kodem. W przypadku takiego rozwiązania problem pojawia się wtedy, kiedy ważną czynność wymaganą przy starcie systemu obsługuje aplikacja, na przykład obsługa systemu plików. Konieczne jest wtedy róznego rodzaju obejście programu, które nie zawsze jest optymalne. Przykładem takiego jądra systemowego był system AmigaOS.

3. Kernel zmodularyzowany

W pewnym sensie jest to połączenie dwóch poprzednich rozwiązań. Jądro systemu składa się w tym przypadku z wielu modułów, ładowanych tylko w przypadku konieczności ich użycia (na przykład: nie ma sensu ładować modułu sterownika urządzenia, które nie jest zainstalowane). Oczywiście wciąż musi pozostać bazowa część jądra systemu, która zostanie załadowana przez program ładujący i załaduje z dysku potrzebne dalsze moduły. Zaletą tego rozwiązania jest oszczędność pamięci i brak zużywania innych zasobów na zbędne części jądra.

Zadania jądra systemu



Valid XHTML 1.1 License Poprawny CSS!
© 2007 by Tomek Figa na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne 2.5 Polska.