Zaprezentowano wydanie darmowego systemu operacyjnego typu UNIX OpenBSD 7.6. Projekt OpenBSD został założony przez Theo de Raadta w 1995 roku po konflikcie z twórcami NetBSD, w wyniku którego Theo odmówiono dostępu do repozytorium CVS NetBSD. Następnie Theo de Raadt wraz z grupą podobnie myślących ludzi stworzył nowy, otwarty system operacyjny oparty na drzewie źródeł NetBSD, którego głównymi celami rozwoju była przenośność (obsługiwanych jest 13 platform sprzętowych), standaryzacja, poprawne działanie, proaktywne bezpieczeństwo i zintegrowane narzędzia kryptograficzne. Pełny obraz instalacyjny ISO systemu podstawowego OpenBSD 7.6 zajmuje 702 MB.
Oprócz samego systemu operacyjnego projekt OpenBSD znany jest ze swoich komponentów, które rozpowszechniły się w innych systemach i okazały się jednymi z najbezpieczniejszych i wysokiej jakości rozwiązań. Wśród nich: LibreSSL (fork OpenSSL), OpenSSH, filtr pakietów PF, demony routingu OpenBGPD i OpenOSPFD, serwer OpenNTPD NTP, serwer poczty OpenSMTPD, multiplekser terminali tekstowych (analogicznie do ekranu GNU) tmux, demon identd z implementacją protokołu IDENT, alternatywa BSDL Pakiet GNU groff - mandoc, protokół organizacji systemów odpornych na uszkodzenia CARP (Common Address Redundancy Protocol), lekki serwer http, narzędzie do synchronizacji plików OpenRSYNC.
Główne ulepszenia:
- Rozszerzono obsługę architektury ARM64. Uwzględniono obsługę rozszerzenia ARM8 EPAN (Enhanced Privileged Access Never), które blokuje uprzywilejowany dostęp do stron pamięci używanych wyłącznie do wykonywania kodu. Dodano obsługę procesora Qualcomm Snapdragon X Elite (X1E80100) i zaimplementowano wykrywanie procesora Cortex-A520AE (Hayes AE) i Cortex-A720AE (Hunter AE). Dla systemów opartych na architekturze ARM64 zaimplementowano ochronę przed podatnościami klasy Spectre-V4, a także poprawiono ochronę przed podatnościami Spectre-BHB.
- Dla systemów opartych na architekturze AMD64 dodano obsługę instrukcji AVX-512. Wdrożono ochronę przed podatnością RFDS w procesorach Intel Atom.
- Dodano obsługę płyty Milk-V Pioneer opartej na architekturze RISC-V.
- Usunięto mechanizm msyscall służący do oznaczania obszarów pamięci, z których można wykonywać wywołania systemowe. msyscall został zastąpiony wywołaniami systemowymi mimmutable i pinsyscalls.
- Wykonano prace mające na celu poprawę obsługi energooszczędnych stanów S0 i przejścia w tryb uśpienia na nowoczesnym sprzęcie. Systemy Amd64 wdrażają tryb „wstrzymania do bezczynności”, którego można używać na sprzęcie, który nie obsługuje trybu uśpienia S3. Rozwiązano wiele problemów ze sterownikami, które zakłócały korzystanie z trybu uśpienia.
- Do wywołania systemowego readdir dodano kontrolę obecności znaku „/” w nazwach plików, aby zablokować możliwe ataki na aplikacje podczas pracy z niezaufanymi systemami plików.
- Ulepszona obsługa systemów wieloprocesorowych (SMP). Dodano możliwości przetwarzania równoległego na różnych rdzeniach procesora przychodzących pakietów UDP i surowych gniazd IPv4/IPv6. Poprawiona praca z blokowaniem dla gniazd unix4 i UDP. Gniazda AF_ROUTE zostały przeniesione do nowego schematu pracy z zamkami. Wywołania systemowe shutdown, sigsuspend i kbind, a także liczniki czasu TCP i wiele sysctl zostały usunięte z globalnego blokowania.
- Wprowadzono ulepszenia hiperwizora VMM. Dodano obsługę mechanizmu AMD SEV (Secure Encrypted Virtualization) w celu ochrony maszyn wirtualnych przed ingerencją ze strony hypervisora lub administratora systemu hosta. Poprawiony dostęp do możliwości procesora z maszyn wirtualnych. Dodano polecenie „status -r” do vmctl, aby pokazać status tylko uruchomionych maszyn wirtualnych.
- Implementacja frameworku drm (Direct Rendering Manager) jest zsynchronizowana z jądrem Linuksa 6.6.52 (6.6.19 w poprzedniej wersji). Sterownik inteldrm zapewnia obsługę procesora graficznego stosowanego w procesorach Intel opartych na mikroarchitekturze Meteor Lake.
- Funkcja scandirat służąca do wyliczania zawartości katalogów została przeniesiona z FreeBSD.
- Stary klient DHCP dhclient został usunięty z systemu podstawowego na rzecz zawsze działającego w tle procesu dhcPleased, który jest dostarczany z OpenBSD 6.9 i wykorzystuje narzędzie ifconfig do umożliwienia automatycznej konfiguracji interfejsów sieciowych poprzez DHCP (włączane po uruchomieniu „ifconfig $ if autoconf” lub dodanie „inet autoconf” w /etc/hostname.$if).
- Zabronione jest używanie znaku null w skryptach powłoki przetwarzanych przez domyślny interpreter poleceń ksh. Obecność znaków null w skryptach będzie teraz prowadzić do zakończenia wykonania z błędem, z wyjątkiem sytuacji, gdy zostaną one umieszczone wśród danych dołączonych na końcu pliku po kodzie.
- Narzędzie tar zostało przeniesione tak, aby podczas tworzenia archiwów korzystało z domyślnego formatu PAX. Korzystanie z formatu PAX umożliwi przechowywanie dłuższych nazw plików, obsługę łączy, korzystanie z dokładnych informacji o czasie i archiwizowanie bardzo dużych plików.
- Stos Xenocara X11, używany w OpenBSD do tworzenia środowiska graficznego, dodał bibliotekę libva, która umożliwia wykorzystanie interfejsu programowego VA-API (Video Acceleration API) do sprzętowego przyspieszania kodowania i dekodowania wideo w różnych formatach. Przyspieszenie sprzętowe zostało przetestowane ze sterownikami dla procesorów graficznych Intel i AMD przy użyciu przeglądarki Firefox i odtwarzacza wideo MPV. Niezbędne sterowniki dla procesorów graficznych Intel oferowane są w portach Graphics/Intel-media-Driver i Graphics/Intel-vaapi-driver, natomiast standardowe komponenty Mesa służą do współpracy z procesorami graficznymi AMD.
- Zapewniono możliwość uruchomienia środowiska graficznego KDE Plasma 6.
- Dodano obsługę nowego sprzętu, dodano nowe sterowniki związane z komponentami różnych układów SoC oraz obsługę kontrolerów Ethernet. Do sterowników igc i dwqe dodano obsługę sprzętowego tagowania VLAN, natomiast sterowniki dwqe, vmx, igc i vio(4) zapewniają, że operacje sieciowe są przeprowadzane po stronie kart sieciowych.
- Kompilator dodał opcję „-fret-clean”, aby wyczyścić adres zwrotny na stosie po zakończeniu wywołania.
- Włączono działanie interfejsów PPP w domenie routingu (rdomain).
- Dla protokołu IPv6 dodano tryb „sysctl net.inet6.ip6.forwarding = 2”, umożliwiający przekazywanie pakietów tylko dla protokołu IPsec.
- Funkcja getsockopt() dodała obsługę flagi SO_ACCEPTCONN, która pozwala sprawdzić, czy na gnieździe wykonano wywołanie funkcji Listen().
- iked, implementacja protokołu IKEv2 dla IPsec, dodaje obsługę uwierzytelniania, autoryzacji i rozliczania za pośrednictwem protokołu RADIUS.
- Serwer RADIUS radiusd obsługuje teraz DAE (rozszerzenia dynamicznej autoryzacji), a także możliwość przechowywania ustawień rozliczeniowych w pliku radiusd.conf. Dodano moduły: radiusd_ipcp do konfiguracji puli. Adresy IP, radiusd_file do uwierzytelniania za pomocą pliku lokalnego. Dodano polecenie „ipcp delete” do radiusctl, umożliwiające usunięcie określonej sesji bez rozłączania.
- OpenSMTPD dodał API smtpd-tables do używania tabel w smtpd i zaimplementował usługę K_AUTH do pobierania poświadczeń z tabel.
- Dodano proces w tle dhcp6leased w celu uzyskania prefiksów IPv6 z serwery DHCPv6.
- Zaktualizowano OpenSSH. Listę zmian można znaleźć w zapowiedziach OpenSSH 9.8 i OpenSSH 9.9.
- Liczba portów dla architektury AMD64 wynosiła 12312 (od 12309), dla aarch64 – 12148 (od 12145), dla i386 – 10534 (od 10830). Wśród wersji aplikacji w portach:
- Gwiazdka 16.30.1, 18.24.3, 20.9.3
- Audacity 3.6.3
- CMake 3.30.1
- Chromium 128.0.6613.137
- Emacs 29.4
- FFmpeg 4.4.5
- GCC 8.4.0 i 11.2.0
- GHC 9.6.6
- GNOME 46
- Idź 1.23.1
- JDK 8u402, 11.0.24, 17.0.12 i 21.0.4
- Aplikacje KDE 24.05.2
- Szkielety KDE 6.5.0
- KDE Plasma 6.1.4
- Krita 5.2.3
- LLVM/Clang 13.0.0, 16.0.6 i 17.0.6
- LibreOffice 24.8.1.2
- Lua 5.1.5, 5.2.4, 5.3.6 i 5.4.7
- MariaDB 10.9.8
- Mono 6.12.0.199
- Mozilla Firefox 130.0.1 i ESR 128.2.0
- Mozilla Thunderbird 128.2.3
- Node.js 20.17.0
- OtwórzLDAP 2.6.8
- PHP 8.1.29, 8.2.23 i 8.3.11
- Postfiks 3.9.0
- PostgreSQL 16.4
- Python 2.7.18, 3.11.10
- Qt 5.15.13 (+ łatki z kde) i 6.6.3
- R 4.4.1
- Ruby 3.1.6, 3.2.5 i 3.3.5
- Rdza 1.81.0
- SQLite 3.44.2
- Shotcut 24.04.28
- Sudo 1.9.15.5
- Meerkat 7.0.6
- Tcl/Tk 8.5.19 i 8.6.13
- TeX na żywo 2023
- Vima 9.1.707 i Neovima 0.10.1
- Xfce 4.18.1
- Zaktualizowane komponenty innych firm zawarte w OpenBSD 7.6:
- Stos graficzny Xenocara oparty na X.Org 7.7 z xserver 21.1.13 + łatki, freetype 2.13.2, Fontconfig 2.14.2, Mesa 23.3.6, xterm 393, xkeyboard-config 2.20, Fonttosfnt 1.2.3.
- LLVM/Clang 16.0.6 (+ poprawki)
- GCC 4.2.1 (+ łatki) i 3.3.6 (+ łatki)
- Perl 5.38.2 (+ poprawki)
- NSD4.9.1
- Bez ograniczeń 1.21.0
- Nkursy 6.4
- Binutils 2.17 (+ poprawki)
- Gdb 6.3 (+ poprawki)
- Awk 28 lipca 2024
- Ekspatriant 2.6.3
- zlib 1.3.1 (+ poprawki)
Źródło: opennet.ru
