Nareszcie jest nowe jądro!

Po roku opóźnienia Linus Torvalds, twórca bezpłatnego systemu operacyjnego, udostępnił jądro Linux 2.4.0.

Po roku opóźnienia Linus Torvalds, twórca bezpłatnego systemu operacyjnego, udostępnił jądro Linux 2.4.0.

Po wielu obietnicach i kilkunastu wersjach przedprodukcyjnych Linus Torvalds opublikował przed tygodniem nowe jądro systemu Linux, oznaczone numerem 2.4.0, czyli pierwszą stabilną wersję jądra serii 2.4.x. Warto pamiętać, że wersja stabilna jądra to taka, którą Linus i kilku najbliższych współpracowników (m.in. Alan Cox i Dave Miller) uznali za gotową do produkcyjnego wykorzystania.

Analitycy rynkowi zwracają uwagę, że opóźnienie jądra Linuxa jest bardzo podobne do problemów Microsoftu z publikacją Windows 2000. Próba jednoczesnego wprowadzenia do niego wielu modyfikacji i nowych funkcji spowodowała trudności w sprawnym łączeniu poszczególnych podsystemów jądra.

Łata zamiast jądra

Opóźnienie w publikacji jądra w wersji 2.4 wprowadziło niemałe zamieszanie na rynku rozwiązań linuxowych. Główni dystrybutorzy tego systemu implementowali na dotychczasowym jądrze 2.2.x wiele łat (patches), które miały zapewniać realizację funkcji zapowiadanej dopiero jako standardowe w wersji 2.4. Działo się tak, ponieważ kod 2.2 ma już dwa lata i słabo obsługuje nowy sprzęt wprowadzony na rynek (głównie USB i karty ISDN). Producenci, tacy jak SuSE czy Mandrake, publikowali swoje odmiany, dołączając do nich jąd-ro 2.2.x z różnymi dodatkami, łatającymi największe niedostatki tej wersji.

Wraz z ogłoszeniem stabilnej wersji jądra zaczął się wyścig producentów odmian Linuxa o to, kto pierwszy opublikuje jądro 2.4.0 w wersji przekompilowanej dla swojej odmiany. Przypomnijmy, że nowe jądro przynosi wiele zmian, które przygotowano z myślą o zastosowaniach biznesowych. Są one na tyle głębokie, że zastąpienie jądra 2.2.x nową wersją nie wystarczy - trzeba uaktualnić kompilator GCC, biblioteki i kilka programów z przestrzeni użytkownika (np. związanych z obsługą PPP).

Nowe funkcje

Najważniejszą nowością jądra 2.4.0 jest możliwość obsługi do 16 procesorów, w pełni zgodna ze specyfikacją SMP. Jądro to znosi również ograniczenie maksymalnej wielkości pliku w systemie Linux (dotychczas górna granica jego objętości wynosiła zaledwie 2 GB) i umożliwia obsługę nowych systemów plików: UDF (format płyt DVD, dotychczas trzeba było samodzielnie kompilować jądro z odpowiednimi dodatkami) i XFS (EFS) używany w systemie IRIX oraz QNX4.

Duże zmiany zaszły również w jądrze w zakresie obsługi systemów sieciowych. Zaktualizowano większość sterowników kart sieciowych i dodano kilka nowych, w szczególności dla kart ATM. Od nowa napisano również system obsługi maskowania adresów IP (NAT) oraz obsługi funkcji firewalla, aczkolwiek możliwe jest przełączenie w tryb obsługi zgodny z narzędziami dla wersji 2.2.x.

Do jądra włączono również mikroserwer kHTTPd, serwer WWW zawarty bezpośrednio w jądrze systemu (jako moduł). Dzięki temu, że serwer ten działa na poziomie jądra jest od trzech do sześciu razy szybszy niż standardowo wykorzystywany w systemie Linux serwer Apache. Oczywiście kHTTPd jest bardzo prostym serwerem i nie zawiera dodatkowych rozszerzeń do obsługi aktywnych stron WWW. Potrafi serwować jedynie statyczne pliki HTML, a wszelkie żądania dotyczące uruchomienia programu CGI lub wykonania skryptu muszą być przekazywane do serwera działającego w przestrzeni użytkownika (np. do Apache'a).

Znacznie rozbudowano zestaw funkcji multimedialnych oferowanych przez jądro. Dodano do niego mechanizm Direct Rendering Manager (DRM), który pełni rolę pośrednika między apli- kacjami a interfejsem wideo, dba o odpowiednie odblokowanie interfejsu i zapobiega zawieszaniu (a raczej "zamrażaniu") systemu, gdy kilka procesów próbuje manipulować pamięcią wideo w tym samym czasie.

Ulepszono również funkcjonalność często wykorzystywanego (np. przez większość instalatorów różnych odmian Linuxa) bufora ramki (framebuffer), dodając sterowniki dla nowych chipsetów wideo (Matrox, Riva, SiS). Framebuffer to obszar pamięci, który reprezentuje pamięć wideo. Zapis do tej pamięci powoduje natychmiastowe zmiany w wyświetlanym obrazie. Bufor ramki (wprowadzony już w jądrze 2.2) integruje w ten sposób tryb tekstowy i konsolę.

Jądro 2.4.0 standardowo obsługuje dyski ATA66. Brak tej obsługi był uciążliwy w wersji 2.2.x i zmuszał do pracy dysków w trybie kompatybilności ATA.

Nowe jądro może również obsługiwać interfejs FireWire (IEEE 1394), umożliwiający m.in. podłączanie do komputerów z systemem Linux cyfrowych kamer wideo i transmitowanie za jego pośrednictwem sygnału Composite Video w czasie rzeczywistym.

Nowe jądro jest przystosowane również do obsługi większości urządzeń wyposażonych w interfejs USB: klawiatur, mysz, skanerów, modemów, a także konwerterów USB-Ethernet i jednego z urządzeń USB Bluetooth.

Czego zabrakło?

Problemem jądra Linuxa są jak zwykle kłopoty z obsługą sprzętu, a przede wszystkim mechanizm automatycznego wykrywania urządzeń. Co prawda w wersji 2.4 udało się wprowadzić bezpośrednio do jądra wykrywanie kart działających w trybie plug & play, ale tylko zgodnych z ISA, a te w zasadzie znikły już z rynku.

Nie udało się również wdrożyć pełnej obsługi specyfikacji ACPI, związanej z zarządzaniem energią. Obsługa maszyn wieloprocesorowych, chociaż znacząco lepsza niż dotychczas, nadal jest niewystarczająca, aby Linux mógł skutecznie konkurować z unixowymi systemami serwerowymi.

Dotkliwy jest również brak obsługi systemu plików NFS v3, powszechnie wykorzystywanego już w komercyjnych systemach Unix. Problemem mniej istotnym jest brak dobrego sterownika dla systemu plików NTFS - został on standardowo dołączony do jądra systemu. Jest niestabilny i może spowodować uszkodzenie wolumenów NTFS.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200