Udgaven af det frie UNIX-lignende operativsystem OpenBSD 7.2 er blevet præsenteret. OpenBSD-projektet blev grundlagt af Theo de Raadt i 1995 efter en konflikt med udviklerne af NetBSD, hvilket resulterede i, at Theo blev afskåret fra adgang til CVS-repositoriet for NetBSD. Efter dette skabte Theo de Raadt sammen med en gruppe ligesindede en ny åben operativsystem baseret på kildekoden fra NetBSD, som havde til formål at fokusere på portabilitet (understøttelse af 13 hardwareplatforme), standardisering, korrekt funktion, proaktiv sikkerhed og integrerede kryptografiske værktøjer. Den samlede ISO-filstørrelse for den basale installation af OpenBSD 7.2 er 556 MB.
Ud over selve operativsystemet er OpenBSD-projektet kendt for sine komponenter, der har fået udbredelse i andre systemer og har vist sig at være nogle af de sikreste og mest kvalitetsløsninger. Blandt dem er: LibreSSL (en fork af OpenSSL), OpenSSH, pakkefiltreringssystemet PF, routingdemonerne OpenBGPD og OpenOSPFD, NTP-serveren OpenNTPD, mailserveren OpenSMTPD, tekstterminalmultiplexer (svarende til GNU screen) tmux, identd-demonen med implementering af IDENT-protokollen, BSDL-alternativet til GNU groff - mandoc, protokollen til etablering af fejltolerante systemer CARP (Common Address Redundancy Protocol), Lette http-server og synkroniseringsværktøjet OpenRSYNC.
Hovedforbedringer:
- Understøttelsen af systemer baseret på ARM-arkitekturen er forbedret, herunder understøttelse af ARM-chips fra Apple M2 og Ampere Altra. Understøttelse af Lenovo ThinkPad x13s laptop og andre enheder baseret på SoC Qualcomm Snapdragon 8cx Gen 3 (SC8280XP) er blevet tilføjet.
- Muligheden for at boote i Oracle Cloud-miljøer med ram-disk kernel (bsd.rd) og kernel til multi-core-systemer (bsd.mp) er blevet tilføjet.
- En kstat-enhed, der eksporterer statistik om kerneydelse, som kan ses ved hjælp af kstat-værktøjet, er blevet inkluderet.
- For hver CPU-kerne med MPERF/APERF-understøttelse er der implementeret sensorer til CPU-frekvens. Når der arbejdes på batteri, er CPU-frekvensjustering afhængig af belastningen blevet aktiveret.
- På ARM64-systemer er der tilføjet indledende understøttelse af dvaletilstand. Grænsen for antallet af understøttede CPU'er er blevet hævet til 256. Muligheden for at skifte fra framebuffer-baseret konsol (glass console) til seriell konsol (serial console) er blevet implementeret.
- Koden til at identificere CPU 386sx/386dx, NexGen, Rise og ældre Cyrix-processorer, der blev udgivet før Cyrix M2-chippen, er blevet fjernet.
- Understøttelsen af multiprocessorsystemer (SMP) er blevet forbedret. Funktionen til begrænsning af båndbredde (rate limit), ARP-opslag og route timer er blevet mp-safe. Der er blevet implementeret mulighed for parallelt at udføre operationer såsom genopbygning af IPv4-pakker og omdirigering af IP-pakker. Der er tilføjet mutex-baserede låse til håndteringen af indkommende UDP- og IP-pakker. Systemopkald som kbind og pledge er blevet befriet fra låse. UNIX-sokler med låse, der fungerer på niveauet for individuelle sokler, er blevet implementeret.
- Implementeringen af drm (Direct Rendering Manager) frameworket er synkroniseret med Linux-kernen 5.15.69 (i den forrige udgave var det 5.15.26). Driveren inteldrm har fået tilføjet understøttelse af Intel-chips baseret på mikroarkitekturene Alder Lake og Raptor Lake. Der er implementeret understøttelse af framebuffer, der ikke er justeret til siden af hukommelsessiderne (som eksempelvis anvendes i MacBook Pro 2021 14" og 16").
- Der er lavet forbedringer i hypervisoren VMM. I vmd er der tilføjet støtte til brugerrumsbehandlere baseret på MMIO. I vmm er emuleringen af input/output-porte flyttet til brugerrummet. De interne strukturer og grænseflader i vmd, vmctl og vmm er blevet ensartede. Der er tilføjet mulighed for overvågning. virtual machines ved hjælp af SNMP AgentX, ved at bruge VM-MIB parametre (RFC7666).
- Variablen $rcexec i init-scriptet rc.d er blevet erstattet med funktionen rc_exec. En ny variabel daemon_execdir er blevet tilføjet, der gør det muligt at ændre kataloget før udførelsen af rc_exec-funktionen. Der er blevet tilføjet en ny handling configtest i rc.d og rcctl for at kontrollere syntaksen i konfigurationen.
- Der er inkluderet et værktøj ts, som tilføjer tid til linjerne modtaget gennem standardinput, der afspejler tidspunktet for modtagelse af hver linje.
- I værktøjet ps er der tilføjet en mulighed "-f" for træstrukturering af processer, der viser forholdet mellem forældre- og børneprocesser.
- I værktøjet openrsync er der implementeret en option "—contimeout" for at bestemme timeout for oprettelse af forbindelse.
- I værktøjet pkg_add er caching som standard aktiveret, arbejdet med pakker er optimeret, og der er sikret visning af en statusindikator for operationen under dataoverførsel.
- I fdisk er arbejdet med GPT- og MBR-tabeller blevet forbedret, og der er tilføjet advarsler ved uhensigtsmæssig placering af MBR- og GPT-partitioner.
- I værktøjet disklabel er der tilføjet understøttelse af nøgleordet raid i skabeloner til automatisk placering af partitioner med RAID. Understøttelsen af redigering af diskgeometrioplysninger er blevet ophørt. Understøttelsen af attributterne ‘bs’ (størrelse på bootblock), ‘sb’ (størrelse på superblock) og d[0-4] (diskdata) er blevet ophørt.
- I katalogen /usr/share/btrace er der indsat et udvalg af nyttige btrace scripts til dynamisk sporing og inspektion af applikationer.
- I lydbiblioteket sndio er der tilføjet en funktion sio_flush til hurtig ophør af afspilning.
- Der er inkluderet værktøjet llvm-profdata til arbejde med profileringdata.
- I værktøjet wc er ordtællingen blevet accelereret.
- Tilføjet support til nyt hardware, herunder nye drivere:
- aplaudio (Apple lydsystem).
- aplmca (MCA-controller fra Apple).
- aplsart (Apple SART).
- alpdc, apldchidev, apldckbd, apldcms, aplrtk (Apple M2 tastatur og trackpad).
- qcgpio, qciic (GPIO- og GENI I2C-controllere til Qualcomm Snapdragon).
- sfgpio, stfclock, stfpinctrl, stftemp (drivere til GPIO, timer og sensorer på SiFive boardet).
- sxirintc (interrupt-controller til Allwinner chips).
- gpiorestart (driver til genstart via GPIO).
- I ipmi er supporten for strøm sensorer blevet udvidet.
- I ehci er der tilføjet support for en controller, der anvendes på Marvell 3720 boardene.
- I igc-driveren for gigabit Ethernet-adaptere Intel I225 er hardware-baseret acceleration af checksum-beregning for IPv4, TCP og UDP blevet inkluderet. I ix-driveren for Ethernet-adaptere Intel 82598/82599/X540/X550 er der implementeret support for hardware-acceleration af TCP-segmentering (Large Receive Offloading), som aktiveres via option tso i ifconfig.
- I iwx-driveren er support for Intel AX210/AX211-chips blevet implementeret, og rækkevidden af de trådløse enheder, der identificeres, er blevet udvidet.
- Tilføjet mulighed for at boote fra software RAID 1 (softraid) partitions på amd64, sparc64 og arm64 systemer.
- I snmpd og xlock er der implementeret privilegeseparation.
- I bind- og connect-funktionerne for UNIX-sockets er der sikret isolation baseret på systemopkaldet unveil.
- Tilføjet et nyt systemopkald ypconnect til oprettelse af en socket til forbindelse med serveren YP, ved brug af IP-adressen fra den blokerede ypbinding-fil. I ypldap er der tilføjet 'local bind'-tilstand, hvor RPC-socketen bindes til loopback-interfacet for at forhindre eksterne forbindelser til serveren.
- Programmerne hcpleased, mountd, nfsd, pflogd, resolvd, slaacd og unwind, placeret i kataloget /sbin, er blevet konverteret til at bruge dynamisk binding for at aktivere ekstra sikkerhedsforanstaltninger, der gælder for dynamisk bundne eksekverbare filer.
- I netværksstakken er der implementeret systemopkald sendmmsg og recvmmsg, som muliggør udsendelse og læsning af flere beskeder i en enkelt systemopkald, hvilket tidligere ville kræve separate opkald sendmsg og recvmsg.
- I paketfilteret pf er behandlingen af IGMP- og ICMP6 MLD (Multicast Listener Discovery) pakker ændret, hvilket har gjort det muligt at håndtere kontrol multicast-pakker i standardkonfigurationen. Der er implementeret en mere streng kontrol af IGMP/MLD-beskeder.
- IPsec har forbedret arbejdet med certifikater. I iked er kompatibiliteten med OpenIKED forbedret. Kommandoen ikectl show stats har fået tilføjet output for statistik om succesfulde og mislykkede forbindelser til iked.
- I bgpd er der tilføjet en max-communities filter for at begrænse antallet af tilladte community, implementeret RFC 9234 (Route Leak Prevention and Detection Using Roles in UPDATE and OPEN Messages), og der er sikret fuld understøttelse af RFC 7911 (Advertisement of Multiple Paths in BGP). Statisk hashing er blevet erstattet med RB-træer for at forbedre ydeevnen i store systemer. Der er tilføjet en bgplgd-proces med implementering af en FastCGI-server, der leverer REST API til bgpctl-kommandoer.
- I rpki-client er det nu tilladt at bruge mere end én CRL URI i certifikater, implementeret parameteren skiplist for at ignorere domæner, tilføjet mulighed for at tjekke ASPA (Autonomous System Provider Authorization) og sig-filer, implementeret dekodning af TAL (RFC 8630), skærpet kontrol af EE-certifikater, og forbedret kompatibilitet med HTTP-specifikationerne.
- I snmpd er det nu tilladt at bruge objektnavne i snmpd.conf, ud over OID. Der er implementeret mulighed for at angive en sortliste til at udelukke undertræer fra output. I implementeringen af AgentX-protokollen er der tilføjet support for master-agent.
- I httpd er der foreslået nye definitioner af MIME-typer.
- FTP-værktøjet er blevet ændret til at bruge forbindelser, der behandles i ikke-blokeringsmode ved hjælp af ppoll.
- I tmux ('terminal multiplexer') er der tilføjet mulighed for at bruge ACL til at organisere forbindelsen af flere brugere gennem en enkelt socket.
- Pakkerne LibreSSL og OpenSSH er blevet opdateret. En detaljeret oversigt over forbedringer kan ses i oversigterne for LibreSSL 3.6.0 og OpenSSH 9.1.
- Antallet af porte for AMD64-arkitekturen er steget til 11451 (fra 11301), for aarch64 til 11261 (fra 11081), og for i386 til 10225 (fra 10136). Blandt appversionerne i portene:
- Asterisk 16.28.0, 18.14.0 og 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 og 11.2.0
- GHC 9.2.4
- GNOME 42.4
- Go 1.19.1
- JDK 8u342, 11.0.16 og 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 og 5.3.6
- MariaDB 10.9.3
- Mono 6.12.0.182
- Mozilla Firefox 105.0.1 og ESR 102.3.0
- Mozilla Thunderbird 102.3.0
- Mutt 2.2.7 og NeoMutt 20220429
- Node.js 16.17.1
- OCaml 4.12.1
- OpenLDAP 2.6.3
- PHP 7.4.30, 8.0.23 og 8.1.10
- Postfix 3.7.2
- PostgreSQL 14.5
- Python 2.7.18, 3.9.14 og 3.10.7
- Qt 5.15.6 og 6.3.1
- R 4.2.1
- Ruby 2.7.6, 3.0.4 og 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 og 8.6.12
- TeX Live 2021
- Vim 9.0.0192 og Neovim 0.7.2
- Xfce 4.16
- Komponenterne fra tredjepartsudviklere inkluderet i OpenBSD 7.2 er blevet opdateret:
- Grafikstacken Xenocara baseret på X.Org 7.7 med xserver 1.21.4 + patches, 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 (+ patches)
- GCC 4.2.1 (+ patches) og 3.3.6 (+ patches)
- Perl 5.32.1 (+ patches)
- NSD 4.6.0
- Unbound 1.16.3
- Ncurses 5.7
- Binutils 2.17 (+ patches)
- Gdb 6.3 (+ patch)
- Awk 12.9.2022
- Expat 2.4.9
Kilde: opennet.ru
