Kernel: Różnice pomiędzy wersjami

[wersja nieprzejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
Macar (dyskusja | edycje)
mNie podano opisu zmian
Macar (dyskusja | edycje)
mNie podano opisu zmian
Linia 7:
Wyróżniamy kilka podstawowych metod konstrukcji kerneli:
 
* ''kernel monolityczny'' - często stosowany w systemach typu UNIX. Wszystkie zadania są w tego wykonywane przez kernel, będący jednym, dużym [[program|programem]] działającym w [[tryb jądra|trybie jądra]]. Przykładem takiego jądra jest jądro systemu [[OpenBSD]], a także [[Linux]] oraz [[FreeBSD]], chociaż te dwa ostatnie posiadają umiejętność dołączania i odłączania modułów (najczęściej zawierających kod [[sterownik urządzenia|sterownika urządzenia]] lub obsługi potrzebnego w danej chwili [[system plików|systemu plików]]).<br><br>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.
 
* ''mikrokernel'' - w tej technice z monolitycznego jądra zostaje tylko jego podstawowa część, a części odpowiedzialne za bardziej wyrafinowane funcje są wydzielone do fukcjonalnych bloków albo realizowane jako zwykłe [[procees|procesy]] w [[trybie użytkownika]].
Linia 23:
Z budowy kernela wynikają jego cechy, takie jak:
 
* [[wielozadaniowość]] ([[wieloproceesowość]]),
 
* [[wielowątkowość]],
 
* [[wielobieżność]],
 
* to czy jądro jest [[wywłaszczenie|wywłaszczalne]],
Linia 41:
* jako [[serwer|serwery]] lub [[firewall]]e używa się przeważnie systemów z jądrem monolitycznym, czyli przeważnie systemy [[UNIX|uniksowe]],
 
* w [[telekomunikacja|telekomunikacji]] i innych zastowaniach [[real-time]] królują systemy z mikrokernelem, np.: system [[QNX]],
 
* w wielu urządzeniach działają systemu określane mianem ''embedded'' (''osadzone''), króre charakteryzują się wysoką [[skalowalność|skalowalnością]].