Wydanie systemu operacyjnego DragonFly BSD 5.8

Do dyspozycji wydanie DragonFlyBSD 5.8, system operacyjny z jądrem hybrydowym, Utworzony w 2003 roku w celu alternatywnego rozwoju gałęzi FreeBSD 4.x. Wśród funkcji DragonFly BSD możemy wyróżnić rozproszony system plików z wersjonowaniem MŁOT, obsługa ładowania „wirtualnych” jąder systemu jako procesów użytkownika, możliwość buforowania danych i metadanych FS na dyskach SSD, kontekstowe warianty dowiązań symbolicznych, możliwość zamrażania procesów z jednoczesnym zapisem ich stanu na dysku, jądro hybrydowe wykorzystujące lekkie wątki (LWKT) .

Głównym ulepszeniadodano w DragonFlyBSD 5.8:

  • Główna kompozycja obejmuje użyteczność dsynth, przeznaczony do lokalnego montażu i konserwacji własnych repozytoriów binarnych DPort. Obsługiwana jest równoległość montażu dowolnej liczby portów z uwzględnieniem drzewa zależności. Przygotowując się do nowej wersji, DPort wprowadził także dużą liczbę zmian mających na celu przyspieszenie budowy kilku zależnych pakietów.
  • libc implementuje skuteczny mechanizm maskowania sygnału, który umożliwia ochronę malloc*() i podobnych funkcji przed problemami wynikającymi z ich przerwania przez sygnał. Do krótkotrwałego blokowania i odblokowywania sygnałów proponowane są funkcje sigblockall() i sigunblockall(), które działają bez wykonywania wywołań systemowych. Dodatkowo libc zaadaptowała funkcję strtok() do użycia w aplikacjach wielowątkowych, dodała stałe TABDLY, TAB0, TAB3 i funkcję __errno_location w celu ulepszenia obsługi portów dport.
  • Komponenty interfejsu DRM (Direct Rendering Manager) są zsynchronizowane z jądrem Linuksa 4.9, a wybrane funkcje przeniesione z jądra 4.12 mają na celu ulepszenie obsługi Waylanda.
    Sterownik drm/i915 dla procesorów graficznych Intel jest zsynchronizowany z jądrem Linuksa 4.8.17 z kodem przeniesionym z jądra 5.4 w celu obsługi nowych układów (Skylake, Coffelake, Amber Lake, Whiskey Lake i Comet Lake). Sterownik drm/radeon dla kart graficznych AMD jest zsynchronizowany z jądrem Linux 4.9.

  • Algorytmy stronicowania pamięci wirtualnej zostały znacząco ulepszone, co pozwoliło wyeliminować lub zminimalizować problemy z responsywnością interfejsu użytkownika w przypadku braku pamięci. Rozwiązano problemy z zawieszaniem się przeglądarki Chrome/Chrom spowodowane niewystarczającą ilością pamięci systemowej.
  • Poprawione skalowanie jądra w systemach z dużą liczbą rdzeni procesorów. Skrócony czas żądania strony pamięci wirtualnej. Zmniejszona rywalizacja SMP przy niskim poziomie pamięci. Zwiększona wydajność wywołania „open(... O_RDWR)”.
  • Generator liczb pseudolosowych w jądrze został przeprojektowany. Sterownik RDRAND jest przystosowany do akumulowania entropii ze wszystkich procesorów. Zmniejszona intensywność
    oraz rozmiar kanału RDRAND, który poprzednio zajmował 2-3% czasu procesora w czasie bezczynności.

  • Dodano nowe wywołania systemowe realpath, getrandom i lwp_getname (umożliwiono implementację pthread_get_name_np).
  • Dodano obsługę mechanizmów ochronnych SMAP (Zapobieganie dostępowi w trybie nadzorcy) i SMEP (Zapobieganie wykonywaniu trybu nadzorcy). SMAP umożliwia blokowanie dostępu do danych przestrzeni użytkownika z uprzywilejowanego kodu działającego na poziomie jądra. SMEP nie pozwala na przejście z trybu jądra do wykonania kodu znajdującego się na poziomie użytkownika, co umożliwia zablokowanie wykorzystania wielu luk w jądrze (kod powłoki nie zostanie wykonany, ponieważ znajduje się w przestrzeni użytkownika);
  • Przerobiono zmienne sysctl do konfiguracji Jaila. Dodano możliwość montowania nullfs i tmpfs z Jail.
  • Dodano tryb awaryjny dla systemu plików HAMMER2, z którego można skorzystać podczas odzyskiwania po awarii. W tym trybie możliwe jest niszczenie migawek podczas lokalnej aktualizacji i-węzła (pozwala na usuwanie plików i katalogów w przypadku braku wolnego miejsca na dysku, gdy nie ma możliwości skorzystania z mechanizmu kopiowania przy zapisie). Znacząco poprawiona wydajność poprzez przeróbkę obsługi wysyłania wątków w HAMMER2. Znacząco usprawniono proces płukania buforów.
  • Poprawiona niezawodność i wydajność TMPFS. Zwiększona efektywność działania w przypadku braku wolnej pamięci w systemie.
  • Stos sieciowy IPv4 obsługuje teraz prefiksy /31 (RFC 3021).
    Tap poprawiono obsługę ioctl SIOCSIFMTU, aby obsługiwać MTU > 1500. Dodano obsługę SIOCSIFINFO_IN6 i SO_RERROR.

  • Sterownik iwm jest zsynchronizowany z FreeBSD z obsługą chipów bezprzewodowych Intel (dodano obsługę iwm-9000 i iwm-9260).
  • Dodano kompatybilne z Linuksem funkcje basename() i dirname() w celu poprawy kompatybilności portów.
  • Przeniesiono fsck_msdosfs, sys/ttydefaults.h, AF_INET / AF_INET6 z FreeBSD do libc/getaddrinfo(), kalendarz(1), rcorder-visualize.sh. Funkcje z math.h zostały przeniesione z OpenBSD.
  • Zaktualizowane wersje komponentów innych firm, w tym Binutils 2.34, Openresolv 3.9.2, DHCPCD 8.1.3. Domyślnym kompilatorem jest gcc-8.

Źródło: opennet.ru

Dodaj komentarz