Download: NewsKernel
Transkrypt
Download: NewsKernel
Jądro NOWOŚCI NOWOŚCI W JĄDRZE GIT W ostatnim miesiącu kierunek kontroli wersji jądra stał się bardziej niepewny niż kiedykolwiek, a to z powodu odejścia BitKeepera i rozważania przez Linusa najprzeróżniejszych opcji, z których żadna nie była jednak satysfakcjonująca. W krótkim okresie kilku tygodni krajobraz zmienił się diametralnie, a git (wymawiaj pierwszy dźwięk jako ‘g’) stał się nie tylko ulubieńcem Linusa, lecz także wielkim zwycięzcą w dziedzinie bezpłatnego oprogramowania służącego do kontroli wersji, pozostawiającym wszystkich konkurentów daleko w tyle. Nawet istniejące narzędzia do wersjonowania, takie jak arch czy darcs są integrowane z git. Dzieje się coś niezwykle ważnego. Gdy Linus rozpoczynał pracę nad git, zaprojektował go jako system plików wyposażony w polecenia niskiego poziomu, przeznaczone do śledzenia zawartości danego katalogu. Opisywał je raczej jako „polecenia systemowe”, służące do wykonywania podstawowych operacji, a nie jako zestaw narzędzi do kontroli wersji. Miał nadzieję, że git zostanie przykryty „prawdziwym” systemem wersjonowania, zrealizowanym na wyższym poziomie w postaci skryptów pełniących rolę poleceń oczekiwanych przez większość użytkowników. Obecnie projekt Cogito Petera Baudis'a przypomina bardziej oparte na git narzę- dzie wysokiego poziomu, przygotowane przez Linusa do rozwijania jądra. Jednakże, na tym etapie, wszystko może się zdarzyć. Jedyne, co wydaje się być mniej więcej pewne, to świetlana przyszłość git w rozwoju jądra i wielu innych miejscach. Może pojawić się pytanie, co się właściwie dzieje? Przez cały czas, gdy Linus wykorzystywał BitKeepera, wszędzie pełno było oburzonych apostołów bezpłatnego oprogramowania, będących jednocześnie świetnymi programistami, pracujących jak szaleni, aby stworzyć bezpłatną alternatywę dla BitKeepera. A mimo to nie przybliżyli się nawet do celu. Teraz, w dzień po tym jak BitKeeper zniknął ze sceny, pojawił się solidny i sprawny zastępca. Co się stało? Odpowiedź brzmi: wiele różnych rzeczy. Żadne z bezpłatnych rozwiązań alternatywnych nie wykorzystywało wiedzy o tym, czego naprawdę chciał Linus. Od czasu do czasu Linus omawiał niedostatki poszczególnych, bezpłatnych systemów, lecz tylko programiści pracujący nad BitKeeperem potrafili wykorzystać analizy i wykaz pożądanych funkcji, przygotowane przez Linusa. Wiele alternatywnych rozwiązań zakończyło swe istnienie, gdyż zbyt dużo czasu poświęcono na implementowanie zbędnych funkcji, podczas gdy prawdziwe niedostatki pozostały niepoprawione. Linus opracował system plików git tak, by działał on szybko i zezwolił na rozproszone prace projektowe. Nie rozdrabniał się i nie zgłębiał MENTORZY JĄDRA Projekt, którego czas z pewnością nadszedł. Matt Mackall utworzył nową listę mailngową 'mentorzy jądra', której zadaniem jest nauczyć nowicjuszy jak mają postępować, aby ich kod wpisywał się w główną linię rozwojową jądra. Matt twierdzi, że techniczne i obyczajowe przeszkody mogą być bardzo zniechęcające. Jest to niewątpliwie prawdą, ale większość trudności nie jest zbyt wyszukana. Najgłębiej ukrywane problemy pojawiają się wtedy, gdy starzy wyjadacze wypowiadają się na temat „właściwych” sposobów implementowania danych fragmentów kodu. Osoby początkujące nie spodziewają się tak ukierunkowanej krytyki swego kodu i nie potrafią dostrzec logiki w stawianych żądaniach, które często powodują konieczność wykonania dodatkowej pracy. Inne problemy, takie jak brak pewności kto powinien zatwierdzić daną łatę i podzielić ją na mniejsze fragmenty, wywołują nie tak silną frustrację, mimo że poprawny podział dużych łat może być zadaniem bardzo skomplikowanym, a tym samym bardzo stresującym. Bez względu na to, co można by jeszcze na ten temat powiedzieć, zasady obowiązujące podczas tworzenia jądra są bardzo mętne. Projekt Mentorzy Jądra jest bardzo pożądanym dodatkiem w świecie Linuksa i z pewnością pomoże odnaleźć drogę nowym programistom. w zbyt skomplikowane funkcje, które uważał za zbędne. Ponadto zablokował swój projekt i nie pozwolił programistom wymknąć się spod kontroli. Dzięki temu projekt posuwał się szybko na przód, w ściśle określonym kierunku. Wszyscy toczyli zażarte boje. Gdy Linus oznajmił, że przerwał prace nad jądrem, aby zająć się git, setki utalentowanych programistów podążyło za nim, pracując dzień i noc, aby zrozumieć i stworzyć narzędzia otaczające bazowy projekt. Jeden z dyrektorów zarządzających BitMover, Larry McVoy twierdzi, że na korzyść BitKeepera zadziałał fakt, iż model tworzenia oprogramowania Open Source nie przystawał do realiów przygotowywania złożonych narzędzi. Przez lata wskazywał popularność BitKeepera wśród twórców jądra jako dowód na to, że metody stosowane podczas tworzenia bezpłatnego oprogramowania są niezadawalające. Przez lata nikt nie potrafił wykazać, że się mylił. Nawet teraz, gdy tempo rozwoju git jest w znacznej mierze zasługą znajomości cech BitKeepera. I, oczywiście, niezdolność wszystkich rozwiązań alternatywnych do osiągnięcia postaci chociażby zbliżonej do tego, co prezentuje bitKeeper, nadal zaprząta myśli apostołów Open Source i kierowników projektów. Mimo to, nadejście git było szokującym fenomenem i przekroczyło najśmielsze oczekiwania. Jeśli historia git i BitKeepra czegoś nas nauczy, to będzie to niewątpliwie dobra lekcja. NOWOCZESNY SPRZĘT W KERNEL.ORG Hewlett-Packard podarował kernel.org dwa serwery DL585 quad Opteron, z 24 GB RAM i dyskami 10 TB, wykorzystujące macierze MSA-30. Wymiana sprzętu jest odpowiedzią na narastające problemy z przepustowością, wynikające z tego, że po pojawieniu się każdej nowej wersji Linuksa, kernel.org jest wręcz bombardowana z całego świata. Oba nowe serwery weszły do użycia na początku kwietnia bez większej pompy. NUMER 18 LIPIEC 2005 11 NOWOŚCI Jądro ŁĄCZENIE PROJEKTÓW SCSI Projekty linux-iscsi i open-iscsi zostały połączone w jeden projekt iSCSI, wykorzystujący jako punkt wyjścia kod iscsi. Najwidoczniej, toczące się przez pewien czas między dwoma grupami programistów spory dobiegły końca i wszyscy doszli do wniosku, że razem mają większe szansę na stworzenie naprawdę dobrego stosu SCSI do Linuksa. Po podjęciu decyzji, który z kodów bazowych ma być wykorzystany jako punkt wyjścia, należy także zadecydować, jaki system kontroli wersji zostanie użyty: open-iscsi's Subversion czy linux-iscsi's CVS. Wszystko wskazuje na to, że przynajmniej w najbliższym czasie, wykorzystywany będzie Subversion, ale wobec ciągłego naporu BitKeepera i git wszystko jest możliwe. 12 NUMER 18 LIPIEC 2005 NOWY SYSTEM PLIKÓW CONFIGFS Joel Becker stworzył nowy system plików ConfigFS – jeszcze jeden interfejs funkcjonujący obok ioctls, ProcFS, udev, SysFS i DebugFS. Joel twierdzi, że „configfs nie ma na celu wyparcia sysfs ani procfs, lecz ma wraz z nimi współistnieć.” Jednym z głównych zadań ConfigFS jest dostarczenie przejrzystego interfejsu, umożliwiającego korzystanie ze skryptów. ConfigFS znajduje się ciągle we wczesnym stadium rozwoju, a niektóre szczegóły implementacyjne dopiero powstają. Nie jest jasne, czy rzeczywiście istnieje potrzeba tworzenia jeszcze jednego intefejsu jądra opartego o system plików. Najwyraźniej ConfigFS został zainspirowany brakiem rozwiązań, nawet jeśli wziąć pod uwagę, że ostatnia próba, SysFS, jest całkiem satysfakcjonująca. FUSE ZRYWA Z KOMPATYBILNOŚCIĄ WSTECZNĄ Miklos Szeredi wysłał szereg aktualizacji do FUSE (Filesystem in USEr-space), zmieniających interfejs użytkownika, zrywając tym samym z kompatybilnością wsteczną. Zmiany były niezbędne ze względu na konieczność zapewnienia zgodności obsługi trybu 32- i 64-bitowego. Franco Broi pomaga podczas testowania łaty. Burzliwe istnienie FUSE pozostaje niepewne, lecz nadal jest obecne w drzewie -mm Anrew Mortona, dając mu tym samym co najmniej solidną bazę użytkowników. Zmiany wprowadzone przez Miklosa wydają się być łatą typu „lekarstwo na narastający ból”, konsolidującą infrastrukturę w sposób, którego nie da się na dłuższą metę ominąć. WWW.LINUX-MAGAZINE.PL