Utgivningen av den fria UNIX-liknande operativsystemet OpenBSD 7.7 har presenterats. Projektet OpenBSD grundades av Theo de Raadt Är 1995 efter en konflikt med utvecklarna av NetBSD, vilket ledde till att Theo förlorade tillgÄngen till CVS-repositoriet för NetBSD. Efter detta skapade Theo de Raadt tillsammans med en grupp likasinnade en ny öppen operativsystem baserat pÄ kÀllkodstrÀdet frÄn NetBSD, med de frÀmsta mÄlen för utvecklingen att vara portabilitet (stöd för 13 hÄrdvaruplattformar), standardisering, korrekt funktion, proaktiv sÀkerhet och integrerade kryptografiska medel. Den fullstÀndiga installations-ISO-filen för den grundlÀggande versionen av OpenBSD 7.7 Àr 746 MB.
Förutom sjĂ€lva operativsystemet Ă€r projektet OpenBSD kĂ€nt för sina komponenter, som har spridit sig till andra system och visat sig vara en av de mest sĂ€kra och kvalitativa lösningarna. Bland dessa finns: LibreSSL (en fork av OpenSSL), OpenSSH, paketfiltren PF, routingdemoner OpenBGPD och OpenOSPFD, NTP-servern OpenNTPD, postservern OpenSMTPD, terminalmultiplexern (motsvarigheten till GNU screen) tmux, identd-demonen med implementation av IDENT-protokollet, BSDL-alternativet till GNU groff â mandoc, protokollet för att skapa redundanta system CARP (Common Address Redundancy Protocol), en lĂ€ttvikts http-server, och filsynkroniseringsverktyget OpenRSYNC.
Huvudsakliga förÀndringar:
- Implementeringen av ramverket drm (Direct Rendering Manager) Ă€r synkroniserad med kĂ€rnan Linux 6.12.21 (i föregĂ„ende version â 6.6.52). I drivrutinen inteldrm har stöd för GPU implementerats, som anvĂ€nds i Intel-processorer baserade pĂ„ mikroarkitekturen Arrow Lake. I drivrutinen amdgpu har stöd lagts till för GPU Ryzen AI 300 (Strix Point, Strix Halo, Krackan Point) och Radeon RX 9070 (Navi 48).
- I porten för ARM64-arkitekturen har stöd för vektorinstruktionsuppsÀttningen SVE (Scalable Vector Extension) implementerats. PÄ system med ARM-chipp frÄn Apple M1 har energiförbrukningslÀgen kunnat stÀllas in. I mekanismen för mappning av fysiska minnessidor (pmap, physical mapping) har operationerna för att rensa buffern av associativ översÀttning (TLB) optimerats, vilket har gjort att körningstiden för kÀrnbygget har ökat med cirka 5 %. PÄ utrustning med stöd för krypteringen QARMA3 har autentisering av pekare (PAC, Pointer Authentication Code) aktiverats för att skydda anvÀndarutrymmet.
- PÄ system x86_64 för gÀstsysten som körs med hjÀlp av QEMU har stöd för mekanismen AMD SEV (Secure Encrypted Virtualization) implementerats, som anvÀnds i virtualiseringssystem för att skydda virtuella maskiner mot ingrepp frÄn hypervisorn eller administratören av vÀrdsystemet. I drivrutinen psp, som anvÀnds för att konfigurera och starta gÀstsysten med aktiverat AMD SEV, har en kommando lagts till för att ladda firmware till chippet.
- PÄ system x86_64 har möjligheten att allokera minnesomrÄden större Àn 4 GB för DMA lagts till.
- Stödet för arkitekturerna RISC-V, Sparc64, HPPA, i386 och Powerpc64 har förbÀttrats.
- Hantera situationer med minnesbrist i systemet (OOM) har förbÀttrats.
- Ptrace-mekanismen har lagts till funktioner som gör det möjligt att stÀlla in brytpunkter i gdb-debuggern för flertrÄdade processer. Kommandon för att lÀsa och skriva det omrÄde dÀr processorns tillstÄnd sparas vid anvÀndning av XSAVE-instruktionen har lagts till.
- I skript pÄ BT-sprÄket (BPFtrace eller Bug Tracing), som anvÀnds i btrace-spÄrningssystemet, har stöd för flerlinjestrukturer lagts till. Btrace-verktyget har fÄtt ytterligare profiler och namngivning av tidsintervall (hz, us, ms, s).
- En sysctl-parameter kern.audio.kbdcontrol har lagts till, vilket gör att multimediaknappar för volymkontroll pÄ tangentbordet kommer att behandlas som vanliga tangenter nÀr den Àr instÀlld pÄ 0.
- Felhanteringen har förbÀttrats och kontrollerna vid övergÄng till vilolÀge och vÀntelÀge har utvidgats.
- Koden för att stoppa processer vid mottagande av signaler har omarbetats, vilket har löst problem med att stoppa flertrÄdade processer, som upptrÀdde i paket sÄsom golang och mpv.
- Stödet för multiprocessorsystem (SMP) har förbÀttrats. Parallell drift av TCP-in- och utgÄngstimerar har sÀkerstÀllts, och systemanropen send() och recv() har övergÄtt till att anvÀnda en gemensam lÄsning. Flera anvÀndartrÄdar kan nu arbeta parallellt med olika sockets, och TCP-utgÄng blockerar inte lÀngre bearbetningen av IP-paket.
Systemanropen open, openat, ptsignal, psignal och prsignal, samt 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 har befriats frÄn global lÄsning. Drivrutinerna psp, wsmouse och wstpad, samt strukturen video_filtops har övergÄtt till mp-sÀkerhet.
- I hypervisorn VMM har möjligheten att anvÀnda acpipci för att fÀsta PCI-banor implementerats.
- Det har blivit möjligt att definiera en alternativ policy med instÀllningar för prestanda (perfpolicy) som anvÀnds nÀr systemet arbetar frÄn batteriet.
- I sysctl-kommandot har alternativet "-f file" lagts till för att ladda alla instÀllningar frÄn en fil pÄ en gÄng. I rc-skript har det nya alternativet tillÀmpats för att ladda sysctl.conf i sin helhet, istÀllet för att lÀsa in rad för rad.
- I pkg_add-kommandot har anropet ldconfig implementerats ifall listan över delade bibliotek har Àndrats till följd av installationen av nya paket.
- Stöd för ny hÄrdvara har lagts till. FörbÀttrad stöd för SoC MediaTek och Qualcomm Snapdragon (inklusive X Elite). FörbÀttrad stöd för enheter som Samsung Galaxy Book4 Edge, ThinkPad T14 Gen 5, Vivobook, ThinkPad X1 Nano Gen 2, ThinkPad X13 och olika Chromebook. En driver för ice har lagts till för Intel E810 Ethernet 1Gb/10Gb/25Gb/50Gb/100Gb och driver ixv för virtuella funktioner för Intel Ethernet 82598EB, 82559 och X540. Arbetet har fortsatt för att överföra nÀtverksoperationer till nÀtverkskortens sida.
- I sysupgrade har en lÀge för offline-uppdateringar implementerats för system med hjÀlp av paket som sparats i den lokala filsystemet.
- I verktyget fw_update har möjligheten att ladda (inte installera) firmware för vanliga anvÀndare utan root-rÀttigheter lagts till. En flagga "-l" har lagts till för att visa listan över drivrutiner och filer.
- För processen sshd-auth har skydd mot exploatering av sÄrbarheter införts, baserat pÄ en slumpmÀssig rekombinering av körbara filer vid varje systemstart (relink). Rekombineringen gör funktionsoffsets mindre förutsÀgbara, vilket gör det svÄrare att skapa exploits som anvÀnder metoder för ÄtervÀndande orienterad programmering.
- Isolation av processen mountd har sÀkerstÀllts med hjÀlp av systemanropet unveil.
- I nÀtverksstacken har stöd för sockets AF_FRAME och protokollfamiljen IFT_ETHER implementerats, vilket gör det möjligt för applikationer att skicka och ta emot Ethernet-ramar. För utgÄende UDP- och TCP-paket har en ny hashingmetod tagits i bruk för att optimera trafikdistributionen till köer och avsevÀrt (~20%) pÄskynda sÀndning av UDP för IPv4/IPv6 och TCP för IPv6. För enheten tun har ioctl TUNSCAP implementerats och interaktionen mellan kÀrnan och anvÀndarutrymmet har optimerats. En separat routingcache per trÄd har implementerats. I drivern vio har multiqueue-lÀget aktiverats.
- I verktyget pfctl för nÀtverksgrÀnssnitt och köer har definiering av bandbredd som överstiger 4Gbit tillÄtits.
- I iked, en implementering av IKEv2-protokollet för IPsec, har alternativet "natt" lagts till för att tvinga anvÀndning av nat-t.
- I relayd, en bakgrundsprocess för omdirigering och balansering av förfrÄgningar, har stöd för klienter implementerats. TLS-certifikat.
- Verktyget för mÀtning av nÀtverksprestanda tcpbench har lagt till stöd för TLS.
- I bgpd har stöd för RFC 8654 (BGP Extended Message), RFC 8538 (BGP Notification Message) implementerats, med alternativet "reject as-set" aktiverat som standard och caching av Adj-RIB-Out sÀkerstÀllts.
- I LibreSSL 4.1.0 har experimentellt stöd för arkitekturen loongarch64 lagts till, nya assemblerimplementationer av algoritmerna SHA-1, SHA-256 och SHA-512 för arkitekturen amd64 har föreslagits (instruktionen SHA-NI har anvÀnts), nya assemblerimplementationer av SHA-256 och SHA-512 för Aarch64 (CE-tillÀgget har anvÀnts), MD5-implementationen har förenklats för amd64, cachering av förteckningen över Äterkallade certifikat (CRLs) har införts, och implementationen av ML-KEM 768 och 1024 har överförts frÄn BoringSSL.
- OpenSSH har uppdaterats. Ăndringslistan kan ses i tillkĂ€nnagivandet av OpenSSH 10 (stöd för DSA digitala signaturer har tagits bort, autentiseringarna har separerats i en egen process sshd-auth, och den hybridnyckelutbytesalgoritmen "mlkem768x25519-sha256" anvĂ€nds som standard).
- Antalet portar för arkitekturen AMD64 har ökat till 12593 (frÄn 12312), för aarch64 till 12446 (frÄn 12148), och för i386 till 10429 (frÄn 10534). Bland versionsapplikationerna i portarna finns:
- Asterisk 16.30.1, 18.26.1, 20.13.0 och 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 och 11.2.0
- GNOME 47
- Go 1.24.1
- JDK 8u442, 11.0.26, 17.0.14 och 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 och ESR 128.9.0
- Mozilla Thunderbird 128.9.0
- Mutt 2.2.14 och NeoMutt 20250113
- Node.js 22.14.0
- OpenLDAP 2.6.9
- PHP 8.2.28, 8.3.19 och 8.4.5
- Postfix 3.10.1
- PostgreSQL 17.4
- Python 2.7.18 och 3.12.9
- Qt 5.15.16 (+ patchar frÄn KDE-projektet) och 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 och 8.6.16
- Vim 9.1.1265 och Neovim 0.10.4
- Xfce 4.20.0
- Komponenterna frÄn tredjepartsutvecklare som ingÄr i OpenBSD 7.7 har uppdaterats:
- Grafikstacken Xenocara baserad pÄ X.Org 7.7 med xserver 21.1.16 + patchar, 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 (+ patchar)
- GCC 4.2.1 (+ patchar) och 3.3.6 (+ patchar)
- Perl 5.40.1 (+ patchar)
- NSD 4.9.1
- Unbound 1.22.0
- Ncurses 6.4
- Binutils 2.17 (+ patchar)
- Gdb 6.3 (+ patchar)
- Awk 20250116
- Expat 2.7.1
- zlib 1.3.1 (+ patchar)
KĂ€lla: opennet.ru
