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