A fost lansată versiunea sistemului de operare UNIX-like OpenBSD 7.7. 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 repository-ul CVS NetBSD. După aceea, Theo de Raadt, împreună cu un grup de susținători, a creat un nou sistem de operare deschis bazat pe arborele de cod sursă NetBSD, având ca principale obiective portabilitatea (sprijină 13 platforme hardware), standardizarea, funcționarea corectă, securitatea proactivă și instrumentele criptografice integrate. Dimensiunea imaginii ISO complete de instalare a sistemului OpenBSD 7.7 este de 746 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.
Modificări principale:
- Implementarea framework-ului drm (Direct Rendering Manager) este sincronizată cu kernelul Linux 6.12.21 (în versiunea anterioară — 6.6.52). În driverul inteldrm a fost implementat suportul pentru GPU utilizat în procesoarele Intel bazate pe microarhitectura Arrow Lake. În driverul amdgpu a fost adăugat suportul pentru GPU Ryzen AI 300 (Strix Point, Strix Halo, Krackan Point) și Radeon RX 9070 (Navi 48).
- În portul pentru arhitectura ARM64 a fost implementat suportul pentru setul de instrucțiuni vectoriale SVE (Scalable Vector Extension). Pe sistemele cu cipuri ARM Apple M1, s-a asigurat stabilirea stărilor de consum energetic. În mecanismul de mapare a paginilor fizice de memorie (pmap, physical mapping) au fost optimizate operațiile de resetare a bufferului de traducere asociativă (TLB), ceea ce a accelerat execuția testului de compilare a kernelului cu aproximativ 5%. Pe hardware-ul care suportă criptarea QARMA3 pentru protecția spațiului utilizatorului, a fost activată autentificarea pointerului (PAC, Pointer Authentication Code).
- Pe sistemele x86_64 pentru sistemele gazdă, care rulează cu ajutorul QEMU, a fost implementat suportul pentru mecanismul AMD SEV (Secure Encrypted Virtualization), utilizat în sistemele de virtualizare pentru protecție mașini virtuale împotriva intervenției din partea hypervisor-ului sau a administratorului sistemului gazdă. În driverul psp, folosit pentru configurarea și lansarea sistemelor gazdă cu suport AMD SEV, a fost adăugată o comandă pentru a încărca firmware-ul în cip.
- Pe sistemele x86_64 a fost adăugată opțiunea de alocare pentru DMA a regiunilor de memorie cu dimensiuni mai mari de 4 GB.
- A fost îmbunătățit suportul pentru arhitecturile RISC-V, Sparc64, HPPA, i386 și Powerpc64.
- A fost îmbunătățită gestionarea situațiilor de lipsă de memorie în sistem (OOM).
- Mechanism ptrace a fost extins cu funcționalități care permit setarea de puncte de oprire în procesele multi-thread în debugger-ul gdb. Au fost adăugate comenzi pentru citirea și scrierea zonei în care procesul monitorizat își salvează starea procesorului folosind instrucțiunea XSAVE.
- În scenariile scrise în BT (BPFtrace sau Bug Tracing) folosite în sistemul de urmărire btrace, a fost adăugată suport pentru construcții pe mai multe linii. Utilitarul btrace a fost extins cu profiluri suplimentare și denumiri pentru intervalele de timp (hz, us, ms, s).
- A fost adăugat parametrul sysctl kern.audio.kbdcontrol, care, dacă este setat la 0, va face ca tastele multimedia de control al volumului de pe tastatură să fie tratate ca taste obișnuite.
- Îmbunătățită gestionarea erorilor și extinse verificările la trecerea în modurile sleep și wait.
- Codul pentru oprirea proceselor la primirea unui semnal a fost refăcut, ceea ce a rezolvat problemele cu oprirea proceselor multi-thread, apărute în pachete precum golang și mpv.
- Suportul pentru sisteme multi-procesor (SMP) a fost îmbunătățit. Acum, timerele de intrare și ieșire TCP funcționează în paralel, iar apelurile sistemului send() și recv() au fost mutate pentru a utiliza un blocaj comun. Mai multe fire de utilizator pot acum funcționa în paralel cu socket-uri diferite, iar ieșirea TCP nu mai blochează procesarea pachetelor IP.
Apelurile sistemului open, openat, ptsignal, psignal și prsignal, precum și 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 au fost eliminate din blocajul global. Driverii psp, wsmouse și wstpad, precum și structura video_filtops, au fost trecuți în categoria mp-safe.
- În hypervizorul VMM a fost implementată posibilitatea utilizării acpipci pentru conectarea magistralelor PCI.
- A fost oferită posibilitatea de a defini o politică alternativă cu setări de performanță (perfpolicy) utilizată atunci când sistemul funcționează de la baterie.
- Comenzii sysctl i-a fost adăugată opțiunea „-f file” pentru a încărca toate setările dintr-un fișier. În scripturile rc, noua opțiune a fost aplicată pentru a încărca sysctl.conf în întregime, în loc de analiză linie cu linie.
- Comanda pkg_add a implementat apelul ldconfig, dacă lista bibliotecilor partajate a fost modificată în urma instalării unor pachete noi.
- S-a adăugat suport pentru noul hardware. Suportul pentru SoC MediaTek și Qualcomm Snapdragon (inclusiv X Elite) a fost îmbunătățit. Suportul pentru dispozitivele Samsung Galaxy Book4 Edge, ThinkPad T14 Gen 5, Vivobook, ThinkPad X1 Nano Gen 2, ThinkPad X13 și diverse Chromebook a fost de asemenea îmbunătățit. A fost adăugat driverul ice pentru Intel E810 Ethernet 1Gb/10Gb/25Gb/50Gb/100Gb și driverul ixv pentru funcțiile virtuale Intel Ethernet 82598EB, 82559 și X540. Continuăm să lucrăm la externalizarea executării operațiunilor de rețea pe plăcile de rețea.
- În sysupgrade a fost implementat un mod pentru actualizarea offline a sistemelor folosind pachete salvate în sistemul de fișiere local.
- În utilitarul fw_update a fost adăugată capacitatea de a descărca (fără a instala) firmware-uri ca utilizator obișnuit fără drepturi root. A fost adăugat un flag „-l” pentru afișarea listei de drivere și fișiere.
- Pentru procesul sshd-auth a fost inclusă o protecție împotriva exploatării vulnerabilităților, bazată pe recompunerea aleatorie a fișierului executabil la fiecare pornire a sistemului (relink). Recompunerea face ca deslocările funcțiilor să fie mai puțin predictibile, ceea ce îngreunează crearea de exploatări care folosesc metode de programare orientate pe returnare.
- A fost asigurată izolarea procesului mountd folosind apelul de sistem unveil.
- În stiva de rețea a fost implementat suport pentru socket-uri AF_FRAME și familia de protocoale IFT_ETHER, permițând aplicațiilor să trimită și să primească cadre Ethernet. Pentru pachetele de ieșire UDP și TCP a fost implementată o nouă metodă de hash, care a optimizat distribuția traficului pe cozi și a accelerat semnificativ (~20%) trimiterea UDP pentru IPv4/IPv6 și TCP pentru IPv6. Pentru dispozitivul tun a fost implementat ioctl TUNSCAP și a fost optimizată interacțiunea între nucleu și spațiul utilizatorului. A fost implementat un cache de rutare separat pentru fiecare fir. În driverul vio a fost inclus un mod multiqueue.
- În utilitarul pfctl pentru interfețele de rețea și cozi a fost permisă definirea lățimii de bandă care depășește 4 Gbit.
- În iked, implementarea protocolului IKEv2 pentru IPsec, a fost adăugată opțiunea „natt” pentru a forța utilizarea nat-t.
- În relayd, procesul de fundal pentru redirecționarea și balansarea cererilor, a fost implementat suportul pentru clienți. certificatelor TLS.
- Instrumentul de măsurare a performanței rețelei tcpbench a primit suport pentru TLS.
- În bgpd a fost implementat suport pentru RFC 8654 (BGP Extended Message), RFC 8538 (BGP Notification Message), opțiunea „reject as-set” fiind activată implicit, asigurând caching-ul Adj-RIB-Out.
- In LibreSSL 4.1.0, experimental support for the loongarch64 architecture has been added, new assembler implementations of the SHA-1, SHA-256, and SHA-512 algorithms for the amd64 architecture have been proposed (using the SHA-NI instruction), new assembler implementations of SHA-256 and SHA-512 for Aarch64 (using the CE extension), the MD5 implementation for amd64 has been simplified, caching of the certificate revocation list (CRLs) has been ensured, and the ML-KEM 768 and 1024 implementations from BoringSSL have been transferred.
- OpenSSH has been updated. The change log can be viewed in the OpenSSH 10 announcement (DSA digital signature support has been removed, authentication operations have been separated into a separate process sshd-auth, the hybrid key exchange algorithm “mlkem768x25519-sha256” is enabled by default).
- The number of ports for the AMD64 architecture has reached 12593 (previously 12312), for aarch64 — 12446 (previously 12148), for i386 — 10429 (previously 10534). Among the application versions in the ports:
- Asterisk 16.30.1, 18.26.1, 20.13.0 and 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 și 11.2.0
- GNOME 47
- Go 1.24.1
- JDK 8u442, 11.0.26, 17.0.14 and 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 and ESR 128.9.0
- Mozilla Thunderbird 128.9.0
- Mutt 2.2.14 and NeoMutt 20250113
- Node.js 22.14.0
- OpenLDAP 2.6.9
- PHP 8.2.28, 8.3.19 and 8.4.5
- Postfix 3.10.1
- PostgreSQL 17.4
- Python 2.7.18 and 3.12.9
- Qt 5.15.16 (+ patches from the KDE project) and 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 and 8.6.16
- Vim 9.1.1265 and Neovim 0.10.4
- Xfce 4.20.0
- The components from third-party developers included in OpenBSD 7.7 have been updated:
- The Xenocara graphical stack based on X.Org 7.7 with xserver 21.1.16 + patches, 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 (+ patch-uri)
- GCC 4.2.1 (+ patches) and 3.3.6 (+ patches)
- Perl 5.40.1 (+ patches)
- NSD 4.9.1
- Unbound 1.22.0
- Ncurses 6.4
- Binutils 2.17 (+ patch-uri)
- Gdb 6.3 (+ patches)
- Awk 20250116
- Expat 2.7.1
- zlib 1.3.1 (+ patches)
Sursa: opennet.ro
