A fost lansată versiunea 7.2 a sistemului de operare UNIX similar OpenBSD. Proiectul OpenBSD a fost fondat de Theo de Raadt în 1995, după un conflict cu dezvoltatorii NetBSD, care a dus la restricționarea accesului lui Theo la depozitul CVS NetBSD. După aceasta, Theo de Raadt, împreună cu un grup de susținători, a creat un nou sistem de operare open-source pe baza codului sursă NetBSD, având ca obiective principale portabilitatea (suport pentru 13 platforme hardware), standardizarea, funcționarea corectă, securitatea proactivă și instrumentele criptografice integrate. Dimensiunea imaginii ISO complete a sistemului OpenBSD 7.2 este de 556 MB.
În afară de sistemul de operare propriu-zis, proiectul OpenBSD este cunoscut pentru componentele sale, care au fost adoptate în alte sisteme și s-au dovedit a fi unele dintre cele mai sigure și de calitate soluții. Printre acestea se numără: LibreSSL (fork al OpenSSL), OpenSSH, filtrul de pachete PF, demonii de rutare OpenBGPD și OpenOSPFD, serverul NTP OpenNTPD, serverul de email OpenSMTPD, multiplexorul de terminale textuale (similar cu GNU screen) tmux, demonul identd cu implementarea protocolului IDENT, alternativa BSDL pentru pachetul GNU groff — mandoc, protocolul pentru organizarea sistemelor redundante CARP (Common Address Redundancy Protocol), serverul http ușor și utilitarul de sincronizare a fișierelor OpenRSYNC.
Îmbunătățiri principale:
- Suportul pentru sistemele bazate pe arhitectura ARM a fost îmbunătățit, inclusiv suportul pentru cipurile ARM Apple M2 și Ampere Altra. A fost adăugat suport pentru laptopul Lenovo ThinkPad x13s și alte dispozitive bazate pe SoC Qualcomm Snapdragon 8cx Gen 3 (SC8280XP).
- A fost adăugată posibilitatea de a încărca nucleul pentru ram disk (bsd.rd) și nucleul pentru sisteme multiprocesor (bsd.mp) în mediile Oracle Cloud.
- A fost inclus dispozitivul kstat, care exportă statistici despre funcționarea nucleului, care pot fi vizualizate cu ajutorul utilitarului kstat.
- Pentru fiecare nucleu de procesor care suportă MPERF/APERF au fost implementați senzori de frecvență CPU. Când se operează pe baterie, scalarea frecvenței CPU în funcție de sarcină este activată.
- În sistemele ARM64 a fost adăugată suportul inițial pentru modul de repaus. Limitarea numărului de CPU suportate a fost crescută la 256. A fost implementată posibilitatea de a comuta de la consola bazată pe framebuffer (glass console) la consola bazată pe portul serial (serial console).
- Codul pentru identificarea CPU 386sx/386dx, NexGen, Rise și vechile procesoare Cyrix, lansate înainte de cipul Cyrix M2, a fost eliminat.
- Suportul pentru sistemele multiprocesor (SMP) a fost îmbunătățit. Funcțiile de limitare a lățimii de bandă, căutare a înregistrărilor ARP și temporizator de rutare au fost transformate în mp-safe. A fost implementată posibilitatea de a efectua operații în paralel, cum ar fi reconstrucția pachetelor IPv4 și redirecționarea pachetelor IP. În funcțiile de procesare a pachetelor UDP și IP au fost adăugate blocări de socket care utilizează mutex. Apelurile de sistem kbind și pledge au fost eliminate de la blocări. Blocările UNIX socket-urilor au fost implementate, acționând la nivelul socket-urilor individuale.
- Implementarea framework-ului drm (Direct Rendering Manager) este sincronizată cu nucleul Linux 5.15.69 (în versiunea anterioară - 5.15.26). Suportul pentru cipurile Intel bazate pe microarhitecturile Alder Lake și Raptor Lake a fost adăugat în driverul inteldrm. Suportul pentru framebuffers care nu sunt aliniate la limita paginii de memorie a fost implementat (utilizate, de exemplu, în MacBook Pro 2021 14" și 16").
- S-au adus îmbunătățiri hipervizorului VMM. Suportul pentru handlerii în spațiul utilizatorului bazat pe MMIO a fost adăugat în vmd. În vmm, emularea porturilor de intrare/ieșire a fost mutată în spațiul utilizatorului. Structurile și interfețele interne din vmd, vmctl și vmm au fost unificate. A fost adăugată posibilitatea de monitorizare mașini virtuale prin intermediul SNMP AgentX, utilizând parametrii VM-MIB (RFC7666).
- Variabila $rcexec din scripturile de inițializare rc.d a fost înlocuită cu funcția rc_exec. A fost adăugată o nouă variabilă daemon_execdir, care permite schimbarea directorului înainte de executarea funcției rc_exec. O nouă acțiune configtest a fost adăugată în rc.d și rcctl pentru a verifica sintaxa configurației.
- A fost inclusă utilitarul ts, care adaugă la liniile primite prin stdin timpul reprezentând momentul în care a fost primită fiecare linie.
- În utilitarul ps a fost adăugată opțiunea „-f” pentru gruparea proceselor în arbore, care reflectă relația dintre procesele părinte și cele copil.
- În utilitarul openrsync a fost implementată opțiunea „—contimeout” pentru a defini timeout-ul pentru stabilirea conexiunii.
- În utilitarul pkg_add este inclusă în mod implicit cache-ul, a fost optimizată gestionarea pachetelor și asigurată afișarea unui indicator de progres al operațiunii în timpul transferului de date.
- În fdisk a fost îmbunătățită funcționalitatea cu tabelele GPT și MBR, fiind adăugate avertizări în cazul plasării necorespunzătoare a partițiilor MBR și GPT.
- În utilitarul disklabel a fost adăugată suportul pentru cuvântul cheie raid în șabloanele pentru plasarea automată a partițiilor cu RAID. Suportul pentru editarea informațiilor despre geometria discului a fost oprit. Suportul pentru atributele 'bs' (dimensiunea blocului de boot), 'sb' (dimensiunea superblocului) și d[0-4] (datele discului) a fost de asemenea oprit.
- În directorul /usr/share/btrace a fost plasată o selecție de scripturi utile btrace pentru trasarea dinamică și inspectarea aplicațiilor.
- În biblioteca audio sndio a fost adăugată funcția sio_flush pentru oprirea imediată a redării.
- A fost inclus utilitarul llvm-profdata pentru gestionarea datelor de profilare.
- În utilitarul wc a fost accelerată contorizarea cuvintelor.
- Suportul pentru hardware nou a fost adăugat, incluzând noi drivere:
- aplaudio (subsystema audio Apple).
- aplmca (controler MCA Apple).
- aplsart (Apple SART).
- alpdc, apldchidev, apldckbd, apldcms, aplrtk (tastatură și trackpad Apple M2).
- qcgpio, qciic (controller GPIO și GENI I2C pentru Qualcomm Snapdragon).
- sfgpio, stfclock, stfpinctrl, stftemp (drivere pentru GPIO, temporizator și senzori pentru plăci SiFive).
- sxirintc (controller de întreruperi pentru cipurile Allwinner).
- gpiorestart (driver pentru resetare prin GPIO).
- În ipmi a fost extins suportul pentru senzori de alimentare.
- În ehci a fost adăugat suport pentru controlerul utilizat în plăcile Marvell 3720.
- În driverul igc pentru adaptoare Ethernet gigabit Intel I225 a fost inclusă accelerarea hardware-ului pentru calculul sumelor de verificare pentru IPv4, TCP și UDP. În driverul ix pentru adaptoarele Ethernet Intel 82598/82599/X540/X550 a fost implementată accelerarea hardware-ului pentru procesarea segmentelor TCP (Large Receive Offloading), activată prin opțiunea tso în ifconfig.
- În driverul iwx a fost implementat suportul pentru cipurile Intel AX210/AX211 și a fost extins spectrul de dispozitive wireless recunoscute.
- A fost adăugată posibilitatea de bootare din partițiile RAID software 1 (softraid) pe sistemele amd64, sparc64 și arm64.
- În snmpd și xlock a fost implementată separarea privilegiilor.
- În funcțiile bind și connect pentru socket-urile UNIX a fost asigurată izolarea pe baza apelului de sistem unveil.
- A fost adăugat un nou apel de sistem ypconnect pentru a crea un socket pentru conectarea la serverul YP, folosind adresa IP din fișierul restricționat ypbinding. În ypldap a fost adăugat modul 'local bind', care leagă socket-ul RPC de interfața de loopback, pentru a exclude conexiunile externe cu serverul.
- Programele hcpleased, mountd, nfsd, pflogd, resolvd, slaacd și unwind, situate în directorul /sbin, au fost migrate la utilizarea legării dinamice pentru a activa măsuri suplimentare de securitate aplicabile fișierelor executabile legate dinamic.
- În stiva de rețea au fost implementate apeluri de sistem sendmmsg și recvmmsg, care permit trimiterea și citirea mai multor mesaje într-un singur apel de sistem, mesaje care anterior ar fi necesitat apeluri separate sendmsg și recvmsg.
- În filtrul de pachete pf a fost modificată manipularea pachetelor IGMP și ICMP6 MLD (Multicast Listener Discovery), ceea ce a permis funcționarea cu pachetele multicast de control în configurația implicită. A fost implementată o verificare mai strictă a mesajelor IGMP/MLD.
- În IPsec, a fost îmbunătățită gestionarea certificatelor. În iked, a fost îmbunătățită compatibilitatea cu OpenIKED. Comanda ikectl show stats a primit ieșirea statisticilor despre conexiunile reușite și eșuate la iked.
- În bgpd, a fost adăugat filtrul max-communities pentru a limita numărul de comunități permise, implementat RFC 9234 (Prevenirea și Detectarea Scurgerilor de Rute folosind Roluri în Mesajele UPDATE și OPEN), asigurându-se suport complet pentru RFC 7911 (Publicarea mai multor Rute în BGP), hash-urile statice au fost înlocuite cu arbori RB pentru a îmbunătăți performanța sistemelor mari. A fost adăugat procesul bgplgd cu implementarea unui server FastCGI, care furnizează API REST pentru comenzile bgpctl.
- În rpki-client, s-a permis utilizarea mai multor URI CRL în certificate, a fost implementat parametrul skiplist pentru a ignora domeniile, s-a adăugat suport pentru verificarea ASPA (Autonomous System Provider Authorization) și fișierelor sig, a fost realizat decodarea TAL (RFC 8630), verificarea sertificatelor EE a fost întărită, iar compatibilitatea cu specificațiile HTTP a fost îmbunătățită.
- În snmpd, s-a permis utilizarea numelui obiectelor în snmpd.conf, pe lângă OID. A fost implementată posibilitatea de a stabili o listă neagră pentru a exclude subarborii din ieșire. Implementarea protocolului AgentX a primit suport pentru agentul master.
- În httpd, au fost propuse noi definiții pentru tipurile MIME.
- Utilitarul ftp a fost transformat pentru a folosi conexiuni gestionate în modul non-blocat prin ppoll.
- În tmux („multiplexor de terminale”), a fost adăugată posibilitatea de a folosi ACL pentru a organiza conectarea mai multor utilizatori printr-un singur socket.
- Pachetele LibreSSL și OpenSSH au fost actualizate. O revizuire detaliată a îmbunătățirilor poate fi consultată în recenziile LibreSSL 3.6.0 și OpenSSH 9.1.
- Numărul de porturi pentru arhitectura AMD64 a ajuns la 11451 (a fost 11301), pentru aarch64 — 11261 (a fost 11081), pentru i386 — 10225 (a fost 10136). Printre versiunile aplicațiilor în porturi:
- Asterisk 16.28.0, 18.14.0 și 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 și 11.2.0
- GHC 9.2.4
- GNOME 42.4
- Go 1.19.1
- JDK 8u342, 11.0.16 și 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 și 5.3.6
- MariaDB 10.9.3
- Mono 6.12.0.182
- Mozilla Firefox 105.0.1 și ESR 102.3.0
- Mozilla Thunderbird 102.3.0
- Mutt 2.2.7 și NeoMutt 20220429
- Node.js 16.17.1
- OCaml 4.12.1
- OpenLDAP 2.6.3
- PHP 7.4.30, 8.0.23 și 8.1.10
- Postfix 3.7.2
- PostgreSQL 14.5
- Python 2.7.18, 3.9.14 și 3.10.7
- Qt 5.15.6 și 6.3.1
- R 4.2.1
- Ruby 2.7.6, 3.0.4 și 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 și 8.6.12
- TeX Live 2021
- Vim 9.0.0192 și Neovim 0.7.2
- Xfce 4.16
- Au fost actualizate componentele de la terți incluse în OpenBSD 7.2:
- Stiva grafică Xenocara bazată pe X.Org 7.7 cu xserver 1.21.4 + patch-uri, 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-uri)
- GCC 4.2.1 (+ patch-uri) și 3.3.6 (+ patch-uri)
- Perl 5.32.1 (+ patch-uri)
- NSD 4.6.0
- Unbound 1.16.3
- Ncurses 5.7
- Binutils 2.17 (+ patch-uri)
- Gdb 6.3 (+ patch)
- Awk 12.9.2022
- Expat 2.4.9
Sursa: opennet.ro
