Oprogramowanie
Artykuł
Robert Multan, Poniedziałek, 11 kwietnia 2011, 22:10

Jądro

Teraz skupmy się na tym, co w Linuksach najważniejsze, czyli na jądrze. Jest ono podstawowym elementem systemu operacyjnego: umożliwia komunikację pomiędzy sprzętem a oprogramowaniem, zarządza zasobami, procesami oraz wszystkimi urządzeniami podłączonymi do komputera. Jako jedyny element systemu operacyjnego mający pełny dostęp do pamięci, jądro musi zapewniać procesom bezpieczny dostęp do niej, gdy jej potrzebują. Będąc centralnym miejscem systemu operacyjnego, jest wyjątkowo trudnym wyzwaniem z punktu widzenia programisty – jego wydajność jest cechą kluczową i rzutuje na wydajność wszystkich aplikacji uruchamianych pod kontrolą systemu.

Kliknij, żeby powiększyć

Podobnie jak w przypadku najpopularniejszego obecnie systemu do komputerów domowych, czyli Microsoft Windows, ma ono budowę monolityczną. Oznacza to, że większość funkcji jądra jest przechowywana w pojedynczym obrazie pamięci, który ładowany jest przy uruchamianiu systemu przez tak zwanego boot loadera (GRUB lub lilo w systemach linuksowych oraz NTLDR w Windowsach). Jądro Linux jest wyjątkowo przenośne i spokojnie można powiedzieć, że „ruszy” praktycznie na wszystkim. x86, AMD64, ARM? Żaden problem. PowerPC, SPARC, IA-64, MIPS? Proszę bardzo. Dzięki swojej wyjątkowej wszechstronności systemy oparte na jądrze Linux mogą być stosowane praktycznie we wszystkim, od zdalnie sterowanych modeli poprzez telefony komórkowe, tablety i czytniki e-booków po superkomputery.

Funkcjonalność jądra Linux można zwiększać za pośrednictwem modułów, których dużym atutem jest możliwość ładowania i wyładowywania w razie potrzeby bez konieczności przeładowywania jądra (co w praktyce oznaczałoby ponowne uruchomienie systemu operacyjnego). W modułach najczęściej znajdują się sterowniki urządzeń peryferyjnych, systemów plików lub niektórych wywołań systemowych. Ponieważ Linux nie ma stabilnego API (ang. Application Programming Interface) ani ABI (ang. Application Binary Interface) dla modułów jądra, różnice w działaniu pewnych funkcji w zależności od wersji jądra mogą powodować niekompatybilność modułu i jądra. Najczęściej nie ma możliwości dostarczenia jednej wersji modułu w postaci binarnej (przykładowo – sterownika), która działałaby na każdej wersji jądra systemu, czy nawet w danej gałęzi. Najczęściej więc poszczególne moduły są kompilowane na komputerze użytkownika, czy to ręcznie, czy przez wyspecjalizowane instalatory, by uniknąć potencjalnych problemów i zachować pełną kompatybilność modułu z jądrem.

Ocena artykułu:
Ocen: 27
Zaloguj się, by móc oceniać
Facebook
Ostatnio komentowane