È stata rilasciata la versione del sistema operativo simile a UNIX OpenBSD 7.2. Il progetto OpenBSD è stato fondato da Theo de Raadt nel 1995 dopo un conflitto con gli sviluppatori di NetBSD, che ha portato alla revoca dell'accesso di Theo al repository CVS di NetBSD. Successivamente, Theo de Raadt ha creato, insieme a un gruppo di collaboratori, un nuovo sistema operativo open-source basato sul codice sorgente di NetBSD, i cui obiettivi principali erano la portabilità (supporto per 13 piattaforme hardware), la standardizzazione, il funzionamento corretto, la sicurezza proattiva e strumenti crittografici integrati. La dimensione dell'immagine ISO di installazione completa del sistema OpenBSD 7.2 è di 556 MB.
Oltre al sistema operativo stesso, il progetto OpenBSD è noto per i suoi componenti che sono stati adottati in altri sistemi e si sono affermati come alcune delle soluzioni più sicure e di alta qualità. Tra questi: LibreSSL (fork di OpenSSL), OpenSSH, il filtro pacchetti PF, i demoni di routing OpenBGPD e OpenOSPFD, il server NTP OpenNTPD, il server di posta OpenSMTPD, il multiplexore di terminali testuali (simile a GNU screen) tmux, il demone identd che implementa il protocollo IDENT, l'alternativa BSDL al pacchetto GNU groff — mandoc, il protocollo per organizzare sistemi ad alta disponibilità CARP (Common Address Redundancy Protocol), un server http leggero, e lo strumento di sincronizzazione file OpenRSYNC.
Miglioramenti principali:
- Migliorato il supporto per i sistemi basati sull'architettura ARM, inclusi il supporto per i chip ARM Apple M2 e Ampere Altra. Aggiunto il supporto per il laptop Lenovo ThinkPad x13s e altri dispositivi basati su SoC Qualcomm Snapdragon 8cx Gen 3 (SC8280XP).
- Aggiunta la possibilità di avviare in ambienti Oracle Cloud il kernel per ram-disk (bsd.rd) e il kernel per sistemi multiprocessore (bsd.mp).
- Incluso il dispositivo kstat, che esporta statistiche sul funzionamento del kernel, visibili tramite l'utilità kstat.
- Per ogni core CPU che supporta MPERF/APERF sono stati implementati sensori di frequenza. In funzionamento a batteria, è stata attivata la scalabilità della frequenza della CPU in base al carico.
- Negli sistemi ARM64 è stato aggiunto il supporto iniziale per la modalità di sospensione. Il limite sul numero di CPU supportate è stato aumentato a 256. Implementata la possibilità di passare dalla console basata su framebuffer (glass console) alla console basata su porta seriale (serial console).
- Rimosso il codice per la rilevazione delle CPU 386sx/386dx, NexGen, Rise e delle vecchie CPU Cyrix rilasciate prima del chip Cyrix M2.
- Migliorato il supporto per sistemi multiprocessore (SMP). Le funzioni di limitazione della larghezza di banda (rate limit), ricerca delle voci ARP e route timer sono state convertite in mp-safe. Implementata la possibilità di eseguire in parallelo operazioni come la ricompilazione di pacchetti IPv4 e il reindirizzamento di pacchetti IP. Durante l'elaborazione dei pacchetti UDP e IP in entrata sono state aggiunte serrature sui socket che utilizzano mutex. Rimosse le serrature dalle chiamate di sistema kbind e pledge. Implementate serrature per socket UNIX che operano a livello di singoli socket.
- L'implementazione del framework drm (Direct Rendering Manager) è stata sincronizzata con il kernel Linux 5.15.69 (rispetto alla versione precedente - 5.15.26). Nel driver inteldrm è stato aggiunto il supporto per i chip Intel basati sulle microarchitetture Alder Lake e Raptor Lake. Implementato il supporto per framebuffer non allineati ai confini della pagina di memoria (utilizzati, ad esempio, nei MacBook Pro 2021 da 14″ e 16″).
- Miglioramenti sono stati apportati all'iperipervisor VMM. In vmd è stato aggiunto il supporto per i gestori nello spazio utente basati su MMIO. In vmm, l'emulazione delle porte I/O è stata spostata nello spazio utente. Uniformate le strutture interne e le interfacce in vmd, vmctl e vmm. Aggiunta la possibilità di monitoraggio di macchine virtuali attraverso SNMP AgentX, utilizzando le variabili VM-MIB (RFC7666).
- La variabile $rcexec negli script di inizializzazione rc.d è stata sostituita dalla funzione rc_exec. Aggiunta una nuova variabile daemon_execdir, che consente di cambiare la directory prima di eseguire la funzione rc_exec. In rc.d e rcctl è stata aggiunta una nuova azione configtest per controllare la sintassi della configurazione.
- È stata inclusa l'utilità ts, che aggiunge timestamp alle righe ricevute tramite standard input, riflettendo il momento in cui ogni riga è arrivata.
- Nell'utilità ps è stata aggiunta l'opzione "-f" per la raggruppamento ad albero dei processi, che riflette la relazione tra i processi genitori e i processi figli.
- Nell'utilità openrsync è stata implementata l'opzione "—contimeout" per impostare un timeout per l'installazione della connessione.
- Nell'utilità pkg_add, la cache è abilitata per impostazione predefinita, ottimizzata la gestione dei pacchetti e fornito un indicatore di progresso durante il trasferimento dei dati.
- In fdisk è stata migliorata la gestione delle tabelle GPT e MBR, aggiunte avvertenze per l'errata posizione delle partizioni MBR e GPT.
- Nell'utilità disklabel è stato aggiunto il supporto per la parola chiave raid nei modelli per la disposizione automatica delle partizioni con RAID. Cessato il supporto per la modifica delle informazioni sulla geometria del disco. Cessato il supporto per gli attributi ‘bs’ (dimensione del blocco di avvio), ‘sb’ (dimensione del superblocco) e d[0-4] (dati del disco).
- Nella directory /usr/share/btrace è stata inserita una raccolta di utili script btrace per il tracciamento dinamico e l'ispezione delle applicazioni.
- Nella libreria audio sndio è stata aggiunta la funzione sio_flush per fermare immediatamente la riproduzione.
- È stata inclusa l'utilità llvm-profdata per la gestione dei dati di profiling.
- Nell'utilità wc è stato accelerato il conteggio delle parole.
- Aggiunto il supporto per nuove apparecchiature, inclusi nuovi driver:
- aplaudio (sistema audio Apple).
- aplmca (controller MCA di Apple).
- aplsart (Apple SART).
- alpdc, apldchidev, apldckbd, apldcms, aplrtk (tastiera e trackpad Apple M2).
- qcgpio, qciic (controller GPIO e GENI I2C per Qualcomm Snapdragon).
- sfgpio, stfclock, stfpinctrl, stftemp (driver per GPIO, timer e sensori delle schede SiFive).
- sxirintc (controller delle interruzioni per i chip Allwinner).
- gpiorestart (driver per il ripristino tramite GPIO).
- In ipmi è stata ampliata la supporto per i sensori di alimentazione.
- In ehci è stato aggiunto il supporto per il controller utilizzato nelle schede Marvell 3720.
- Nel driver igc per adattatori Ethernet gigabit Intel I225 è stata inclusa l'accelerazione hardware per il calcolo dei checksum per IPv4, TCP e UDP. Nel driver ix per adattatori Ethernet Intel 82598/82599/X540/X550 è stata implementata l'accelerazione hardware per la gestione dei segmenti TCP (Large Receive Offloading), attivabile tramite l'opzione tso in ifconfig.
- Nel driver iwx è stato implementato il supporto per i chip Intel AX210/AX211 e ampliato l'elenco dei dispositivi wireless riconosciuti.
- È stata aggiunta la possibilità di avviare da partizioni RAID 1 software (softraid) su sistemi amd64, sparc64 e arm64.
- In snmpd e xlock è stata implementata la separazione dei privilegi.
- Nelle funzioni bind e connect per socket UNIX è stata garantita l'isolamento basato sulla system call unveil.
- È stata aggiunta una nuova system call ypconnect per creare un socket per connettersi con server YP, utilizzando l'indirizzo IP dal file di binding ypbinding. In ypldap è stata aggiunta la modalità 'local bind', in cui il socket RPC è legato all'interfaccia loopback, per escludere connessioni esterne al server.
- I programmi collocati nella directory /sbin hcpleased, mountd, nfsd, pflogd, resolvd, slaacd e unwind sono stati convertiti per utilizzare il linking dinamico per attivare ulteriori misure di sicurezza applicabili ai file eseguibili dinamicamente collegati.
- Nel stack di rete sono state implementate le system call sendmmsg e recvmmsg, che consentono di inviare e leggere più messaggi all'interno di una singola system call, che in precedenza avrebbero richiesto chiamate separate sendmsg e recvmsg.
- Nel filtraggio dei pacchetti pf è stata modificata la gestione dei pacchetti IGMP e ICMP6 MLD (Multicast Listener Discovery), permettendo una corretta gestione dei pacchetti multicast di controllo nella configurazione predefinita. È stata implementata una verifica più rigorosa dei messaggi IGMP/MLD.
- In IPsec è stata migliorata la gestione dei certificati. In iked è stata migliorata la compatibilità con OpenIKED. Nel comando ikectl show stats è stata aggiunta l'uscita delle statistiche sulle connessioni riuscite e fallite a iked.
- In bgpd è stato aggiunto un filtro max-communities per limitare il numero di comunità consentite, implementato RFC 9234 (Prevenzione e rilevamento delle perdite di rotta utilizzando i ruoli nei messaggi UPDATE e OPEN), è stato garantito il pieno supporto a RFC 7911 (Pubblicità di più percorsi in BGP), le hash statiche sono state sostituite con alberi RB per migliorare le prestazioni dei sistemi di grandi dimensioni. È stato aggiunto il processo bgplgd con l'implementazione di un server FastCGI, fornendo un REST API per i comandi bgpctl.
- Nel client rpki è stata consentita l'uso di più di un URI CRL nei certificati, implementato un parametro skiplist per ignorare i domini, è stata aggiunta la possibilità di verificare ASPA (Autonomous System Provider Authorization) e file sig, è stata implementata la decodifica TAL (RFC 8630), è stata aumentata la rigorosità della verifica dei certificati EE, è stata migliorata la compatibilità con le specifiche HTTP.
- In snmpd è stata consentita l'uso di nomi di oggetti in snmpd.conf, oltre all'OID. È stata implementata la possibilità di impostare una lista nera per escludere sottoalberi dall'uscita. Nell'implementazione del protocollo AgentX è stato aggiunto il supporto per l'agente master.
- In httpd sono state proposte nuove definizioni di MIME type.
- L'utilità ftp è stata convertita per utilizzare connessioni gestite in modalità non bloccante tramite ppoll.
- In tmux ('terminal multiplexer') è stata aggiunta la possibilità di utilizzare ACL per gestire la connessione di più utenti tramite un singolo socket.
- Sono stati aggiornati i pacchetti LibreSSL e OpenSSH. Per una panoramica dettagliata dei miglioramenti, puoi consultare le revisioni di LibreSSL 3.6.0 e OpenSSH 9.1.
- Il numero di porte per l'architettura AMD64 è stato di 11451 (era 11301), per aarch64 - 11261 (era 11081), per i386 - 10225 (era 10136). Tra le versioni delle applicazioni nei port:
- Asterisk 16.28.0, 18.14.0 e 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 e 11.2.0
- GHC 9.2.4
- GNOME 42.4
- Go 1.19.1
- JDK 8u342, 11.0.16 e 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 e 5.3.6
- MariaDB 10.9.3
- Mono 6.12.0.182
- Mozilla Firefox 105.0.1 e ESR 102.3.0
- Mozilla Thunderbird 102.3.0
- Mutt 2.2.7 e NeoMutt 20220429
- Node.js 16.17.1
- OCaml 4.12.1
- OpenLDAP 2.6.3
- PHP 7.4.30, 8.0.23 e 8.1.10
- Postfix 3.7.2
- PostgreSQL 14.5
- Python 2.7.18, 3.9.14 e 3.10.7
- Qt 5.15.6 e 6.3.1
- R 4.2.1
- Ruby 2.7.6, 3.0.4 e 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 e 8.6.12
- TeX Live 2021
- Vim 9.0.0192 e Neovim 0.7.2
- Xfce 4.16
- Sono stati aggiornati i componenti di terze parti inclusi in OpenBSD 7.2:
- Il stack grafico Xenocara basato su X.Org 7.7 con xserver 1.21.4 + patch, 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 (+ patch)
- GCC 4.2.1 (+ patch) e 3.3.6 (+ patch)
- Perl 5.32.1 (+ patch)
- NSD 4.6.0
- Unbound 1.16.3
- Ncurses 5.7
- Binutils 2.17 (+ patch)
- Gdb 6.3 (+ patch)
- Awk 12.9.2022
- Expat 2.4.9
Fonte: opennet.ru
