Wydanie systemu operacyjnego DragonFly BSD 5.8

Dostępny wydanie DragonFlyBSD 5.8, system operacyjnego z hybrydowym jądrem, stworzonego w 2003 roku w celu alternatywnego rozwoju gałęzi FreeBSD 4.x. Wśród cech DragonFly BSD można wyróżnić rozproszony system plików wersjonowanych HAMMER, wsparcie dla ładowania "wirtualnych" rdzeni systemu jako procesów użytkownika, możliwość buforowania danych i metadanych systemu plików na nośnikach SSD, uwzględniających kontekst opcjonalne linki symboliczne, możliwość zamrażania procesów z zachowaniem ich stanu na dysku, hybrydowe jądro wykorzystujące lekkie wątki (LWKT).

Podstawowe ulepszenia, dodane w DragonFlyBSD 5.8:

  • W skład główny włączono narzędzie dsynth, które służy do lokalnej kompilacji i wsparcia własnych binarnych repozytoriów DPort. Obsługiwane jest równoległe kompilowanie dowolnej liczby portów, uwzględniając drzewo zależności. Przy przygotowaniu nowej wersji w DPort wprowadzono również wiele zmian mających na celu przyspieszenie kompilacji kilku zależnych pakietów.
  • W libc wprowadzono wydajny mechanizm maskowania sygnałów, który chroni funkcje malloc*() i podobne przed problemami spowodowanymi ich przerwaniem przez sygnał. W celu krótkoterminowego blokowania i odblokowywania sygnałów zaproponowano funkcje sigblockall() i sigunblockall(), które działają bez wykonywania wywołań systemowych. Ponadto w libc funkcja strtok() została dostosowana do zastosowania w aplikacjach wielowątkowych, dodano stałe TABDLY, TAB0, TAB3 oraz funkcję __errno_location w celu poprawy wsparcia dla dports.
  • Komponenty interfejsu DRM (Direct Rendering Manager) zsynchronizowano z jądrem Linux 4.9, portując z jądra 4.12 niektóre funkcje mające na celu poprawę wsparcia dla Wayland.
    Sterownik drm/i915 dla GPU Intel zsynchronizowano z jądrem Linux 4.8.17 z przeniesieniem z jądra 5.4 kodu do wsparcia nowych chipów (Skylake, Coffelake, Amber Lake, Whiskey Lake i Comet Lake). Sterownik drm/radeon dla kart graficznych AMD zsynchronizowano z jądrem Linux 4.9.
  • Zdecydowanie poprawiono algorytmy stronicowania pamięci wirtualnej, co pozwoliło wyeliminować lub zminimalizować problemy z responsywnością w interfejsie użytkownika w przypadku braku pamięci. Rozwiązano problemy z zawieszaniem się Chrome/Chromium przy niedoborze pamięci systemowej.
  • Udoskonalono skalowanie jądra na systemach z dużą liczbą rdzeni procesora. Skrócono czas żądania stron pamięci wirtualnej. Zredukowano konkurencję SMP w warunkach niedoboru pamięci. Zwiększono efektywność wywołania „open(… O_RDWR)”.
  • Przerobiono generator liczb pseudolosowych w jądrze. Sterownik RDRAND dostosowano do gromadzenia entropii ze wszystkich CPU. Zredukowano intensywność
    i rozmiar podawania RDRAND, na co wcześniej przeznaczano 2-3% czasu CPU podczas bezczynności.
  • Dodano nowe wywołania systemowe realpath, getrandom i lwp_getname (umożliwiło zaimplementowanie pthread_get_name_np).
  • Dodano wsparcie dla mechanizmów ochrony SMAP (Supervisor Mode Access Prevention) i SMEP (Supervisor Mode Execution Prevention). SMAP umożliwia blokowanie dostępu do danych w przestrzeni użytkownika z kodu uprzywilejowanego uruchamianego w trybie jądra. SMEP uniemożliwia przejście z trybu jądra do wykonywania kodu znajdującego się na poziomie użytkownika, co pozwala zablokować wykorzystanie wielu podatności w jądrze (shell-code nie zostanie wykonany, ponieważ znajduje się w przestrzeni użytkownika);
  • Przebudowano zmienne sysctl do konfiguracji Jail. Dodano możliwość montowania nullfs i tmpfs z Jail.
  • Dodany tryb awaryjny systemu plików HAMMER2, który można zastosować podczas przywracania po awarii. W tym trybie dozwolone jest niszczenie snapshotów podczas aktualizacji inode na miejscu (pozwala to na usuwanie plików i katalogów przy braku wolnego miejsca na dysku, gdy niemożliwe jest użycie mechanizmu copy-on-write). Zdecydowanie poprawiono wydajność dzięki przebudowie wsparcia dla zarządzania wątkami w HAMMER2. Zdecydowanie poprawiono proces opróżniania buforów (flush).
  • Zwiększono niezawodność i wydajność TMPFS. Zwiększona efektywność pracy w warunkach niedoboru wolnej pamięci w systemie.
  • W stosie sieciowym dla IPv4 wprowadzono obsługę prefiksów /31 (RFC 3021).
    W tap poprawiono obsługę ioctl SIOCSIFMTU dla wsparcia MTU > 1500. Dodano wsparcie SIOCSIFINFO_IN6 i SO_RERROR.
  • Z FreeBSD zsynchronizowano sterownik iwm z obsługą bezprzewodowych chipów Intel (dodano wsparcie dla iwm-9000 i iwm-9260).
  • Dodano funkcje zgodne z Linux basename() i dirname() w celu poprawy kompatybilności w portach.
  • Z FreeBSD przeniesiono fsck_msdosfs, sys/ttydefaults.h, AF_INET/AF_INET6 do libc/getaddrinfo(), calendar(1), rcorder-visualize.sh. Z OpenBSD przeniesiono funkcje z math.h.
  • Zaktualizowane wersje komponentów zewnętrznych, w tym Binutils 2.34, Openresolv 3.9.2, DHCPCD 8.1.3. Domyślnie używany jest kompilator gcc-8.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster