FreeBSD 5.0-RELEASE Wojciech Koszek FreeBSD od dawna uznawany jest za stabilny i bezpieczny system doskonale nadający się do pełnienia funkcji serwera internetowego czy też wydajnej stacji roboczej. W artykule tym przedstawię zmiany, jakie zaszły w wersji 5.0 systemu, którego oficjalne wydanie miało miejsce 19 stycznia 2003 roku. Jądro We FreeBSD 5.0-RELEASE zwiększyła się liczba obsługiwanych architektur. Obecnie należą do nich: i386, alpha, pc98, sparc64, ia64, a w najbliższym czasie możemy spodziewać się wsparcia dla x86-64, ppc, oraz MIPS'a. Znacznym zmianom podległ kod SMPng, odpowiedzialny za wsparcie dla maszyn wieloprocesorowych. Dzięki trwającym pracom nad sportowaniem kodu zapożyczonego od BSD/OS 5.0, już w niedługim czasie projekt (wraz ze wsparciem dla wielowątkowości) ma okazję stać się doskonałym rozwiązaniem dla maszyn wieloprocesorowych. Warto wspomnieć, iż wprowadzenie obsługi SMPng wymaga wiele pracy, głównie za sprawą zmian w wielu partiach kodu, do tej pory nie przystosowanych do wspierania maszyn obsługujących wiele procesorów. Systemy plików Jedną z większych nowości, a zarazem wzbudzającą wiele ciekawości jest nowy, zaimplementowany system plików, UFS2. Dzięki zwiększeniu adresowania, możliwe jest wykorzystanie przestrzeni dyskowych o wielkości przekraczającej 1TB. Mimo iż nowy system plików udostępnia wiele ciekawych funkcji (możliwość stosowania list kontroli dostępu, rozszerzonych atrybutów, określania czasu stworzenia pliku) to instalator domyślnie utworzy partycje wykorzystując tradycyjny UFS. Wybór UFS2 jest opcjonalny. Możliwe stało się również tworzenie przestrzeni swap większych od 67GB, co wbrew pozorom, ma ogromne znaczenie na maszynach wielu ośrodków naukowych. Za sprawą pojawienia się polecenia mount_udf(8), oraz wsparcia dla formatu zapisu plików, możliwy jest odczyt nośników zapisanych w formacie UDF. Deweloperzy postanowili, że domyślnie włączony zostanie devfs, system plików odpowiedzialny za zarządzanie plikami urządzeń. Od tej pory administrator zwolniony jest z obowiązku ręcznego tworzenia tychże plików. Osoby pragnące dostosować jądro do własnych potrzeb mogą zdecydować, iż chcą korzystać ze standardowego rozwiązania bazującego na tradycyjnym sposobie tworzenia urządzeń. W takim wypadku w pliku konfiguracyjnym jądra należy zaznaczyć opcję: options NODEVFS Bezpieczeństwo Domeną FreeBSD zawsze był wysoki poziom bezpieczeństwa,. W nowej wersji systemu jest ti szczególnie widoczne głównie za sprawą włączenia projektu TrustedBSD. Dzięki pracy deweloperów oraz twórców projektu (na czele którego stoi Robert Watson, osoba dobrze znana w środowisku użytkowników FreeBSD) do dyspozycji administratora oddane zostały dwa z pięciu mechanizmów praktycznie całkowice zgodnych ze standardem POSIX.1e: MAC (Mandatory Access Control), umożliwiające stosowanie różnorakich poziomów zabezpieczeń już na poziomie jądra, oraz ACL (Access Control List), dzięki którym możliwe jest stosowanie bardziej szczegółowych praw dostępu do plików. Przykładowo, dzięki modułowi mac_bsdextended(4) oraz narzędziu ugidfw(8) korzystającemu ze składni podobnej do ipfw(8), możliwe jest tworzenie praw dostępu do tzw tematów (subject) bądź objektów (object) w oparciu o tradycyjny model zabezpieczeń (uid, gid). Czytelników chcących poznać więcej szczegółów dotyczących TrustedBSD odsyłam do strony domowej projektu. Uaktualnieniu uległo oprogramowanie dostarczone z systemem, a wykryte błędy poprawiono. Zmianom podległ mechanizm jail(8). Obecnie możliwe jest uruchomienie środowiska pod osobnym poziomem bezpieczeństwa (securelevel). W najbliższym czasie możemy spodziewać się pojawienia jail-ng, nowej implementacji obecnego mechanizmu, wspierającej nazywanie jail'i jak również osobne konfigurowanie każdego środowiska. Do zmian kosmetycznych mających na celu utrzymanie porządku w systemie należy przeniesienie syscalli związanych z bezpieczeństwem do hierarchii security.*. Userland Jedną z ważniejszych (i nieco dyskusyjnych) zmian w przestrzeni użytkownika jest brak interpretera Perl'a. Skutkiem takiej decyzji jest przepisanie do standardowego /bin/sh bądź C aplikacji do tej pory korzystających z Perl'a. Deweloperzy doszli do wniosku, iż utrzymanie Perl'a w basesystemie nie jest najlepszym pomysłem ze względu na rosnącą objętość jak również ze względu na bezpieczeństwo. Oczywiście wciąż istnieje możliwość zainstalowania Perl'a z bazy pakietów/portów. Oprócz pojawienia się wielu nowych opcji, każdy program skompilowany jest przy pomocy GCC 3.2.1, który od tej pory stał się domyślnym kompilatorem. Warto również wspomnieć o nowym narzędziu portupgrade, które zastąpiło pkg_update(1), oraz przejęło częściową funkcjonalność pkg_version(1). Sterowniki Oczywiście system został wyposażony w większą niż dotychczas ilość sterowników. Posiadaczy napędów DVD-RW ucieszy zapewne fakt, iż dzięki rozszerzeniu funkcjonalności sterownika ATA, mają możliwość zapisu na nośnik. Znaczna część kodu odpowiedzialna za wsparcie dla urządzeń kryptograficznych została przeniesiona z OpenBSD, co dzięki sprzętowej i programowej akceleracji, powinno znacząco skrócić czas wykonywania tego typu operacji. Podsumowanie Ilość zmian wprowadzonych od wersji 4.x powoduje, iż obecną gałąź rozwoju możemy nazwać nowatorską bądź nawet rewolucyjną. Pomimo, iż wiele z przedstawionych opcji należy do eksperymentalnych części systemu które znajdują się w trakcie rozwoju, gorąco zachęcam Czytelników do testowania i zgłaszania ewentualnych usterek. Czytelników zainteresowanych bardziej szczegółowymi informacjami, odsyłam do stron podanych w tabelce. Niemniej jednak wzrok użytkowników poszukujących pewnej i sprawdzonej platformy dla środowisk produkcyjnych kieruję ku FreeBSD 4.7-RELEASE, bądź ku zbliżającemu się FreeBSD 4.8-RELEASE. http://www.freebsd.org/ Strona domowa FreeBSD http://www.freebsd.org/releases/5.0R/announce.html Informacja o pojawieniu się FreeBSD 5.0- RELEASE http://www.freebsd.org/releases/5.0R/relnotes.html Szczegóły dotyczące nowej wersji systemu http://www.freebsd.org/releases/5.0R/hardware.html Informacje dotyczące wspieranego sprzętu http://www.freebsd.org/smp/ Projekt SMP http://www.trustedbsd.org/ Strona domowa projektu TrustedBSD