Raptularz #3
Pierwsza wersja NetBSD została wydania prawie 18 lat temu, w kwietniu 1993 roku. Mimo, że niektóre z oryginalnych poprawek względem 386BSD zaginęły (zostały zapewne usunięte z powodu problemów prawnych związanych ze sprawą USL v. BSDi) możliwe jest odpalenie NetBSD 0.8 pod emulatorem Qemu. Do pobrania jest wersja zintegrowana z Qemu na system Windows, ale kopiując ustawienia zapewne istnieje możliwość uruchomienia na innych platformach.
Na zrzucie ekranu widnieje nazwa 386BSD, chociaż system został zbudowany ze źródeł NetBSD 0.8 pobranych z repozytorium CVS. Co więcej ta sama osoba udostępniła obrazy 386BSD 0.0, tym razem do uruchomienia pod emulatorem Bochs. Będąc przy sprawach związanych z wirtualizacją, warto wspomnieć o poradniku, który z pewnością ułatwi uruchomienie NetBSD 5.1 pod KVM.
Anthony Mallet stworzył framework robotpkg, bazujący na pkgsrc. Jak nazwa wskazuje, jest to zestaw narzędzi wykorzystywanych w robotyce. Natomiast do pkgsrc-wip zaimportowano testową wersję przeglądarki Chromium. Zaktualizowany został także program varnish. Oprócz tego warto wspomnieć o nowym narzędziu ułatwiającym pracę z pkgsrc – pkg_digger. Jest to szybka wyszukiwarka pakietów pochodzących z pkgsrc, która wykorzystuje pkg_summary.
Dostępne są slajdy z konferencji BSD Day 2010, która odbyła się w Budapeszcie. Kilka prezentacji dotyczyło bezpośrednio NetBSD:
- ChewieFS – system plików podobny do bardziej znanego JFFS2.
- Natywne wsparcie dla urządzeń NAND
- Uruchamianie NetBSD przez PXE używając protokołu HTTP
- Nowa biblioteka do komunikacji ze sterownikiem device-mapper znanego z LVM
Julio Merino poinformował także o Kyua – z założenia następca frameworku ATF, służącego to tworzenia zautomatyzowanych testów regresyjnych. Frederic Bezies umieścił na swoim blogu recenzję NetBSD 5.1. Co prawda w języku francuskim, ale ze względu na dużą ilość obrazków (zrzuty ekranu) godne uwagi. Na koniec warto zapytać NetBSD, czy posiada zapałki?
Raptularz #2
Nie tak dawno wydano NetBSD 5.1. Co ciekawe jest to pierwsza wersja, która oprócz tradycyjnych obrazów ISO, oferuje także obrazy do nagrania na przenośnych pamięciach USB – pendrive itp. Obrazy USB dostępne są wyłącznie na platformy i386 oraz amd64, do pobrania m.in. z BitTorrenta. Na systemach unikso-podobnych można je nagrać za pomocą dobrze znanego dd(1), natomiast na Windowsie można posłużyć się Image Writerem.
Zafer Aydoğan poinformował o nowym wydaniu Jibbed – LiveCD NetBSD ze środowiskiem graficznym XFCE. Nowa wersja wniosła wiele usprawnień i już nie straszy w porównaniu z linuksowymi odpowiednikami. Brakuje jedynie instalatora, w przyszłości być może taki się pojawi – Zafer zamieścił kilka zrzutów ekranu gsysinst. Obrazy ISO nowego Jibbed, dostępne są tradycyjnie na architektury i386 i amd64. Przykładowy zrzut ekranu Jibbed:

