Download: NewsKernel

Transkrypt

Download: NewsKernel
NOWOŚCI
Jądro
NOWOŚCI W JĄDRZE
DEVFS
W ostatnich dniach Greg Kroah-Hartman
podjął kilka prób usunięcia systemu plików
DevFS z drzewa 2.6, okazało się to jednak
trudne. Próbował najpierw wysłać łatę, która
całkowicie usunęłaby ten system plików, ale
zdaniem niektórych – zwłaszcza tych, którzy
na co dzień polegają na DevFS – było to zbyt
agresywne posunięcie. Spróbował więc z patchem, który tylko wyłączałby DevFS, planując usunięcie go całkowicie, jeśli nie pojawiłyby się zbyt głośne protesty. Dla wielu osób to
także było zbyt ekstremalnym rozwiązaniem.
Ostatecznie Greg stworzył ndevfs, wersję „nano” DevFS, która miałaby zastąpić wersję pełną i – oby – zadowolić zatwardziałych użytkowników tego systemu. Okazało się jednak,
że sam Greg nie potrafił pogodzić się z takim
kompromisem i zdecydował o zaprzestaniu
prac nad łatą. Uważał po prostu, że dynamiczny system plików/dev nie należy do jądra.
Problem pozostał nierozwiązany. Greg powiedział w pewnym momencie, że „DevFS jest
niepotrzebny, zły i zostanie usunięty z jądra”.
Jednym z najbardziej interesujących
aspektów całej dyskusji jest fakt, że nikt
nie wspomina wiele o utworzonym przez
samego Grega (i oficjalnym) zamienniku
DevFS, udev, napisanym właśnie po to, aby
zastąpić DevFS. Wygląda na to, że DevFS,
mimo swoich wad, to coś, czego nikt inny
nie był w stanie przez cały ten czas osiągnąć
lub skutecznie zastąpić, więc jego ostatecznemu usunięciu nie będzie prawdopodobnie towarzyszyć żadne rozwiązanie, które
udostępniałoby użytkownikom równoważne funkcje.
Richard Gooch, autor DevFS, znalazł się
pod obstrzałem niemal natychmiast po
wprowadzeniu tego narzędzia. Jego styl
programowania różnił się od stosowanego
przez innych programistów jądra, Richard
obstawał jednak przy tym, że jest to właściwy sposób. Jego cel – stworzenie dynamicznego, działającego w przestrzeni jądra zamiennika katalogu/dev – także był od samego początku uważany za wyjątkowo kontrowersyjny, zwłaszcza przez programistów
takich jak Alexander Viro, opiekun VFS.
Przez lata tu i tam wybuchały spory: Alexander narzekał na problemy związane
z kodem Richarda, Richard zaś oskarżał
Aleksandra o to, że nie określa jasno, na
czym te problemy polegają.
Linus Torvalds rozstrzygnął ostatecznie
tę kwestię, włączając DevFS do swojego oficjalnego drzewa. Przez krótką chwilę wyglądało na to, że Richard jest zwycięzcą
w sporze; okazało się jednak, że Linus miał
własne wizje funkcji DevFS. Kilka z nich
stało w rzeczywistości w sprzeczności z intencjami Richarda. Tymczasem zaś coraz
większa liczba użytkowników zaczęła korzystać z narzędzia na co dzień, dzięki czemu znacznie się ono rozwinęło. Wielu czołowych autorów jądra nadal uważa, że jest
to jedna z najgorszych podjętych przez Linusa decyzji. Alexander oświadczył pewnego dnia, że DevFS zawiera „nienaprawialne
wyścigi (race conditions)”, a osąd ten przylgnął do systemu plików na dobre. Widząc,
co się święci, Richard zrezygnował w końcu
z całego projektu i wycofał się całkowicie
z prac nad jądrem. Greg, jeden z najsurowszych krytyków DevFS, przejął projekt, zamierzając zakończyć go ostatecznie, ale
najwyraźniej przekonał się, że jest to trudniejsze, niż mu się wydawało.
NOVELL DEBUGGER
Pracownicy firmy Novell stworzyli nowy
debugger jądra na licencji Open Source
(NLKD), a na Ottawa Linux Symposium zaprezentują poświęconą mu pracę. Twórcy jądra nie powitali jednak tego projektu z otwartymi ramionami. Jest już kilka debuggerów
Open Source (KGDB i KDB), których Novell
– przed stworzeniem własnego – nie przetestował dokładnie. Wygląda na to, że istniejące debuggery mają pewne funkcje, których
brakuje w NLKD. Debugger Novella oferuje
tylko łaty na konkretne wersje jądra oferowane przez poszczególnych dystrybutorów, co
utrudnia innym testowanie go. Relacje tych,
którzy korzystali już z programu, nie są
szczególnie entuzjastyczne. Z drugiej jednak
strony, jak podkreślają niektórzy, Novell jako
firma uczynił krok we właściwym kierunku,
a różni programiści zaczęli już formułować
wskazówki i sugestie dotyczące usprawnienia
NLKD.
Linus Torvalds przez długi czas traktował
debuggery jądra podejrzliwie, mówiąc, że
promują niechlujną praktykę debuggowania.
Uważa, że najlepszym sposobem usuwania
błędów z kodu kernela jest zrozumienie jego
działania, zbadanie kodu źródłowego i wydedukowanie, na czym polega problem.
12
WWW.LINUX-MAGAZINE.PL
NUMER 20 PAŹDZIERNIK 2005
Używanie debuggera, powiedział, pozwala
na znajdowanie błędów, ale nie skłania do dokładnego zrozumienia kodu, przez co bardziej prawdopodobne staje się wysyłanie byle
jakich poprawek. Ogromna liczba programistów jądra jest jednak innego zdania, a sam
Linus wyraża chwilami chęć zawarcia kompromisu dotyczącego tej kwestii.
NOWOŚCI
GIT
Wygląda na to, że stworzone przez Linusa
Torvaldsa narzędzie do kontroli wersji, git,
faktycznie – jak obiecywano – staje się jednym z najbardziej niesamowitych przykładów
rozwoju oprogramowania Open Source od
czasów samego jądra Linuksa. Postępy prac są
po prostu zdumiewające – nad gitem pracują
setki programistów, powstało mnóstwo związanych z nim zewnętrznych projektów, dokumentacji, przeglądarek graficznych i stron
WWW opisujących gita lub wykorzystujących
go bezpośrednio.
Linus tradycyjnie podejmuje decyzje projektowe, które, zanim zostaną należycie zro-
ORT
Michał Piotrowski napisał mały skrypt,
ułatwiający użytkownikom tworzenie raportów o błędach. Nazwał go ORT – jest to
skrót od „Oops Reporting Tool”. ORT gromadzi różne dane dotyczące uruchomionego systemu, w tym informacje o błędach
(oops), i wysyła je na listę dyskusyjną li-
zumiane, spotykają się z głośnym sprzeciwem
wielu osób, potem zaś zyskują wielkie uznanie i stają się powodem do dumy. Najbardziej
spektakularnym przykładem ostatnich tygodni było wprowadzenie znaczników. Git
umożliwia nadawanie kolejnym wersjom repozytorium znaczników (tag), np. 2.6.12. Łatwiej odwoływać się do takich oznaczeń, niż
do wartości kluczy SHA1; łatwiej także zapamiętać nazwę znacznika i używać jej. Jest to
standardowa cecha systemów kontroli wersji,
w przypadku gita jednak znaczniki mają charakter prywatny. Osoba A może dodawać do
repozytorium wszelkie rodzaje znaczników,
a jeśli osoba B sklonuje to repozytorium, żadne znaczniki nie zostaną skopiowane, chyba
że osoba A przekaże osobie B odpowiednie
dotyczące ich informacje.
Rozwiązanie to ma wielu przeciwników,
oznacza bowiem utratę części historii danego repozytorium: repozytorium osoby B nie
jest już dokładnym klonem repozytorium
osoby A. Narusza to ogólną zasadę kontroli
wersji, nakazującą zachowywanie pełnej historii projektu. Linus jednak argumentuje
następująco: w rozproszonym środowisku
programistycznym domyślna propagacja
znaczników między repozytoriami oznaczałaby, że wszelkie znaczniki utworzone przez
dowolnego z programistów przenikałyby
wówczas do głównego jądra – znajdowałaby
się w nim ogromna liczba znaczników, całkowicie bezużytecznych dla każdego poza
ich autorem.
nux-kernel lub do opiekuna określonej części jądra.
Michał napisał to narzędzie, ponieważ wielu osobom brakuje czasu, cierpliwości lub
wiedzy niezbędnych do samodzielnego stworzenia poprawnego raportu o błędzie. W raportach wysyłanych na listę linux-kernel
o wiele za często brakuje wystarczających informacji o sprzęcie lub oprogramowaniu albo
nawet wersji jądra, której dotyczy dany błąd.
ORT został ciepło przyjęty przez wielu
twórców jądra; niektórzy proponowali nawet,
aby włączyć go do głównego drzewa. Pojawiło
się także parę głosów krytyki – najpoważniejsze z nich dotyczyły konieczności uruchamiania ORT-a z prawami roota. Wygląda jednak
na to, że te techniczne problemy zostaną
wkrótce rozwiązane i nie staną się żadną poważną przeszkodą.
TRZYMAMY KCIUKI ZA JOHNA HALLA
Na zakończenie wiadomości w tym miesiącu chcę dołączyć do wielu innych, życząc Johnowi Hallowi, autorowi książki
„Programming Linux Games” (nie mylić
z Jonem „Maddogiem” Hallem, innym
znanym autorem Linuksa) całkowitego
wyleczenia raka. U Johna zdiagnozowano
niedawno – po zaniedbaniu badania podejrzanego pieprzyka na ramieniu – czerniaka skóry. Pod adresem http://overcode.yak.net/3 pisze on bloga o walce z chorobą i prosi odwiedzających o wpłaty na
rzecz American Cancer Society. W blogu
znajduje się odnośnik do strony służącej
do przekazywania darowizn.
Kernel Traffic
Jeżeli regularnie czytasz ten dział, zachęcamy do odwiedzenia serwisu Kernel Traffic, gdzie przeczytać można więcej wiadomości dotyczących jądra. Stronę otwiera wprowadzenie autorstwa Zacka:
Kernel Traffic to grupa biuletynów informacyjnych, ale także jeden szczególny biuletyn, podsumowujący dyskusje na liście linux-kernel, głównej liście dyskusyjnej twórców jądra Linuksa. Linus Torvalds, Alan Cox i inni znakomici programiści wymieniają tam łaty, spierają się na temat szczegółów implementacji, omawiają najnowsze wydarzenia i po prostu tworzą historię.
Ze względu na ogromny ruch na liście (czasem do 3000 wiadomości tygodniowo) i wysoce techniczny charakter niektórych dyskusji, nie da się omówić wszystkich poruszanych zagadnień ani nawet streścić najbardziej interesujących wątków (a gdyby było to możliwe, czytanie takiej informacji
trwałoby niemal tyle, co czytanie samej listy). Jeżeli chcesz być na bieżąco z rozwojem Linuksa, nic
nie zastąpi czytania wiadomości wysyłanych linux-kernel.
Nazywam się Zack Brown. Zająłem się Linuksem w 1994 r., kiedy miałem ostatecznie dość
DOS-a. Od tego czasu z przyjemnością obserwuję, jak Linux staje się nie tylko świetnym systemem, ale również tematem ballad i legend.
WWW.LINUX-MAGAZINE.PL
NUMER 20 PAŹDZIERNIK 2005
13