Wydano wydanie wolnego systemu operacyjnego podobnego do UNIX-a OpenBSD 7.2. Projekt OpenBSD został założony przez Theo de Raadta w 1995 roku po konflikcie z deweloperami NetBSD, w wyniku którego Theo stracił dostęp do repozytorium CVS NetBSD. Po tym Theo de Raad i grupa zwolenników stworzyli nowy otwarty system operacyjny na bazie drzewa źródłowego NetBSD, którego głównymi celami były przenośność (wsparcie dla 13 platform sprzętowych), standaryzacja, prawidłowe działanie, proaktywne bezpieczeństwo i zintegrowane środki kryptograficzne. Rozmiar pełnego obrazu ISO podstawowego systemu OpenBSD 7.2 wynosi 556 MB.
Oprócz samego systemu operacyjnego, projekt OpenBSD znany jest ze swoich komponentów, które zyskały popularność w innych systemach i ugruntowały swoją pozycję jako jedno z najbardziej bezpiecznych i jakościowych rozwiązań. Należą do nich: LibreSSL (fork OpenSSL), OpenSSH, filtr pakietów PF, demony routingu OpenBGPD i OpenOSPFD, serwer NTP OpenNTPD, serwer pocztowy OpenSMTPD, multiplexer terminali tekstowych (analog GNU screen) tmux, demon identd z implementacją protokołu IDENT, BSDL-alternatywa dla pakietu GNU groff — mandoc, protokół do organizacji systemów odpornych na awarie CARP (Common Address Redundancy Protocol), oraz lekki serwer http, narzędzie do synchronizacji plików OpenRSYNC.
Zaimplementowano wywołania systemowe waitid (oczekiwanie na zmianę stanu procesu), pinsyscall (do przekazywania informacji o punkcie wejścia execve w celu ochrony przed exploitami ROP), getthrname i setthrname (uzyskiwanie i ustalanie nazwy wątku).
- Ulepszono wsparcie dla systemów opartych na architekturze ARM, w tym dodano wsparcie dla chipów ARM Apple M2 oraz Ampere Altra. Dodano wsparcie dla laptopa Lenovo ThinkPad x13s i innych urządzeń opartych na SoC Qualcomm Snapdragon 8cx Gen 3 (SC8280XP).
- Dodano możliwość uruchamiania w środowiskach Oracle Cloud jądra dla dysku ram (bsd.rd) oraz jądra dla systemów wieloprocesorowych (bsd.mp).
- Włączono urządzenie kstat, które eksportuje statystyki pracy jądra, które mogą być wyświetlane przez narzędzie kstat.
- Dla każdego rdzenia procesora wspierającego MPERF/APERF wprowadzono czujniki częstotliwości CPU. Przy pracy z zasilaniem bateryjnym włączono skalowanie częstotliwości CPU w zależności od obciążenia.
- Na systemach ARM64 dodano wstępne wsparcie dla trybu uśpienia. Limit liczby obsługiwanych CPU zwiększono do 256. Zrealizowano możliwość przełączania z konsoli opartej na ramce buforowej (glass console) do konsoli opartej na porcie szeregowym (serial console).
- Usunięto kod do identyfikacji CPU 386sx/386dx, NexGen, Rise oraz starych procesorów Cyrix wydanych przed chipem Cyrix M2.
- Udoskonalono wsparcie dla systemów wieloprocesorowych (SMP). Przeniesiono do klasy mp-safe funkcje ograniczania przepustowości (rate limit), wyszukiwania rekordów ARP oraz timera routingu. Umożliwiono równoległe wykonanie takich operacji, jak rekonstrukcja pakietów IPv4 oraz przekierowywanie pakietów IP. W funkcjach obsługi przychodzących pakietów UDP i IP dodano zablokowania gniazd, korzystające z mutexów. Systemowe wywołania kbind i pledge pozbawiono zablokowań. Wprowadzono blokady gniazd UNIX na poziomie poszczególnych gniazd.
- Realizacja frameworka drm (Direct Rendering Manager) została zsynchronizowana z jądrem Linux 5.15.69 (w poprzednim wydaniu — 5.15.26). W sterowniku inteldrm dodano wsparcie dla chipów Intel opartych na mikroarchitekturach Alder Lake i Raptor Lake. Zaimplementowano obsługę buforów ramki, które nie są wyrównane do granicy strony pamięci (np. stosowane w MacBook Pro 2021 14″ i 16″).
- Wprowadzono usprawnienia w hipernadzorze VMM. W vmd dodano wsparcie dla obsługiwaczy w przestrzeni użytkownika opartych na MMIO. W vmm emulacja portów wejścia/wyjścia została przeniesiona do przestrzeni użytkownika. Ujednolicono wewnętrzne struktury i interfejsy w vmd, vmctl i vmm. Dodano możliwość monitorowania maszyn wirtualnych przy pomocy SNMP AgentX, wykorzystując parametry VM-MIB (RFC7666).
- Zmienna $rcexec w skryptach inicjalizacyjnych rc.d została zastąpiona funkcją rc_exec. Dodano nową zmienną daemon_execdir, umożliwiającą zmianę katalogu przed wykonaniem funkcji rc_exec. W rc.d i rcctl dodano nowe działanie configtest do sprawdzania składni konfiguracji.
- Do pakietu dołączono narzędzie ts, które dodaje do wierszy przyjmowanych przez standardowe wejście czas odzwierciedlający moment przybycia każdego wiersza.
- Do narzędzia ps dodano opcję „-f” do grupowania procesów w formie drzewa, odzwierciedlającą zależność między procesami rodzicielskimi a podrzędnymi.
- W narzędziu openrsync zaimplementowano opcję „—contimeout” do określenia limitu czasu na nawiązanie połączenia.
- W narzędziu pkg_add domyślnie włączono buforowanie, zoptymalizowano pracę z pakietami i zapewniono wyświetlanie wskaźnika postępu operacji podczas transferu danych.
- W fdisk poprawiono obsługę tabel GPT i MBR, dodano ostrzeżenia przy niewłaściwym umiejscowieniu partycji MBR i GPT.
- W narzędziu disklabel dodano wsparcie dla słowa kluczowego raid w szablonach do automatycznego umieszczania partycji z RAID. Zaprzestano wsparcia dla edytowania informacji o geometrii dysku. Zaprzestano wsparcia dla atrybutów ‘bs’ (rozmiar bloku startowego), ‘sb’ (rozmiar superbloku) oraz d[0-4] (dane dysku).
- W katalogu /usr/share/btrace umieszczono zbiór przydatnych skryptów btrace do dynamicznego śledzenia i inspekcji aplikacji.
- W bibliotece dźwiękowej sndio dodano funkcję sio_flush do natychmiastowego zatrzymania odtwarzania.
- Do pakietu dołączono narzędzie llvm-profdata do pracy z danymi profilowania.
- W narzędziu wc przyspieszono zliczanie słów.
- Dodano wsparcie dla nowego sprzętu, w tym nowe sterowniki:
- aplaudio (podsystem dźwiękowy Apple).
- aplmca (kontroler MCA Apple).
- aplsart (Apple SART).
- alpdc, apldchidev, apldckbd, apldcms, aplrtk (klawiatura i gładzik Apple M2).
- qcgpio, qciic (kontrolery GPIO i GENI I2C dla Qualcomm Snapdragon).
- sfgpio, stfclock, stfpinctrl, stftemp (sterowniki do GPIO, zegara i czujników płyty SiFive).
- sxirintc (kontroler przerwań dla chipów Allwinner).
- gpiorestart (sterownik do resetowania przez GPIO).
- W ipmi rozszerzono wsparcie dla czujników zasilania.
- W ehci dodano wsparcie dla kontrolera stosowanego w płytach Marvell 3720.
- W sterowniku igc dla gigabitowych adapterów Ethernet Intel I225 włączono sprzętowe przyspieszenie obliczania sum kontrolnych dla IPv4, TCP i UDP. W sterowniku ix dla adapterów Ethernet Intel 82598/82599/X540/X550 zaimplementowano wsparcie dla sprzętowego przyspieszenia przetwarzania segmentów TCP (Large Receive Offloading), które można włączyć za pomocą opcji tso w ifconfig.
- W sterowniku iwx zaimplementowano wsparcie dla chipów Intel AX210/AX211 i rozszerzono zakres wykrywanych urządzeń bezprzewodowych.
- Dodano możliwość rozruchu z partycji programowego RAID 1 (softraid) w systemach amd64, sparc64 i arm64.
- W snmpd i xlock zaimplementowano podział uprawnień.
- W funkcjach bind i connect dla gniazd UNIX zapewniono izolację na bazie wywołania systemowego unveil.
- Dodano nowe wywołanie systemowe ypconnect do tworzenia gniazda do połączenia z serwerem YP, używając adresu IP z zablokowanego pliku ypbinding. W ypldap dodano tryb ‘local bind’, który pozwala na przypisanie gniazda RPC do interfejsu loopback, aby wykluczyć zewnętrzne połączenia z serwerem.
- Programy hcpleased, mountd, nfsd, pflogd, resolvd, slaacd i unwind umieszczone w katalogu /sbin przeszły na użycie dynamicznego wiązania, aby skorzystać z dodatkowych środków ochrony, mających zastosowanie do dynamicznie wiązanych plików wykonywalnych.
- W stosie sieciowym zaimplementowano wywołania systemowe sendmmsg i recvmmsg, które umożliwiają w ramach jednego wywołania systemowego wysłanie i odebranie jednocześnie kilku komunikatów, które wcześniej wymagałyby oddzielnych wywołań sendmsg i recvmsg.
- W filtrze pakietów pf zmieniono sposób przetwarzania pakietów IGMP i ICMP6 MLD (Multicast Listener Discovery), co umożliwiło poprawne działanie z kontrolującymi pakietami multicast w konfiguracji domyślnej. Wprowadzono bardziej rygorystyczną kontrolę komunikatów IGMP/MLD.
- W IPsec poprawiono obsługę certyfikatów. W iked poprawiono zgodność z OpenIKED. Do polecenia ikectl show stats dodano wyświetlanie statystyk dotyczących udanych i nieudanych połączeń z iked.
- W bgpd dodano filtr max-communities do ograniczenia liczby dozwolonych community, wprowadzono RFC 9234 (Zapobieganie i wykrywanie wycieków tras za pomocą ról w komunikatach UPDATE i OPEN), zapewniono pełne wsparcie dla RFC 7911 (Reklama wielu ścieżek w BGP), statyczne hashe zastąpiono drzewami RB w celu zwiększenia wydajności dużych systemów. Dodano proces bgplgd z realizacją serwera FastCGI, oferującego REST API dla poleceń bgpctl.
- W rpki-client zezwolono na użycie więcej niż jednego URI CRL w certyfikatach, wprowadzono parametr skiplist do ignorowania domen, dodano możliwość weryfikacji ASPA (Autonomous System Provider Authorization) i plików sig, wprowadzono dekodowanie TAL (RFC 8630), zaostrzono weryfikację certyfikatów EE, poprawiono zgodność ze specyfikacjami HTTP.
- W snmpd zezwolono na użycie w snmpd.conf nazw obiektów, oprócz OID. Wprowadzono możliwość zdefiniowania czarnej listy do wykluczania poddrzew z wyjścia. W realizacji protokołu AgentX dodano wsparcie dla agenta master.
- W httpd zaproponowano nowe definicje typów MIME.
- Narzędzie ftp przeszło na używanie połączeń obsługiwanych w trybie nieblokującym za pomocą ppoll.
- W tmux („terminal multiplexer”) dodano możliwość używania ACL do organizowania połączeń wielu użytkowników przez jeden socket.
- Zaktualizowano pakiety LibreSSL i OpenSSH. Szczegółowy przegląd ulepszeń można znaleźć w przeglądach LibreSSL 3.6.0 i OpenSSH 9.1.
- Liczba portów dla architektury AMD64 wyniosła 11451 (wcześniej 11301), dla aarch64 — 11261 (wcześniej 11081), dla i386 — 10225 (wcześniej 10136). Wśród wersji aplikacji w portach:
- Asterisk 16.28.0, 18.14.0 i 19.6.0
- Audacity 2.4.2
- CMake 3.24.2
- Chromium 105.0.5195.125
- Emacs 28.2
- FFmpeg 4.4.2
- GCC 8.4.0 i 11.2.0
- GHC 9.2.4
- GNOME 42.4
- Go 1.19.1
- JDK 8u342, 11.0.16 i 17.0.4
- KDE Gear 22.08.1
- KDE Frameworks 5.98.0
- Krita 5.1.1
- LLVM/Clang 13.0.0
- LibreOffice 7.4.1.2
- Lua 5.1.5, 5.2.4 i 5.3.6
- MariaDB 10.9.3
- Mono 6.12.0.182
- Mozilla Firefox 105.0.1 i ESR 102.3.0
- Mozilla Thunderbird 102.3.0
- Mutt 2.2.7 i NeoMutt 20220429
- Node.js 16.17.1
- OCaml 4.12.1
- OpenLDAP 2.6.3
- PHP 7.4.30, 8.0.23 i 8.1.10
- Postfix 3.7.2
- PostgreSQL 14.5
- Python 2.7.18, 3.9.14 i 3.10.7
- Qt 5.15.6 i 6.3.1
- R 4.2.1
- Ruby 2.7.6, 3.0.4 i 3.1.2
- Rust 1.63.0
- SQLite 3.39.3
- Shotcut 22.06.23
- Sudo 1.9.11.2
- Suricata 6.0.6
- Tcl/Tk 8.5.19 i 8.6.12
- TeX Live 2021
- Vim 9.0.0192 i Neovim 0.7.2
- Xfce 4.16
- Zaktualizowano komponenty od firm trzecich zawarte w OpenBSD 7.2:
- Grafika Xenocara oparta na X.Org 7.7 z xserver 1.21.4 + łatki, freetype 2.12.1, fontconfig 2.13.94, Mesa 22.1.7, xterm 372, xkeyboard-config 2.20, fonttosfnt 1.2.2.
- LLVM/Clang 13.0.0 (+ poprawki)
- GCC 4.2.1 (+ poprawki) i 3.3.6 (+ poprawki)
- Perl 5.32.1 (+ łatki)
- NSD 4.6.0
- Unbound 1.16.3
- Ncurses 5.7
- Binutils 2.17 (+ poprawki)
- Gdb 6.3 (+ poprawka)
- Awk 12.9.2022
- Expat 2.4.9
Źródło: opennet.ru
