A fost lansată versiunea sistemului de operare OpenBSD 6.9, o soluție liberă și multiplatformă similară UNIX. Se observă că aceasta este a 50-a versiune a proiectului, care împlinește 26 de ani în acest an. Proiectul OpenBSD a fost înființat de Theo de Raadt în 1995, după un conflict cu dezvoltatorii NetBSD, care i-a restricționat accesul la repository-ul CVS NetBSD. Ulterior, Theo de Raadt și un grup de colegi au creat un nou sistem de operare deschis pe baza codului sursă NetBSD, având ca obiective principale portabilitatea (suport pentru 13 platforme hardware), standardizarea, funcționarea corectă, securitatea activă și instrumentele criptografice integrate. Dimensiunea imaginii ISO complete de instalare a sistemului de bază OpenBSD 6.9 este de 544 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:
- Driverul softraid a fost îmbogățit cu modul RAID1C, implementând un RAID1 software cu criptarea datelor.
- Au fost incluse două procese de fundal noi — dhcpleased și resolvd, care colaborează cu slaacd și unwind pentru a configura automat interfețele de rețea și a identifica numele în DNS. Proiectul dhcpleased implementează protocolul DHCP pentru obținerea adreselor IP, iar resolvd gestionează conținutul resolv.conf pe baza informațiilor despre servere de nume primite de la dhcpleased, slaacd și driveri precum umb.
- A fost adăugată suport inițial pentru dispozitivele Apple cu procesor M1. Aceasta include recunoașterea nucleelor arm64 Apple Icestorm/Firestorm și suport pentru chipset-urile wireless BCM4378 utilizate în SoC Apple M1.
- A fost îmbunătățită suportul pentru platforma powerpc64, dezvoltată pentru sisteme de 64 de biți bazate pe procesoare POWER8 și POWER9. Comparativ cu versiunea precedentă, pentru powerpc64 a fost implementat mecanismul de protecție RETGUARD, a fost adăugat un driver astfb pentru framebuffer-ul Aspeed BMC, s-au rezolvat problemele cu funcționarea driverelor radeondrm și amdgpu pe sistemele cu GPU AMD, s-a adăugat opțiunea de bootare în rețea în cadrul kernel-ului pentru ram-disk, s-au adăugat suport pentru modurile de economisire a energiei ale CPU-ului POWER9, precum și suport pentru excepțiile generate în urma operațiunilor cu virgulă mobilă. A fost implementat suportul IPMI pentru sistemele PowerNV.
- Pentru platformele ARM64, sunt suportate CPU-urile Cortex-A78AE, Cortex-X1 și Neoverse V1, au fost implementate variante optimizate pentru ARM64 ale apelurilor copyin, copyout și kcopy, s-a adăugat driverul cryptox pentru suportul extensiilor criptografice ARMv8, precum și driverul smmu pentru MMU-ul sistemului RM cu suport pentru Guard Page. A fost îmbunătățit suportul pentru dispozitivele Raspberry Pi, Rock Pi N10, NanoPi și Pinebook Pro.
- În driverul video a fost adăugat parametrul sysctl kern.video.record, care, similar cu kern.audio.record, controlează activarea ieșirii unei imagini goale în timpul încercării de captare video (pentru captură, valoarea trebuie schimbată în 1). Proceselor li se permite deschiderea repetată a dispozitivului video (rezolvă problemele cu utilizarea camerelor web în Firefox și BigBlueButton).
- Au fost adăugate puncte de urmărire pentru apelurile malloc și free, care permit cu ajutorul dt și btrace să monitorizeze activitatea activităților legate de distribuirea memoriei. În btrace a fost adăugată opțiunea ‘-n’ pentru parcarea programului fără a executa acțiuni.
- A fost îmbunătățit suportul pentru sistemele multiprocesoare (SMP). Implementarea UNIX-socket-urilor a fost scoasă din blocajul general al nucleului, s-a adăugat un mutex comun pentru serializarea operațiunilor cu msgbuf, apelul uvm_pagealloc a fost transformat în mp-safe, iar apelurile getppid și sendsyslog au fost scutite de blocaje.
- Au fost corectate problemele în componentele DRM (Direct Rendering Manager), inclusiv au fost eliminate blocările în driverul radeondrm pe sistemele Powerbook5/6 și RV350, a fost stabilită suportul DRI3 în driverele amdgpu și ati, pentru compatibilitate cu Linux a fost implementată crearea dispozitivelor în directorul /dev/dri/.
- Au fost aduse îmbunătățiri în hipervizorul VMM. În backend-ul pentru gestionarea mașinilor virtuale vmd a fost adăugat suportul pentru bootarea de pe discuri RAM comprimate.
- Au fost aduse îmbunătățiri în subsystemul audio. A fost oferită posibilitatea de a fixa separat dispozitivele audio sndio, doar pentru redare sau doar pentru înregistrare. În sndiod a fost utilizat un filtru de frecvență joasă cu răspuns impulsional finit (filtru FIR) de ordinul opt, permițând eliminarea zgomotelor cauzate de suprapunerea spectrelor în timpul resampling-ului. Funcția automată de reducere a volumului, când un nou program începe redarea (autovolume), este dezactivată în mod implicit, iar nivelul de volum implicit este setat la 127. S-a permis amestecarea sunetului din dispozitive alternative, care diferă prin nivelul de funcționalitate suportată în sndiod.
- Activată implicit, compilarea și instalarea debugger-ului LLDB.
- În rcctl, rc.subr și rc.d a fost adăugată suportul pentru handler-ul logger, care permite organizarea ieșirii jurnalelor din procesele în fundal care trimit date către stdout/stderr.
- Pentru touchpad-uri, s-a oferit posibilitatea de a configura layout-ul butoanelor prin wsconsctl. În wscons a fost îmbunătățită gestionarea atingerilor simultane.
- Pentru dispozitivele ARM64 a fost implementată posibilitatea de a folosi APM pentru a obține date despre consumul de energie și încărcarea bateriei. Pentru a limita accesul procesului apmd la sistemul de fișiere, a fost folosit apelul unveil.
- Suportul pentru hardware a fost extins. Au fost adăugate noi drivere acpige (pentru gestionarea evenimentelor ACPI, cum ar fi apăsarea butonului de alimentare), pchgpio (pentru controlerele GPIO dotate pe modernul Intel PCH), ujoy (pentru controllerele de joc), uhidpp (pentru dispozitivele Logitech HID++). A fost adăugat suportul pentru extensiile AMD Vi și Intel VTD IOMMU pentru izolarea dispozitivelor PCI și blocarea accesului incorect la memorie. A fost adăugat suportul pentru calculatoarele Lynloong LM9002/9003 și LM9013. În driverele pcamux și imxiic a fost adăugat suport pentru ACPI.
- Suportul pentru adaptoarele de rețea a fost îmbunătățit: mvpp (SFP+ și 10G pentru Marvel Armada Ethernet), mvneta (1000base-x și 2500base-x), mvsw (switch-uri Marvel SOHO), rge (suport pentru Wake on LAN), Netgear ProSecure UTM25. Pentru driverele wireless iwm, iwn și athn a fost adăugat suportul RA (802.11n Tx Rate Adaptation). În stiva wireless s-a realizat alegerea automată a modurilor 11a/b/g/n/ac când se folosește interfața de rețea în mod de punct de acces.
- În stiva de rețea a fost implementat driverul veb (Virtual Ethernet Bridge). A fost implementat suportul pentru modul de monitorizare, în care pachetele primite pe interfața de rețea nu sunt transmise în stiva de rețea pentru procesare, dar pot fi aplicate mecanisme de analiză a traficului, cum ar fi BPF. A fost adăugat un nou tip de interfețe de rețea — etherbridge. S-a oferit posibilitatea (comanda route sourceaddr) de a suprascrie adresa de origine pentru programe, ocolind algoritmul standard de selecție a adresei. adrese IP Asigurând ridicarea automată a interfețelor de rețea când este activat modul de auto-configurare (AUTOCONF4 și AUTOCONF6).
- În installer s-a implementat furnizarea unei imagini comprimate a ram-disk-ului (bsd.rd) pe toate platformele care suportă această încărcare.
- A fost implementată generarea unui avertisment prin syslog despre utilizarea în printf a substituției pentru formatarea șirurilor „%n”.
- Demonul de rutare OpenBGPD a adăugat suport pentru protocolul RTR (Resource Public Key Infrastructure (RPKI) to Router Protocol). A fost adăugată comanda „bgpctl show rtr” pentru a afișa informații de bază despre sesiunile RTR.
- Codul ospfd și ospf6d a fost restrucuturat pentru a fi unificat cu celelalte demoni de rutare și pentru a facilita întreținerea. A fost implementat suportul pentru interfețele de rețea în modul punct-la-punct.
- În serverul HTTP încorporat httpd au fost implementate noi opțiuni „location (found|notfound)” pentru a verifica existența resurselor.
- Utilitarul rpki-client a adăugat suport pentru protocolul RRDP (The RPKI Repository Delta Protocol, RFC 8182). A fost implementată posibilitatea de a specifica mai multe URI-uri în fișierul TAL.
- În utilitarul dig a fost implementat suportul pentru RFC 8914 (Extended DNS Error) și RFC 8976 (ZONEMD).
- În dhclient a fost adăugată posibilitatea de a specifica opțiuni în fișierele hostname.if, utilizând șiruri „dhcp”.
- Demonul snmpd a implementat suport complet pentru conversia Trapv1 în Trapv2 (RFC 3584). În snmpd.conf au fost adăugate noi cuvinte cheie read, write și notify. Utilitarul snmp a implementat suport pentru enumerări SMI.
- În rezolvatorul DNS unwind a fost adăugat suport pentru DNS64 și primirea conexiunilor prin TCP-port.
- În utilitarul ftp a fost adăugat suport pentru redirecționări permanente (RFC 7538) și posibilitatea de a trimite antetul If-Modified-Since când se fac cereri pe HTTP/HTTPS.
- În OpenSMTPD a fost adăugată opțiunea „-a” pentru a efectua autentificarea înainte de trimiterea mesajului. Instrumentele de criptare au fost translatate pentru a utiliza biblioteca libtls. În socketurile ascultătoare pentru TLS a fost implementată posibilitatea de a configura mai multe certificate, selectate în funcție de nume domeniu (SNI).
- În LibreSSL a fost adăugat suport pentru protocolul DTLSv1.2. A fost implementată posibilitatea de a compila doar libtls (‘—enable-libtls-only’) fără libcrypto și libssl.
- Pachetul OpenSSH a fost actualizat. O revizuire detaliată a îmbunătățirilor poate fi văzută aici: OpenSSH 8.5, OpenSSH 8.6.
- Numărul de porturi pentru arhitectura AMD64 a fost de 11310, pentru aarch64 – 10943, pentru i386 – 10468. Printre versiunile aplicațiilor din porturi: Xfce 4.16, Asterisk 18.3.0, Chromium 90.0.4430.72, FFmpeg 4.3.2, GCC 8.4.0, GNOME 3.38, Go 1.16.2, KDE Applications 20.12.3, Krita 4.4.3, LLVM/Clang 10.0.1, LibreOffice 7.0.5.2, Lua 5.3.6, MariaDB 10.5.9, Firefox 88.0 și ESR 78.10.0, Thunderbird 78.10.0, Node.js 12.16.1, PHP 8.0.3, Postfix 3.5.10, PostgreSQL 13.2, Python 3.9.2, Ruby 3.0.1, Rust 1.51.0.
Componentele dezvoltatorilor terți incluse în OpenBSD 6.9 au fost actualizate:
- Stiva grafică Xenocara pe bază de X.Org 7.7 cu xserver 1.20.10 + patch-uri, freetype 2.10.4, fontconfig 2.12.4, Mesa 20.0.8, xterm 367, xkeyboard-config 2.20, fonttosfnt 1.2.1.
- LLVM/Clang 10.0.1 (+ patch-uri)
- GCC 4.2.1 (+ patch-uri) și 3.3.6 (+ patch-uri)
- Perl 5.32.1 (+ patch-uri)
- NSD 4.3.6
- Unbound 1.13.1
- Ncurses 5.7
- Binutils 2.17 (+ patch-uri)
- Gdb 6.3 (+ patch)
- Awk 18.12.2020
- Expat 2.2.10
Lansarea versiunii OpenBSD 6.9 este însoțită de noua melodie „Vetera Novis”.
Sursa: opennet.ro
