È stata presentata l'uscita del sistema operativo open source multi-piattaforma UNIX simile a UNIX OpenBSD 7.1. Il progetto OpenBSD è stato fondato da Theo de Raadt nel 1995 dopo un conflitto con gli sviluppatori di NetBSD, che ha portato alla chiusura dell'accesso di Theo al repository CVS di NetBSD. Dopo ciò, Theo de Raadt con un gruppo di collaboratori ha creato un nuovo sistema operativo open source basato sull'albero dei sorgenti di NetBSD, i cui principali obiettivi di sviluppo sono stati la portabilità (supporto per 13 piattaforme hardware), la standardizzazione, l'affidabilità, la sicurezza proattiva e gli strumenti crittografici integrati. La dimensione dell'immagine ISO di installazione completa del sistema base OpenBSD 7.1 è di 580 MB.
Oltre al sistema operativo in sé, 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, filtro di pacchetto PF, demoni di routing OpenBGPD e OpenOSPFD, server NTP OpenNTPD, posta elettronica OpenSMTPD, multiplexer di terminale testuale (analogo a GNU screen) tmux, demone identd con implementazione del protocollo IDENT, alternativa BSDL al pacchetto GNU groff — mandoc, protocollo per l'organizzazione di sistemi resilienti CARP (Common Address Redundancy Protocol), server http leggero, utility di sincronizzazione file OpenRSYNC. server Sono stati implementati sistemi di chiamata waitid (attesa di modifiche nello stato del processo), pinsyscall (per la trasmissione di informazioni riguardo al punto d'ingresso execve per protezione contro exploit ROP), getthrname e setthrname (per ottenere e impostare il nome del thread).
Principali miglioramenti:
- È stata dichiarata pronta la compatibilità con computer Mac dotati di chip ARM Apple M1 (Apple Silicon), come Apple M1 Pro/Max e Apple T2 Macs. Sono stati aggiunti driver per SPI, I2C, controller DMA, tastiera, trackpad, gestione dell'alimentazione e delle prestazioni. È stata garantita la compatibilità con Wi-Fi, GPIO, framebuffer, USB, schermo e unità NVMe.
- È stato migliorato il supporto per l'architettura ARM64. Sono stati aggiunti driver gpiocharger, gpioleds e gpiokeys, che forniscono supporto per la ricarica, l'illuminazione e i pulsanti collegati a GPIO (ad esempio, come nel Pinebook Pro). Sono stati aggiunti nuovi driver: mpfclock (controller clock PolarFire SoC MSS), cdsdhc (controller host Cadence SD/SDIO/eMMC), mpfiic (controller I2C PolarFire SoC MSS) e mpfgpio (GPIO PolarFire SoC MSS).
- È stato migliorato il supporto per l'architettura RISC-V 64, per la quale sono stati inclusi i driver uhid e fido, garantendo il supporto per l'installazione su dischi con GPT.
- Nell'utilità mount_msdos è attivato per impostazione predefinita l'uso dei nomi di file lunghi.
- È stato riprogettato il codice del garbage collector per i socket unix.
- sysctl hw.perfpolicy è impostato per impostazione predefinita su 'auto', il che implica l'attivazione della modalità di prestazioni complete quando è collegato a una fonte di alimentazione e l'uso di un algoritmo adattivo quando si alimenta a batteria.
- Migliorato il supporto per i sistemi multiprocessore (SMP). I filtri degli eventi delle pipe anonime, kqread, audio e socket sono stati trasformati in mp-safe, così come il meccanismo BPF. Le chiamate di sistema poll, select, ppoll e pselect sono state riscritte e ora implementate sopra kqueue. Le chiamate di sistema kevent, getsockname, getpeername, accept e accept4 sono state liberate dai lock. Aggiunto un'interfaccia kernel per le funzioni atomiche load e store, che consentono di utilizzare i tipi int e long negli elementi delle strutture a cui si applica il conteggio dei riferimenti.
- L'implementazione del framework drm (Direct Rendering Manager) è stata sincronizzata con il kernel Linux 5.15.26 (nell'uscita precedente 5.10.65). Nel driver inteldrm è stato aggiunto il supporto per i chip Intel basati sulle microarchitetture Elkhart Lake, Jasper Lake e Rocket Lake. Nel driver amdgpu è stato implementato il supporto per APU/GPU Van Gogh, Rembrandt "Yellow Carp" Ryzen 6000, Navi 22 "Navy Flounder", Navi 23 "Dimgrey Cavefish" e Navi 24 "Beige Goby".
- Nella libreria FreeType è stata inclusa la resa sub-pixel dei caratteri.
- Aggiunta l'utilità realpath per visualizzare il percorso assoluto a un file.
- Nell'utilità rcctl è stato aggiunto il comando "ls rogue" per mostrare i processi in background che sono attivi ma non inclusi in rc.conf.local.
- In BPFtrace è stato implementato il supporto per le variabili per le verifiche. In btrace sono stati aggiunti gli script kprofile.bt per il profiling dello stack del kernel e runqlat.bt per identificare i ritardi nel funzionamento dello scheduler.
- In libc è stato aggiunto il supporto per RFC6840, che definisce il supporto per il flag AD e le impostazioni ‘trust-ad’ per DNSSEC.
- In apm e apmd è stata inclusa la visualizzazione del tempo stimato di ricarica della batteria.
- È stata fornita la possibilità di memorizzare il database delle capability in /etc/login.conf.d per semplificare l'aggiunta di classi di account personalizzate dai pacchetti.
- In malloc è stato implementato un sistema di caching per regioni di memoria di dimensioni tra 128k e 2M.
- Nell'archiviatore pax è stato implementato il supporto per intestazioni estese con dati mtime, atime e ctime.
- Nelle utility gzip e gunzip è stata aggiunta l'opzione «-k» per mantenere il file originale.
- Nell'utilità openrsync sono state aggiunte le opzioni: «—compare-dest» per verificare la presenza di file in directory aggiuntive; «—max-size» e «—min-size» per limitare la dimensione dei file.
- Aggiunto il comando seq per visualizzare sequenze di numeri.
- Dal FreeBSD 13 è stata trasferita l'implementazione software universale delle funzioni trigonometriche (le implementazioni in assembler per x86 sono disabilitate).
- Dal FreeBSD è stata trasferita l'implementazione delle funzioni lrint, lrintf, llrint e llrintf (in precedenza era utilizzata l'implementazione da NetBSD).
- Nell'utilità fdisk sono stati evidenziati numerosi cambiamenti e correzioni relativi alla gestione delle partizioni del disco.
- Aggiunto supporto per nuovo hardware, tra cui il controller Intel PCH GPIO (per le piattaforme Cannon Lake H e Tiger Lake H), NXP PCF85063A/TP RTC, Synopsys Designware UART, Intel 2.5Gb Ethernet, SIMCom SIM7600, RTL8156B, MediaTek MT7601U USB wifi, BCM4387 wifi.
- Sono state incluse firmware ri-licenziate per chip wireless Realtek, consentendo l'uso dei driver rsu, rtwn e urtwn senza il caricamento manuale del firmware.
- Nei driver ixl (Intel Ethernet 700), ix (Intel 82598/82599/X540/X550) e aq (Aquantia AQC1xx) è stata inclusa la supporto per l'elaborazione hardware dei tag VLAN e il calcolo/verifica dei checksum per IPv4, TCP4/6 e UDP4/6.
- Aggiunto un driver audio per chip Intel Jasper Lake. Aggiunto supporto per il controller di gioco XBox One.
- Nel stack wireless IEEE 802.11 è stato implementato il supporto per canali da 40 MHz per la modalità 802.11n e un supporto iniziale per lo standard 802.11ac (VHT). Per i driver è stato aggiunto un gestore opzionale per la scansione in background. Durante la selezione del punto di accesso, ora hanno la priorità i punti con canali a 5 GHz, e solo in seguito vengono selezionati i punti con canali a 2 GHz.
- Riscritta l'implementazione del driver vxlan, che ora funziona indipendentemente dal sottosistema bridge.
- Nell'installer è stata rielaborata la logica di chiamata dell'utilità pkg_add per ridurre l'intensità dei movimenti di file durante il processo di aggiornamento. Nel file install.site è documentato il processo di configurazione dell'installazione e dell'aggiornamento. Per tutte le architetture sono stati inclusi firmware la cui distribuzione è consentita in prodotti di terze parti. Per l'installazione di firmware proprietari disponibili sul supporto di installazione è stata utilizzata l'utilità fw_update.
- In xterm, per motivi di sicurezza, il tracciamento del mouse è disabilitato per impostazione predefinita.
- In usbhidctl e usbhidaction è stata garantita l'isolamento dell'accesso al file system tramite la chiamata di sistema unveil.
- Nel dhcpd, per impostazione predefinita, è stato fornito l'attacco anche alle interfacce di rete che si trovano in stato inattivo ('down'), per garantire la ricezione dei pacchetti non appena l'interfaccia di rete viene attivata.
- In OpenSMTPD (smtpd) è stata abilitata di default la verifica TLS per le connessioni in uscita "smtps://" e "smtp+tls://".
- In httpd è stata implementata la verifica della versione del protocollo, è stata aggiunta la possibilità di definire file personalizzati con testi di errore e migliorata l'elaborazione dei dati in formato compresso; in particolare, in httpd.conf è stata aggiunta l'opzione gzip-static per la consegna di file precedentemente compressi impostando il flag gzip nell'intestazione content-encoding.
- In IPsec, nel parametro proto di iked.conf è consentita la specifica di un elenco di protocolli. Nella utility ikectl è stato aggiunto il comando «show certinfo» per mostrare i certificati e le autorità di certificazione fidate. In iked è migliorata l'elaborazione dei messaggi frammentati.
- Nel rpki-client è stata aggiunta il supporto per la verifica delle chiavi aperte BGPsec Router e migliorata la verifica dei certificati X509. È stata aggiunta una cache per i file verificati. Migliorata la compatibilità con RFC 6488.
- Nel bgpd è stato aggiunto il parametro «port», che può essere utilizzato nelle sezioni «listen on» e «neighbor» per legarsi a un numero di porta di rete non standard. È stata effettuata una ristrutturazione del codice per lavorare con RIB (Routing Information Base), prevista in futuro per supportare multipath.
- Nel gestore di finestre console tmux («terminal multiplexer») sono state ampliate le funzionalità per l'output a colori. Sono stati aggiunti i comandi pane-border-format, cursor-colour e cursor-style.
- In LibreSSL è stata portata da OpenSSL la supporto per RFC 3779 (estensioni X.509 per indirizzi IP e sistemi autonomi) e il meccanismo Certificate Transparency (un registro pubblico indipendente di tutti i certificati emessi e revocati, che consente di effettuare verifiche indipendenti su tutte le modifiche e le azioni delle autorità di certificazione e consente di tracciare immediatamente qualsiasi tentativo di creazione occulta di registrazioni falsificate). È stata notevolmente migliorata la compatibilità con OpenSSL 1.1 e utilizzati nomi di cifratura identici a quelli di OpenSSL per TLSv1.3. Molte funzioni sono state convertite per utilizzare calloc(). In libssl e libcrypto è stata aggiunta una considerevole serie di nuove chiamate.
- È stato aggiornato il pacchetto OpenSSH. Una panoramica dettagliata delle migliorie può essere consultata nelle recensioni di OpenSSH 8.9 e OpenSSH 9.0. L'utility scp è stata cambiata di default per utilizzare SFTP invece del protocollo obsoleto SCP/RCP.
- Il numero di porte per l'architettura AMD64 è stato di 11301 (era 11325), per aarch64 — 11081 (era 11034), per i386 — 10136 (era 10248). Tra le versioni delle applicazioni nei port: Asterisk 16.25.1, 18.11.1 e 19.3.1 Audacity 2.4.2 CMake 3.20.3 Chromium 100.0.4896.75 Emacs 27.2 FFmpeg 4.4.1 GCC 8.4.0 e 11.2.0 GNOME 41.5 Go 1.17.7 JDK 8u322, 11.0.14 e 17.0.2 KDE Applications 21.12.2 KDE Frameworks 5.91.0 Krita 5.0.2 LLVM/Clang 13.0.0 LibreOffice 7.3.2.2 Lua 5.1.5, 5.2.4 e 5.3.6 MariaDB 10.6.7 Mono 6.12.0.122 Firefox 99.0 e ESR 91.8.0 Thunderbird 91.8.0 Mutt 2.2.2 e NeoMutt 20211029 Node.js 16.14.2 OpenLDAP 2.4.59 PHP 7.4.28, 8.0.17 e 8.1.4 Postfix 3.5.14 PostgreSQL 14.2 Python 2.7.18, 3.8.13, 3.9.12 e 3.10.4 Qt 5.15.2 e 6.0.4 R 4.1.2 Ruby 2.7.5, 3.0.3 e 3.1.1 Rust 1.59.0 SQLite 2.8.17 e 3.38.2 Shotcut 21.10.31 Sudo 1.9.10 Suricata 6.0.4 Tcl/Tk 8.5.19 e 8.6.8 TeX Live 2021 Vim 8.2.4600 e Neovim 0.6.1 Xfce 4.16
- Componenti aggiornati di sviluppatori terzi inclusi in OpenBSD 7.1:
- Il stack grafico Xenocara basato su X.Org 7.7 con xserver 1.21.1 + patch, freetype 2.11.0, fontconfig 2.12.94, Mesa 21.3.7, xterm 369, 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.4.0
- Unbound 1.15.0
- Ncurses 5.7
- Binutils 2.17 (+ patch)
- Gdb 6.3 (+ patch)
- Awk 12.10.2021
- Expat 2.4.7
Fonte: opennet.ru
