Podsumowanie FreeBSD cvs-src od 07/03/04 do 14/03/04 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Jest to regularne, cotygodniowe podsumowanie pełnego wyzwań rozwoju FreeBSD. Ma ono na celu pomoc wspólnocie FreeBSD w śledzeniu szybko dokonujących się zmian w FreeBSD-CURRENT przez przefiltrowanie potoku danych z listy dyskusyjnej CVS do łatwej (mamy nadziej) do przeczytania postaci. Sprawozdanie to wykonano przy użyciu reStructuredText_, więc każda nietypowa interpunkcja jest prawdopodobnie przewidziana dla reST. .. _reStructuredText: http://docutils.sourceforge.net/rst.html Podsumowania z poprzednich tygodni i ich wersje HTML znajdziesz pod adresem http://www.xl0.org/FreeBSD (wersja angielska), lub http://mocart.pinco.pl/FreeBSD (polskie tłumaczenie). Wszelkie komentarze wysyłaj do Marka Johnstona (Mark at xl0.org). Komentarze dotyczące tłumaczenia wyślij do Łukasza Dudka (mocart at pinco.pl) i Szymona Roczniaka (simon at dischaos.com). .. contents:: ======= Nowości ======= PF z OpenBSD dołączony do budowy systemu ---------------------------------------- Max Laier dołączył PF_ do budowy systemu. PF został zaimportowany do FreeBSD już jakiś czas temu, natomiast od teraz jest już dostępny podczas budowania systemu w -CURRENT. Jeżeli aktualizujesz system do wersji po tej zmianie (z 8 marca) koniecznie musisz użyć mergemaster -p przed uruchomieniem installworld'a (ale przecież robisz to za każdym razem, prawda? :), ponieważ dodany został nowy użytkownik i dwie nowe grupy. Jeżeli nie chcesz używać PF'a, w tym wprowadzeniu Max dodał także do make.conf opcje NO_PF. .. _PF: http://www.benzedrine.cx/pf.html http://docs.freebsd.org/cgi/mid.cgi?200403082203.i28M3TvL068184 Dodano narzędzia nanobsd dla systemów wbudowanych ------------------------------------------------- Poul-Henning Kamp (phk) dodał narzędzie, które może być użyte do utworzenia obrazu systemu do użycia w urządzeniach wbudowanych. Narzędzie nazywa się nanobsd. W tej chwili nanobsd nadaję się tylko dla 256MB dysków flash, ale jest jeszcze sporo możliwości na dalsze jego zmniejszenie. Projekt dopiero startuje i ciągle jeszcze wymaga sporo pracy i dokumentacji. Jeżeli jednak chcesz go przetestować to plik Makefile i konfiguracja znajdują się w /usr/src/tools/tools/nanobsd. http://docs.freebsd.org/cgi/mid.cgi?200403101028.i2AASYW0011837 Dodano wsparcie dla Intelowego kompilatora C przy budowaniu jądra ----------------------------------------------------------------- Thom Rhodes (trhodes) wprowadził możliwość kompilacji jądra przez `kompilator icc firmy Intel`. Kompilator ten produkuje dużo wydajniejszy kod niż gcc. Kompilacja jądra działa w tej chwili poprawnie jedynie z icc 7. Natomiast z jądrami kompilowanymi icc 8 są już poważne problemy. .. _`kompilator icc firmy Intel`: http://www.intel.com/software/products/compilers/clin/ http://docs.freebsd.org/cgi/mid.cgi?200403122136.i2CLaCm9096276 http://docs.freebsd.org/cgi/mid.cgi?200403122145.i2CLjXYo098770 Nowe sysctl'e ograniczające sztywne dowiązania (hard links) ----------------------------------------------------------- Paweł Jakub Dawidek (pjd) dodał dwa nowe sysctle, które mogą zostać użyte do powstrzymania użytkowników przed stworzeniem sztywnych dowiązań do cudzych plików, Nowe sysctl'e to security.bsd.hardlink_check_uid i security.bsd.hardlink_check_gid. Ograniczają one możliwość stworzenia sztywnego dowiązania odpowiednio dla właściciela pliku i grupy do której plik należy. Standardowo sysctl'e są wyłączone. http://docs.freebsd.org/cgi/mid.cgi?200403082037.i28KbQ2M041691 64-bitowy format przechowywania czasu na platformie sparc64 ------------------------------------------------------------------ Garance A. Drosehn (gad) zmienił format przechowywania czasu na platformie sparc 64 z 32-bitowego time_t na 64-bitowy. 64-bitowy time_t eliminuje `problem roku 2038`_ kiedy to w 32-bitowym time_t zabraknie miejsca na zapisanie daty. W 64-bitowym liczniku jest wystarczająco dużo miejsca na zapisanie 292 miliardów lat. Zmiana ta dotyka sporej ilości aplikacji, więc w przypadku pojawienia się jakiś problemów pojawią się dodatkowe łatki. Taka, przejściowa, niestabilność dotyczy tylko platformy sparc64. .. _`problem roku 2038`: http://maul.deepsky.com/~merovech/2038.html http://docs.freebsd.org/cgi/mid.cgi?200403101739.i2AHd6r0020216 Wsparcie dla VLANow w netgraph przeniesione do -STABLE ------------------------------------------------------ Ruslan Ermilov (ru) wprowadził do FreeBSD 4.x wsparcie dla znaczników VLAN (IEEE 802.1q) w kodzie Netgraph. Nowy moduł Netgraph pojawił się w gałęzi -CURRENT w ostatnim tygodniu. Zobacz `podsumowanie z ostatniego tygodnia`_ żeby dowiedzieć się więcej na ten temat. .. _`podsumowanie z ostatniego tygodnia`: http://mocart.pinco.pl/FreeBSD/07-03-04.html#netgraph-obs-uguje-oznaczenia-vlan-dla-ieee-802-1q http://docs.freebsd.org/cgi/mid.cgi?200403101535.i2AFZLqO086909 =================== Znaczniejsze zmiany =================== nologin przeniesiony z /sbin do /usr/sbin ----------------------------------------- Colin Percival zmienił lokalizację programu nologin. Nologin jest zwykle ustawiany jako shell dla użytkowników, którzy nie powinni mieć możliwości zalogowania się do systemu. Program został przeniesiony z /sbin do /usr/sbin. Aby zachować kompatybilność stworzone zostało dowiązanie symboliczne /sbin/nologin do /usr/sbin/nologin. http://docs.freebsd.org/cgi/mid.cgi?200403131102.i2DB2b3l094295 Stare sterowniki: asc, ctx, gp, gsc, le, rdp, spigot, stl, stli, i wt zostały usunięte -------------------------------------------------------------------------------------- M. Warner Losh (imp) usunął ze źródeł systemu następujące sterowniki: - asc, dla ręcznych skanerów opartych o GI1904 - ctx, również dla skanera - gp, dla płyt AT-GPIB firmy National Instruments - gsc, dla ręcznego skanera Genius GS-4500 - le, dla kart ethernetowych EtherWORKS II/III DEC'a - rdp, dla karty sieciowej Realtek RTL-8002 chodzącej na porcie równoległym - spigot, dla użądzenia video spigot - stl i stli, dla szeregowych kontrolerów Stallion - wt, dla napędów taśmowych QIC-02/QIC-36 firmy Wangtek Sterowniki te używają starych i sztucznie, ze względu na kompatybilność, utrzymywanych interfejsów programowania (API), które są powoli usuwane. Użądzenia te będą ponownie wspierane, jeżeli tylko ktoś zaktualizuje ich sterowniki. asc: http://docs.freebsd.org/cgi/mid.cgi?200403140457.i2E4vSJo066061 ctx: http://docs.freebsd.org/cgi/mid.cgi?200403140527.i2E5RUhp073476 gsc: http://docs.freebsd.org/cgi/mid.cgi?200403142242.i2EMgsWP048258 gp: http://docs.freebsd.org/cgi/mid.cgi?200403140531.i2E5Vfsi074787 le: http://docs.freebsd.org/cgi/mid.cgi?200403142225.i2EMPJIA043790 rdp: http://docs.freebsd.org/cgi/mid.cgi?200403142235.i2EMZTqo046065 spigot: http://docs.freebsd.org/cgi/mid.cgi?200403142231.i2EMVnvS045428 stl/stli: http://docs.freebsd.org/cgi/mid.cgi?200403140648.i2E6maVS008566 wt: http://docs.freebsd.org/cgi/mid.cgi?200403140446.i2E4kqSE057900 =============== Tematy dyskusji =============== Kupczenie wydajnością w zamian za wsparcie ------------------------------------------ John Birrell (jb) zmodyfikował kod stdio (standardowe wejście/wyjście) tak aby programy mogły tworzyć własną strukturę PLIKU, zamiast korzystać z systemowej. Tim Robbins (tjr) zakwestionował tę funkcjonalność zauważając że dodatkowy kod spowoduje opóźnienia w ważnym kodzie stdio tylko po to aby umożliwić wsparcie dla niewłaściwie zachowującego się oprogramowania. Alexander Kabaev (kan) zgodził się z Tim'em zaznaczając że wolał by nawet wyraźnie zabronić zmian w strukturze PLIKU. Od tego momentu, podwątek dyskusji skupił się na poprawieniu wydajności stdio w ogóle, poprzez rozdzielnie przypadków wątkujących i nie wątkujących. W końcu John zdecydował się wycofać zmianę, jako że potrzebował tej funkcjonalności tylko dla jednego prywatnego programu. http://docs.freebsd.org/cgi/mid.cgi?200403090245.i292j0a603572 martwa blokada naprawiona w opartych na vnode dyskach w pamięci --------------------------------------------------------------- Poul-Henning Kamp (phk) naprawił martwą blokadę w opartych na vnode dyskach w pamięci md pojawiającą się w powyżej pewnej nieokreślonej jeszcze wielkości. Odnotował iż ta poprawka ma wpływ na wydajność, tak wiec opcja -async może zostać przekazana do mdconfig by oczekiwać starszego, szybszego, mniej bezpiecznego zachowania. Alexey Dokuchaev zapytał czy możliwa jest poprawka nie mająca wpływu na wydajność. Poul-Henning odpowiedział że kod md albo synchronizatora musi być świadom specjalnego przypadku opartych na vnode dysków md. Colin Percival (cperciva) zapytał czy md mógłby mieć bezpośredni dostęp do bloków dysku ktorego chce użyć, zamiast poprzez system plików. Poul-Henning wyjaśnił że taka implementacja była by szybsza i wyeliminowała by naruszanie warstw, ale złożoność takiej konfiguracji przeważyła by nad korzyściami. Bruce Evans (bde) zauważył że starszy sterownik vnode używał takiego rozwiązania ale był ogromnie skomplikowany i nie całkiem działał. W podwątku, Brian Feldman (green) zauważył że opcja async nie jest bezpieczna w nieoczywisty sposób, i zasugerował że powinna być zmieniona na unsafe_async albo podobnie, lub że -o force powinno być wymagane. Poul-Henning niezgodził się stwierdzając że mdconfig jest wystarczająco niebezpieczny aby dodatkowa ochrona w tej postaci coś zmieniała. http://docs.freebsd.org/cgi/mid.cgi?200403102041.i2AKf90l061660 ================== zmiany u komiterów ================== David Malone (dwmalone) wprowadził Peter'a Edwards'a (peadar) jako nowego komitera src. Peter będzie pracował nad odpluskwiaczem i wątkami oraz wprowadzając ogólne zmiany. http://docs.freebsd.org/cgi/mid.cgi?200403082133.i28LXoof060708 ============== Ważne poprawki ============== poprawiony błąd uszkodzenia pliku w przypadku wielokrotnego uruchomienia pw --------------------------------------------------------------------------- Ken Smith (kensmith) wprowadził zmian do narzędzia pw, które zarządza plikami passwd i group, aby wprowadzić blokadę pliku który ma być zmieniony. Poprawka ta eliminuje możliwość uszkodzenia powyższych plików gdy pw było by uruchomione więcej niż raz w tym samym czasie. Problem ten był zgłoszony jako `PR 23501`_. .. _`PR 23501`: http://www.freebsd.org/cgi/query-pr.cgi?pr=23501 http://docs.freebsd.org/cgi/mid.cgi?200403082031.i28KVcv8040798 nie interaktywne używanie script w 4.x -------------------------------------- Colin Percival (cperciva) wprowadził z -CURRENT poprawki dla narzędzia script naprawiające błędy uniemożliwiające mu nie interaktywna pracę. Poprawka ta eliminuje problemy które mogły spowodować usunięcie niektórych portów przez portupgrade i nie reinstalowanie ich. Zamkniętych zostało 5 zgłoszeń problemów (PR): 56166_, 57414_, 57415_, 59036_, 60534_. .. _56166: http://www.freebsd.org/cgi/query-pr.cgi?pr=56166 .. _57414: http://www.freebsd.org/cgi/query-pr.cgi?pr=57414 .. _57415: http://www.freebsd.org/cgi/query-pr.cgi?pr=57415 .. _59036: http://www.freebsd.org/cgi/query-pr.cgi?pr=59036 .. _60534: http://www.freebsd.org/cgi/query-pr.cgi?pr=60534 http://docs.freebsd.org/cgi/mid.cgi?200403130921.i2D9L0hH069821 ============= Inne poprawki ============= Lukas Ertl (le) wprowadził łatę do df, która poprawia raporty df dotyczące wolnego miejsca na przepełnionym dysku w momencie gdy używany jest własny rozmiar bloku. Poprawka ta zamyka `PR 62536`_, zgłoszony przez Peter'a van Dijk. .. _`PR 62536`: http://www.freebsd.org/cgi/query-pr.cgi?pr=62536 http://docs.freebsd.org/cgi/mid.cgi?200403091002.i29A2ixD043305 Tim Kientzle (kientzle) zaktualizował libarchive, bibliotekę do czytania i zapisywania strumieniowanych plików archiwum, wieloma poprawkami i ułatwieniami. http://docs.freebsd.org/cgi/mid.cgi?200403091950.i29JogcD092086 Bruce Evans (bde) zaktualizował wiele aplikacji które niewłaściwie używały NULL aby oznaczyć 0 i na odwrót