Byla představena verze svobodného unixového operačního systému OpenBSD 7.7. Projekt OpenBSD byl založen Théem de Raadtem v roce 1995 po konfliktu s vývojáři NetBSD, v jehož důsledku byl Théovi uzavřen přístup k CVS repozitáři NetBSD. Poté Thé de Raadt se skupinou příznivců vytvořil na základě stromu zdrojových textů NetBSD nový otevřený operační systém, jehož hlavními cíli vývoje byly přenositelnost (podporuje 13 hardwarových platforem), standardizace, korektní fungování, proaktivní bezpečnost a integrované kryptografické prostředky. Velikost plného instalačního ISO obrazu základního systému OpenBSD 7.7 činí 746 MB.
Kromě samotného operačního systému je projekt OpenBSD známý svými komponenty, které se rozšířily do dalších systémů a prokázaly se jako jedny z nejbezpečnějších a nejkvalitnějších řešení. Mezi ně patří: LibreSSL (fork OpenSSL), OpenSSH, paketový filtr PF, směrovací démoni OpenBGPD a OpenOSPFD, NTP server OpenNTPD, poštovní server OpenSMTPD, multiplexor textového terminálu (analog GNU screen) tmux, démon identd s implementací protokolu IDENT, BSDL alternativa k balíku GNU groff — mandoc, protokol pro organizaci odolných systémů CARP (Common Address Redundancy Protocol), lehký http server, nástroj pro synchronizaci souborů OpenRSYNC.
Hlavní změny:
- Implementace frameworku drm (Direct Rendering Manager) je synchronizována s jádrem Linux 6.12.21 (v předchozím vydání — 6.6.52). V ovladači inteldrm byla implementována podpora GPU používaného v procesorech Intel založených na mikroarchitektuře Arrow Lake. V ovladači amdgpu byla přidána podpora GPU Ryzen AI 300 (Strix Point, Strix Halo, Krackan Point) a Radeon RX 9070 (Navi 48).
- V portu pro architekturu ARM64 byla implementována podpora sady vektorových instrukcí SVE (Scalable Vector Extension). Na systémech s ARM čipy Apple M1 bylo zajištěno vystavení stavů energetické spotřeby. V mechanismu mapování fyzických stránek paměti (pmap, physical mapping) byly optimalizovány operace resetování bufferu asociativní translace (TLB), což přibližně zrychlilo provádění testu kompilace jádra o 5%. Na zařízení s podporou šifry QARMA3 pro ochranu prostoru uživatele byla povolena autentizace ukazatelů (PAC, Pointer Authentication Code).
- Na systémech x86_64 pro hostitelské systémy, běžící za použití QEMU, byla implementována podpora mechanismu AMD SEV (Secure Encrypted Virtualization), který se používá v virtualizačních systémech pro ochranu virtuálních strojů před zásahy hypervisoru nebo administrátora hostitelského systému. Do ovladače psp, používaného pro konfiguraci a spuštění hostitelských systémů se zapnutím AMD SEV, byla přidána příkaz pro načtení firmwaru do čipu.
- Na systémech x86_64 byla přidána možnost vyčlenění oblastí paměti větších než 4 GB pro DMA.
- Byla vylepšena podpora architektur RISC-V, Sparc64, HPPA, i386 a Powerpc64.
- Byla vylepšena zpracování situací nedostatku paměti v systému (OOM).
- Do mechanismu sledování ptrace byly přidány funkce, které umožňují nastavovat v debuggerech gdb body zastavení v multithreadových procesech. Byly přidány příkazy pro čtení a zápis do oblasti, kde je ve sledovaném procesu uchováván stav procesoru při použití instrukce XSAVE.
- Do skriptů v jazyce BT (BPFtrace nebo Bug Tracing), používajících se v systému sledování btrace, byla přidána podpora vícerozměrných konstrukcí. Do utilit btrace byly přidány další profily a pojmenování časových intervalů (hz, us, ms, s).
- Byl přidán parametr sysctl kern.audio.kbdcontrol, jehož nastavení na 0 způsobí, že multimediální klávesy pro ovládání hlasitosti na klávesnici budou zpracovávány jako běžné klávesy.
- Byla vylepšena správa chyb a rozšířena kontrola při přepínání do spánkového a čekajícího režimu.
- Byl přepracován kód pro zastavení procesů při příjmu signálu, což vyřešilo problémy se zastavováním multithreadových procesů, které se projevily v takových balíčcích, jako jsou golang a mpv.
- Byla vylepšena podpora vícerozměrných systémů (SMP). Zajištěna paralelní činnost časovačů vstupu a výstupu TCP, zatímco systémové volání send() a recv() byly převedeny na použití sdílené zámky. Několik uživatelských vláken nyní může paralelně pracovat s různými sokety a výstup TCP již nezablokovává zpracování IP paketů.
Byly odstraněny globální zámky ze systémových volání open, openat, ptsignal, psignal a prsignal, stejně jako sysctl kern.timeout_stats, kern.allowkmem, kern.video.record, net.inet.gre.allow, net.inet.gre.wccp, kern.global_ptrace, kern.wxabort, kern.malloc.kmemstat. Ovladače psp, wsmouse a wstpad a také struktura video_filtops byly převedeny do kategorie mp-safe.
- V hypervizoru VMM byla implementována možnost použití acpipci pro připojení PCI sběrnic.
- Byla poskytnuta možnost definování alternativní politiky se nastavením výkonu (perfpolicy), používanou při provozu systému z akumulátoru.
- Do příkazu sysctl byla přidána možnost „-f file“ pro načtení všech nastavení z souboru najednou. V rc skriptech byla nová možnost použita pro načtení sysctl.conf jako celku, místo řádkového rozboru.
- V příkazu pkg_add byla implementována funkce ldconfig, pokud došlo ke změně seznamu sdílených knihoven v důsledku instalace nových balíčků.
- Byla přidána podpora nového hardwaru. Vylepšena podpora SoC MediaTek a Qualcomm Snapdragon (včetně X Elite). Byla vylepšena podpora zařízení Samsung Galaxy Book4 Edge, ThinkPad T14 Gen 5, Vivobook, ThinkPad X1 Nano Gen 2, ThinkPad X13 a různých Chromebooků. Byl přidán ovladač ice pro Intel E810 Ethernet 1Gb/10Gb/25Gb/50Gb/100Gb a ovladač ixv pro virtuální funkce Intel Ethernet 82598EB, 82559 a X540. Pokračuje práce na přesunu provádění síťových operací na stranu síťových karet.
- V sysupgrade byl implementován režim pro offline aktualizaci systémů s použitím balíčků uložených v místním FS.
- Do utilitiy fw_update byla přidána možnost načítání (ne instalace) firmwaru obyčejným uživatelským účtem bez práv root. Byl přidán příznak „-l“ pro výstup seznamu ovladačů a souborů.
- Pro proces sshd-auth byla aktivována ochrana proti zneužití zranitelností založená na náhodném překompilování spustitelného souboru při každém spuštění systému (relink). Překompilování umožňuje učinit posuny funkcí méně předvídatelnými, což ztěžuje vytváření exploitů využívajících metody návratového orientovaného programování.
- Byla zajištěna izolace procesu mountd s využitím systémového volání unveil.
- V síťovém zásobníku byla implementována podpora socketů AF_FRAME a rodiny protokolů IFT_ETHER, což umožňuje aplikacím odesílat a přijímat Ethernetové rámce. Pro výchozí pakety UDP a TCP byl zapojen nový hashovací mechanismus, který optimalizoval rozdělení provozu mezi frontami a výrazně (~20%) urychlil odesílání UDP pro IPv4/IPv6 a TCP pro IPv6. Pro zařízení tun byl implementován ioctl TUNSCAP a optimalizována interakce mezi jádrem a uživatelským prostorem. Byl zaveden samostatný keš pro každou vlákno směrování. V ovladači vio byl zapnut režim multiqueue.
- V utilitě pfctl pro síťové rozhraní a fronty bylo povoleno určení propustnosti přesahující 4Gbit.
- V iked, implementaci protokolu IKEv2 pro IPsec, byla přidána volba „natt“ pro vynucení použití nat-t.
- V relayd, na pozadí procesu pro přesměrování a vyvažování požadavků, byla implementována podpora klientských. TLS certifikátů.
- Nástroj pro měření síťového výkonu tcpbench nyní podporuje TLS.
- V bgpd byla implementována podpora RFC 8654 (BGP Extended Message), RFC 8538 (BGP Notification Message), výchozí volba „reject as-set“ je aktivována, bylo zajištěno kešování Adj-RIB-Out.
- V LibreSSL 4.1.0 byla přidána experimentální podpora architektury loongarch64, byly navrženy nové assemblerové implementace algoritmů SHA-1, SHA-256 a SHA-512 pro architekturu amd64 (využita instrukce SHA-NI), nové assemblerové implementace SHA-256 a SHA-512 pro Aarch64 (využit rozšíření CE), byla zjednodušena implementace MD5 pro amd64, bylo zajištěno kešování seznamu odvolaných certifikátů (CRLs), byla přenesena implementace ML-KEM 768 a 1024 z BoringSSL.
- Byl aktualizován OpenSSH. Seznam změn lze vidět v oznámení OpenSSH 10 (byla odstraněna podpora digitálních podpisů DSA, autentizační operace byly odděleny do samostatného procesu sshd-auth, výchozím algoritmem pro výměnu klíčů je hybridní algoritmus „mlkem768x25519-sha256“).
- Počet portů pro architekturu AMD64 dosáhl 12593 (bylo 12312), pro aarch64 – 12446 (bylo 12148), pro i386 – 10429 (bylo 10534). Mezi verzemi aplikací v portech:
- Asterisk 16.30.1, 18.26.1, 20.13.0 a 22.3.0
- Audacity 3.7.3
- CMake 3.31.6
- Chromium 135.0.7049.52
- Emacs 30.1
- FFmpeg 6.1.2
- GCC 8.4.0 a 11.2.0
- GNOME 47
- Go 1.24.1
- JDK 8u442, 11.0.26, 17.0.14 a 21.0.6
- KDE Gears 24.12.3
- KDE Frameworks 6.12.0
- KDE Plasma 6.3.3
- Krita 5.2.9
- LLVM/Clang 13.0.0, 16.0.6, 18.1.8, 19.1.7
- LibreOffice 25.2.1.2
- Lua 5.1.5, 5.2.4, 5.3.6, 5.4.7
- MariaDB 11.4.5
- Mono 6.12.0.199
- Mozilla Firefox 137.0 a ESR 128.9.0
- Mozilla Thunderbird 128.9.0
- Mutt 2.2.14 a NeoMutt 20250113
- Node.js 22.14.0
- OpenLDAP 2.6.9
- PHP 8.2.28, 8.3.19 a 8.4.5
- Postfix 3.10.1
- PostgreSQL 17.4
- Python 2.7.18 a 3.12.9
- Qt 5.15.16 (+ opravy od projektu KDE) a 6.8.2
- Ruby 3.2.8, 3.3.7, 3.4.2
- Rust 1.86.0
- SQLite 3.49.1
- Shotcut 25.01.25
- Sudo 1.9.16p1
- Suricata 7.0.7
- Tcl/Tk 8.5.19 a 8.6.16
- Vim 9.1.1265 a Neovim 0.10.4
- Xfce 4.20.0
- Byly aktualizovány komponenty třetích stran, které jsou součástí OpenBSD 7.7:
- Grafický stack Xenocara na bázi X.Org 7.7 s xserver 21.1.16 + opravy, freetype 2.13.3, fontconfig 2.15.0, Mesa 23.3.6, xterm 395, xkeyboard-config 2.20, fonttosfnt 1.2.4.
- LLVM/Clang 16.0.6 (+ patche)
- GCC 4.2.1 (+ opravy) a 3.3.6 (+ opravy)
- Perl 5.40.1 (+ opravy)
- NSD 4.9.1
- Unbound 1.22.0
- Ncurses 6.4
- Binutils 2.17 (+ patche)
- Gdb 6.3 (+ patche)
- Awk 20250116
- Expat 2.7.1
- zlib 1.3.1 (+ opravy)
Zdroj: opennet.ru
