nowości w jądrze

Transkrypt

nowości w jądrze
NOWOŚCI
Jądro
NOWOŚCI W JĄDRZE
ZMIANA SYSTEMU KONTROLI WERSJI
Linus Torvalds przestał korzystać z BitKeepera, a poszukiwania sensownego zamiennika są
dość interesujące. Decyzja podjęta została nagle, więc Linus i inni programiści robią co mogą, aby znaleźć jakieś rozwiązanie umożliwiające kontynuowanie prac nad jądrem w sposób,
do jakiego przywykli. Dyrektor naczelny firmy
BitMover, Larry McVoy, zapowiadał już, że
z takiej sytuacji nie uda się szybko znaleźć wyjścia. Niebawem okaże się, czy jego przewidywania były słuszne, czy jednak znajdzie się jakiś inny system, który faktycznie się sprawdzi.
Oczywiście całkiem możliwe jest, że Linus
i spółka znajdą coś, co nie będzie ogólnym rozwiązaniem służącym do zarządzania kodem, ale
i tak będzie im odpowiadało, podobnie jak kiedyś stary system wysyłania poprawek. W rzeczywistości jednym z ważniejszych obszarów działalności są teraz prace nad utworzeniem zbioru
„tymczasowych” skryptów, które miałyby funkcjonować do czasu znalezienia bardziej długofalowego wyjścia. Linus przyznał, że rozważał na-
wet scentralizowane, tymczasowe rozwiązanie
w rodzaju Subversion, mimo że zarówno on
sam, jak i autorzy tego systemu stwierdzali wiele
razy, że Subversion nie jest dobrym narzędziem
do wspomagania prac nad jądrem Linuksa.
Wszystko to oczywiście najczarniejsze scenariusze – ale są one niestety dość realne.
Autorzy jądra rozważają jednak parę innych,
obiecujących możliwości. Wprawdzie system
kontroli wersji arch wydaje się nieodpowiedni,
głównie ze względu na wybuchowość jego szefa, istnieje jednak kilka projektów, będących
albo odgałęzieniem oryginalnego kodu arch, albo innymi implementacjami możliwości tego
systemu. Jednym z nich jest bazaar-ng, którego
autorem jest Martin Pool, także zajmujący się
jądrem. Ostatnio pracuje jak szalony, chce bowiem, aby system ten nadawał się choć na
przejściowe rozwiązanie dla twórców kernela.
Obiecująco wygląda także rozproszony system kontroli wersji monotone; Linus powiedział
nawet, że woli go od wszystkich innych wol-
SYSFS ZACZYNA CHYLIĆ SIĘ
KU UPADKOWI?
Niedawne próby poprawienia błędnie
umieszczonego katalogu SysFS spaliły na panewce, ponieważ zbyt duża część kodu bazowała na istniejącej lokalizacji. To właśnie
dzięki takim sytuacjom system plików Proc
stał się koszmarnym pomieszaniem z poplątaniem. Programiści pracujący nad SysFS bardzo starali się przewidzieć wszelkie możliwe
problemy i uniknąć losu ProcFS, ale ostatni
wypadek wskazuje, że jednak im to grozi.
Twórcy SysFS znają oczywiście dobrze historię systemu plików ProcFS, funkcji ioctl
i drzewa /dev -- każde z nich rozrosło się do
rozmiarów przerażającego, krwiożerczego potwora. Świadomość tego zagrożenia będzie nadal brana pod uwagę przy tworzeniu SysFS,
dzięki czemu prawdopodobnie uda mu się
przetrwać dłużej, niż pozostałym systemom.
Gdyby założyć, że ProcFS nadawał się do użyt-
12
NUMER 17 CZERWIEC 2005
ku przez dziesięciolecia, SysFS sprawdzałby
się prawdopodobnie przez wieki.
Podstawowym problemem wszystkich tych
systemów, także SysFS, jest stworzenie sensownego interfejsu użytkownika dla coraz
szybciej rozszerzającego się zestawu usług.
Liczba urządzeń cały czas błyskawicznie
wzrasta, a wszystkie muszą być uwzględnione
w katalogu /dev w taki sposób, aby użytkownicy mogli je rozpoznać i wykorzystać. Sterowniki i inne części jądra zmieniają się, są
coraz większe i łączone w kategorie z innymi
sterownikami, uważanymi wcześniej za całkowicie odmienne, a system plików SysFS
musi to wszystko uwzględniać w interfejsie
użytkownika w sposób przejrzysty, praktyczny i przewidywalny. Problem ten pojawił się
wraz z początkami systemu UNIX i będzie
mu towarzyszyć aż do końca.
WWW.LINUX-MAGAZINE.PL
nych propozycji. Jest to niewątpliwie dobry
system; doprowadzenie go do stanu, w którym
będzie przydatny dla programistów pracujących nad jądrem, wymaga jednak jeszcze wiele
pracy. Nie jest też całkiem pewne, czy zainteresowanie skupiające się ostatnio na projekcie
wpływa na przyspieszenie, czy wręcz przeciwnie – opóźnienie związanych z nim prac.
Dość dziwną i interesującą próbą jest system plików git, napisany przez Linusa. System już działa – do rozwoju gita używa się
właśnie gita – nie oznacza to jednak bynajmniej, że każdy jest w stanie z niego korzystać, ani że Linus zainteresowany jest stworzeniem tradycyjnego systemu kontroli wersji. Cokolwiek to właściwie jest, będzie to coś
całkiem nowego. Linus sugerował, że do zaimplementowania tradycyjnej kontroli wersji
można by wykorzystać system git, nie chce
jednak robić tego sam – skupia się tylko na
tych funkcjach, które uważa za najważniejsze. Ma jednocześnie nadzieję, że uda mu się
przerzucić prace związane z systemem na innych, sam zaś pozostanie odpowiedzialny za
całość projektu i zatwierdzanie poprawek.
OBSŁUGA
PROCESORÓW
GEODE
Kianusch Sayah Karadji pracował od jakiegoś czasu nad obsługą procesorów Geode
w jądrze 2.6, udostępniając na swojej stronie
WWW niezależną łatę. Po licznych prośbach
użytkowników zdecydował się jednak zgłosić
ją do włączenia do oficjalnego drzewa. Zgłoszenia dokonał pod koniec lutego, kiedy było
już za późno na uwzględnienie łaty w wydanej w marcu wersji 2.6.11; pojawiła się ona
jednak parę tygodni później w jądrze 2.6.12rc1. Jeżeli nie będzie żadnych niespodzianek,
zostanie też uwzględniona w wersji 2.6.12.
Kianusch współpracuje z autorami jądra od
2002 r., zajmując się głównie pisaniem
skryptów i zgłaszaniem błędów, wspomniana
łata jest jednak jego pierwszym wkładem
w samo jądro.
Jądro
SZYBSZY HOTPLUG
Greg Kroah-Hartman jest autorem działającego w przestrzeni użytkownika projektu, odpowiedzialnego za podłączanie urządzeń podczas pracy (hotplugging), zwanego hotplug-ng.
Projekt ma zastąpić istniejące skrypty linux-hotplug, napisane w Bashu, małym plikiem binarnym. Aby uniknąć konieczności korzystania
z interpretera Basha i zmniejszyć rozmiar kodu, Greg napisał ten program w języku C. Okazało się jednak, że najważniejszą korzyścią jest
zwiększenie szybkości działania. Greg wiedział,
że wykonanie skryptu w Bashu trwało na jego
komputerze około dwóch sekund, podczas gdy
jego program potrzebował tylko niecałej sekundy; dopóki jednak programiści zajmujący się
systemami wbudowanymi nie zaczęli skakać
z radości, nie zdawał sobie sprawy z wagi tego
usprawnienia. Twórcy Suse 9.2 zauważyli na
przykład, że skrypty odpowiedzialne za podłączanie urządzeń podczas pracy powodowały nawet 40-sekundowe opóźnienia – dzięki programowi Grega da się je zauważalnie zmniejszyć.
OBSŁUGA SECURE DIGITAL
Pierre Ossman napisał moduł obsługi kart
pamięci typu Secure Digital (SD). Karty te
mają pojemność kilku gigabajtów i przeznaczone są przede wszystkim do przenoszenia
danych multimedialnych między różnymi
rodzajami sprzętu. Pomagają też w egzekwowaniu praw autorskich, ograniczając
użytkownikom możliwości kopiowania danych z karty. Niektórzy pracujący nad ją-
drem programiści niecierpliwie oczekiwali
realizacji tego projektu, Pierre nie otrzymywał jednak dotychczas tyle pomocy technicznej, ile oczekiwał, zwłaszcza jeżeli chodziło o włączenie jego kodu do głównej gałęzi jądra. Działo się tak między innymi
dlatego, że nie jest całkiem jasne, czy prawo
zezwala w ogóle na pisanie sterowników do
kart SD.
WWW.LINUX-MAGAZINE.PL
NOWOŚCI
NOWY
PODSYSTEM
RDZENIA JĄDRA:
TIMEOFDAY
John Stultz pracuje nad zależnym od architektury podsystemem kontrolowania
czasu, który zmniejszyłby redundancję
i złożoność odpowiedzialnego za to kodu
wchodzącego w skład jądra. Próba uogólnienia tej, ewidentnie uzależnionej od
sprzętu, części jądra to duże wyzwanie.
Niektóre architektury realizują operacje
związane z czasem w przestrzeni użytkownika, inne w przestrzeni jądra; kod napisany przez Johna musi zaś działać szybciej,
niż obecne rozwiązania. Aby złagodzić ból
przesiadki, John udostępnił możliwość
opcjonalnego korzystania z nowego podsystemu.
NUMER 17 CZERWIEC 2005
13