Niestety zupełnie inaczej wygląda sprawa z NetBSD Desktop. Od dłuższego czasu lista dyskusyjna netbsd-desktop@ była martwa, upadek projektu potwierdził Aleksej Saushev na swojej stronie wiki. Dodatkowo poinformował o pracach nad uratowaniem zawartości z niedawno zamkniętej strony wiki.netbsd.se (dostępny jest mirror).
Jörg Sonnenberger opublikował kod, który pozwala na konwersję repozytorium NetBSD z systemu CVS na Fossil. Na wiki dostępne jest także podsumowanie wyników prób migracji na inne systemy, jak git czy Mercurial. W większości problemy pokrywają się z tymi, jakie napotkał niedawno projekt PostgreSQL. Jörg pracuje obecnie nad usunięciem usterek, które nagromadziły się w repozytorium CVS przez prawie 18 lat.
Tim Hawes nakręcił dwa przystępne video poradniki, przedstawiające instalację i wstępną konfigurację NetBSD. Nasuwają się jednak dwa pytania: dlaczego FFSv1 i z jakiego powodu konto zwykłego użytkownika zostało założone, dopiero po konfiguracji sieci? Niebezpieczeństwo logowania się na konto super-użytkownika, w zabawny sposób opisuje gra typu roguelike, stworzona przez Jasona Dixona na potrzeby NYCBSDCon 2010.
Na tej konferencji pojawiły się także inne ciekawe prezentacje, z czego dwie związane z NetBSD w mniejszym lub większym stopniu. Julio Merino miał okazję opowiedzieć o ATF – framework stworzony na potrzeby NetBSD, do tworzenia zautomatyzowanych testów regresyjnych, obciążeniowych itd. Natomiast Jeremy C. Reed (wieloletni deweloper NetBSD) podsumował swoją pracę nad książką dotycząca historii BSD. Will Blackman znany głównie za sprawą swojego podcastu BSDTalk, udostępnił część nagrań z konferencji.
Raptularz #1
Marc Balmer w końcu dopiął swego i język skryptowy Lua znajdzie się w bazowej dystrybucji NetBSD. Natomiast Lourival Vieira Neto poinformował o wynikach swojego projektu w ramach programu Google Summer of Code. Lunatik pozwala na wykorzystanie skryptów napisanych w Lua na poziomie jądra. Ułatwi to m.in. prototypowanie. To czy Lunatik znajdzie się w oficjalnym repozytorium pozostaje sprawą otwartą.
Dostępne jest nagranie z prezentacji Davida Maxwella o wdzięcznym tytule „The NetBSD Way”. David przez 30-minut opowiada jak rozwijane jest NetBSD – sporo jest porównań do Linuksa. Nie brakuje też dosyć ciekawych wniosków.
Dostępne są już binarne paczki z pkgsrc 2010Q3 na platformy amd64 i i368, dla NetBSD w wersji 4.0.1 oraz 5.0.2. Co ciekawe od niedawna istnieje możliwość kompilowania programów z pkgsrc za pomocą kompilatora Clang/LLVM. Należy pamiętać, że jest to testowa funkcjonalność i należy liczyć się z problemami. Jörg Sonnenberger poinformował o swoich próbach konwersji repozytorium pkgsrc z systemu CVS na Fossil SCM. Na jaw wyszło wiele niedociągnięć i problemów z wydajnością.
Hubert Feyrer znalazł austriacką firmę Gracetech, która sprzedaje komputery z procesorami ARM i systemem NetBSD, opakowane w drewniane obudowy. Dostępna jest krótka ulotka w języku niemieckim.
Masao Uebayashi od jakiegoś czasu pracował nad dodaniem obsługi XIP (Execute in place) do NetBSD. Pozwoli to na odpalenie aplikacji na urządzeniach m.in. typu NOR flash, bez ładowania ich do pamięci RAM. Natomiast Adam Hamsik zaproponował zaimportowanie narzędzia growfs z FreeBSD, które służy do powiększania woluminów FFS1 i FFS2. Ostatecznie jednak zmodyfikowana została istniejąca aplikacja – resize_ffs.
Na koniec fotografia przedstawiająca próby uruchomienia NetBSD na palmtopie Acer N311 przez Alexandera Polakova.
Raptularz – rodzaj brudnopisu czy notatnika, który dawniej służył do zapisywania różnych bieżących spraw (…)
Fossil SCM, a repozytorium NetBSD
Fossil SCM to system kontroli wersji, wiki i bugtracker – wszystko to w rozproszonym stylu. Jest to prawdopodobnie jeden z najbardziej innowacyjnych projektów zarządzania oprogramowaniem od czasu powstania Darcs i Trac.
Obecny trend w świecie otwartych źródeł to przejście z centralnie zarządzanych systemów kontroli wersji na rozproszone odpowiedniki. Liczne projekty już teraz korzystają z Gita czy Mercuriala. W przypadku NetBSD też się nad tym zastanawiano, ale natrafiono na wiele problemów.
Większość takich systemów ma spore zależności. W przypadku Darcs jest to środowisko GHC (Haskell), Monotone wymaga ogromnej biblioteki Boost, Bazaar i Mercurial potrzebują Pytona, natomiast SVK i Git są zależne od Perla.
W przypadku NetBSD jest to szczególnie problematyczne, ponieważ słowo przenośny oznacza bardzo dużo. Powyżej wymienione zależności, nękają ogromne problemy z kompilacja krzyżową (cross compiling). Z tego powodu raczej nie znajdą się one w bazowej dystrybucji NetBSD.
Gita można zbudować co prawda bez udziału Perla, jednak pojawia się kolejna przeszkoda. Skalowalność systemów kontroli wersji można ocenić pod względem trzech parametrów – ilości zmian, wielkości poprawek i objętości repozytorium. Git skaluje się świetnie w dwóch ostatnich przypadkach na tle innych rozwiązań.
Należy pamiętać, że NetBSD posiada jedno z najstarszych i największych repozytorii. 17 lat historii i ponad 300 tysięcy poprawek robi wrażenie. Świetnie obrazuje to wizualizacja wykonana za pomocą Gource. Mimo niskiej jakości nagrania, nadal robi wrażenie:
NetBSD gource visualization [LQ sample] - Vimeo.
Jak ten problem rozwiązały inne projekty? W przypadku jądra Linuksa, repozytorium podzielono na dwie części. Historyczne jest używane do przeglądania starych zmian, natomiast obecne prace są prowadzone na „wyczyszczonej” wersji. Społeczność NetBSD dosyć jednomyślnie oceniła to rozwiązanie i to w negatywny sposób. Niektórzy optowali nawet za wciągnięciem historii CSRG do repozytorium, mimo potencjalnych przeszkód prawnych.
Inna kwestia to przepływ pracy, która wygląda trochę inaczej w środowisku BSD. Zmiany są dodawane często i gęsto w postaci małych poprawek. Większość systemów DVC natomiast skupia się na branchowaniu i forkowaniu, co w rezultacie daje duże poprawki, dodawane znacznie rzadziej.
Jakie są więc alternatywy? Jedną jest przejście na SVN, ale prawdopodobnie plusy takiego rozwiązania są mniejsze niż pochłonięty wysiłek. Drugim być może jest Fossil SCM, o których wspomniałem we wstępie.
Za tym młodym projektem stoi twórca SQLite i CVSTrac – Richard D. Hipp. Zależności Fossila są niewielkie i wszystkie wymagane biblioteki znajdują w bazowej dystrybucji NetBSD, co można sprawdzić instalując go za pomocą pkgsrc. Standardowy tryb pracy to automatyczna synchronizacja z głównym repozytorium, co przypomina pracę z CVS.
Problem z zależnościami i ze specyficznym przepływem pracy wydaje się rozwiązany, co jednak ze skalowalnością? Na to pytanie ciężko odpowiedzieć, ponieważ Fossil nie został sprawdzony jeszcze w odniesieniu do tak dużego repozytorium, jakie posiada NetBSD. Jednak z każda kolejną wersją szybkość działania wzrasta. Oczekiwany jest spory przyrost wydajności po dodaniu obsługi WAL oferowanej przez SQLite – bazy danych, z której korzysta Fossil.
Celowo pominąłem sprawę licencjonowania, ponieważ większość istniejących rozwiązań jest dostępnych na GPLu. Co ciekawe Richard D. Hipp zapowiedział, że przyszłe wersje Fossila będą dostępne na licencji Apache, BSD lub innym liberalnym rozwiązaniu (SQLite jest rozpowszechniany jako Domena Publiczna, co sporo wyjaśnia). Nie muszę chyba mówić, że jest to mocna karta przetargowa.
Jednak Fossil jest projektem zbyt młodym, żeby spełnić wszystkie wymagane warunki. Nie wszystkie funkcje są dopracowane – w tyle pozostaje m.in. wiki ze względu na brak użycia standardowego języka znaczników czy bugtracker, który oferuje dosyć małe możliwości. Ze względu na dynamiczny rozwój brakuje nawet numeracji wydań Fossila.
Dlatego ciężko ocenić stabilność działania programu Richarda, a jest to chyba podstawowy wymóg, jaki stawia społeczność NetBSD. Potencjał jest jednak spory, ze względu na unikalne cechy Fossila, które z czasem zapewne zostaną udoskonalone. Warto też zapoznać się z dyskusją jaka miała miejsce na kanale IRC.
PCC – fundusze zebrane!
Portable C Compiler to kompilator języka C, który był rozpowszechniany wraz z systemem BSD, aż do wydania wersji 4.4BSD w 1994 roku. Został on wtedy zastąpiony przez GCC. Jednak historia zatoczyła koło.
W 2002 roku kilka osób postanowiło przenieść NetBSD na platformę PDP-10, dokładniej na emulator KLH10 PDP-10. Miał to być swojego rodzaju test przenośności NetBSD. Architektura KLH10 była interesująca ze względu na 36-bitowe instrukcje i adresowanie 30-bitowe.
Wśród tych osób był Anders Magnusson. Początki były bardzo obiecujące. Jednak szybko okazało się, że to nie NetBSD jest głównym problemem, a GCC. Naprawienie jednego problemu w kompilatorze skutkowało znalezieniem następnego. W ten sposób Anders w 2003 roku zainteresował się kompilatorem PCC.
Lata dominacji jednego kompilatora doprowadziły, do znacznego obniżenia jakości kodu GCC. Słów krytyki na temat ogromnej liczby błędów nie szczędził w szczególności Theo de Raadt. Natomiast społeczność NetBSD była zainteresowana kompilatorem, który wspiera dawno zapomniane przez deweloperów GCC platformy.
W ten sposób PCC szybko trafił do repozytorium NetBSD i OpenBSD, chociaż z różnych przyczyn. W 2007 roku ogłoszono, że nowe wersje GCC będą rozpowszechniane na licencji GPL w wersji 3, która jest także licencją patentową. Zainteresowanie pracą Magnussona jeszcze wzrosło.
W 2008 roku powstał Fundusz BSD, a PCC zostało objęte sponsoringiem. Docelowo miała zostać zebrana kwota 12 tysięcy dolarów, aby pokryć koszty pracy Andersona. Cel ten udało się osiągnąć 29 kwietnia tego roku.
Anonimowy sponsor podarował tysiąc dolarów w imieniu społeczności OpenBSD. Tym samym planowana kwota została przekroczona. Oznacza to, że ostatni cel – ulepszenie obsługi SSA, powinien niedługo zostać zrealizowany. Pozostaje czekać na wersję 1.0.


Najnowsze komentarze