Predstavljen je izid proste UNIX-podobne operacijske sisteme OpenBSD 7.7. Projekt OpenBSD je ustanovil Theo de Raadt leta 1995 po sporu z razvijalci NetBSD, zaradi katerega je bilo Teu odvzeto dostop do CVS repozitorija NetBSD. Po tem je Theo de Raadt skupaj s skupino somišljenikov ustvaril na podlagi drevesa izvornih kod NetBSD nov odprti operacijski sistem, katerega glavne cilje razvoja predstavljajo prenosljivost (podpira 13 strojnih platform), standardizacija, pravilno delovanje, proaktivna varnost in integrirana kriptografija. Velikost celotnega namestitvenega ISO-sliko osnovnega sistema OpenBSD 7.7 znaša 746 MB.
Poleg samega operacijskega sistema je projekt OpenBSD znan po svojih komponentah, ki so se razširile v druge sisteme in se dokazale kot ena izmed najbolj varnih in kakovostnih rešitev. Med njimi so: LibreSSL (fork OpenSSL), OpenSSH, paketni filter PF, demoni usmerjanja OpenBGPD in OpenOSPFD, NTP strežnik OpenNTPD, poštni strežnik OpenSMTPD, multiplexer besedilnega terminala (analoga GNU screen) tmux, demon identd z implementacijo protokola IDENT, BSDL-alternativa paketu GNU groff — mandoc, protokol za organizacijo odpornosti sistemov CARP (Common Address Redundancy Protocol), lahki http strežnik, orodje za sinhronizacijo datotek OpenRSYNC.
Glavne spremembe:
- Izvedba ogrodja drm (Direct Rendering Manager) je sinhronizirana z jedrom Linux 6.12.21 (prejšnja izdaja je bila 6.6.52). V gonilniku inteldrm je bila dodana podpora za GPU, ki se uporablja v procesorjih Intel na osnovi mikroarhitekture Arrow Lake. V gonilniku amdgpu je bila dodana podpora za GPU Ryzen AI 300 (Strix Point, Strix Halo, Krackan Point) in Radeon RX 9070 (Navi 48).
- V portu za arhitekturo ARM64 je bila implementirana podpora za niz vektorskih ukazov SVE (Scalable Vector Extension). Na sistemih z ARM čipi Apple M1 je omogočeno upravljanje stanj porabe energije. V mehanizmu mapiranja fizične strani pomnilnika (pmap, physical mapping) so optimizirani postopki ponovnega nalaganja asociativne transformacije (TLB), kar je približno 5% pospešilo izvajanje testa sestavljanja jedra. Na napravi, ki podpira šifro QARMA3 za zaščito uporabniškega prostora, je bila vključena avtentifikacija kazalcev (PAC, Pointer Authentication Code).
- Na sistemih x86_64 za gostujoče sisteme, ki delujejo s pomočjo QEMU, je bila implementirana podpora mehanizmu AMD SEV (Secure Encrypted Virtualization), ki se uporablja v sistemih virtualizacije za zaščito virtualnih naprav pred vmešavanjem hipervizorja ali administratorja gostiteljske sistemske enote. V gonilniku psp, ki se uporablja za konfiguracijo in zagon gostujočih sistemov z vključitvijo AMD SEV, je bila dodana ukaz za nalaganje programske opreme v čip.
- Na sistemih x86_64 je bila dodana možnost dodeljevanja območij pomnilnika, večjih od 4 GB, za DMA.
- Izboljšana podpora za arhitekture RISC-V, Sparc64, HPPA, i386 in Powerpc64.
- Izboljšano obravnavanje situacij pomanjkanja pomnilnika v sistemu (OOM).
- В механизм трассировки ptrace добавлены возможности, позволяющие выставлять в отладчике gdb точки останова в многопоточных процессах. Добавлены команды для чтения и записи области, в которую в отслеживаемом процессе сохраняется состояние процессора при использовании инструкции XSAVE.
- В сценариях на языке BT (BPFtrace или Bug Tracing), применяемых в системе трассировки btrace, добавлена поддержка многострочных конструкций. В утилиту btrace добавлены дополнительные профили и именования временных интервалов (hz, us, ms, s).
- Добавлен sysctl-параметр kern.audio.kbdcontrol, при выставлении которого в 0 мультимедийные клавиши управления громкостью на клавиатуре будут обрабатываться как обычные клавиши.
- Улучшена обработка сбоев и расширены проверки при переходе в спящий и ждущий режимы.
- Переработан код для остановки процессов при поступлении сигнала, что решило проблемы с остановкой многопоточных процессов, проявлявшиеся в таких пакетах, как golang и mpv.
- Усовершенствована поддержка многопроцессорных систем (SMP). Обеспечена параллельная работа таймеров ввода и вывода TCP, а системные вызовы send() и recv() переведены на использование общей блокировки. Несколько пользовательских потоков теперь могут параллельно работать с разными сокетами, а вывод TCP больше не блокирует обработку IP-пакетов.
Избавлены от глобальной блокировки системные вызовы open, openat, ptsignal, psignal и prsignal, а также 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. Переведены в разряд mp-safe драйверы psp, wsmouse и wstpad, а также структура video_filtops.
- В гипервизоре VMM реализована возможность использования acpipci для прикрепления PCI-шин.
- Предоставлена возможность определения альтернативной политики с настройками производительности (perfpolicy), применяемой при работе системы от аккумулятора.
- В команду sysctl добавлена опция «-f file» для загрузки разом всех настроек из файла. В rc-скриптах новая опция применена для загрузки sysctl.conf целиком, вместо построчного разбора.
- В команде pkg_add реализован вызов ldconfig, если в результате установки новых пакетов изменился список разделяемых библиотек.
- Dodana je podpora za novo opremo. Izboljšana je podpora za SoC MediaTek in Qualcomm Snapdragon (vključujoč X Elite). Izboljšana je podpora za naprave Samsung Galaxy Book4 Edge, ThinkPad T14 Gen 5, Vivobook, ThinkPad X1 Nano Gen 2, ThinkPad X13 in različne Chromebooke. Dodan je gonilnik ice za Intel E810 Ethernet 1Gb/10Gb/25Gb/50Gb/100Gb in gonilnik ixv za virtualne funkcije Intel Ethernet 82598EB, 82559 in X540. Nadaljuje se delo na prenosu izvajanja omrežnih operacij na stran omrežnih kartic.
- V sysupgrade je bil implementiran način za offline-posodabljanje sistemov s paketi, shranjenimi v lokalnem datotečnem sistemu.
- V orodju fw_update je bila dodana možnost prenosa (ne namestitve) programske opreme za običajne uporabnike brez pravic root. Dodana je zastavica „-l“ za prikaz seznama gonilnikov in datotek.
- Za proces sshd-auth je bila uvedena zaščita pred izkoriščanjem ranljivosti, ki temelji na naključni ponovni povezavi izvedbene datoteke ob vsakem zagonu sistema (relink). Ponovna povezava omogoča zmanjšanje predvidljivosti pomikov funkcij, kar otežuje ustvarjanje izkoriščanj, ki uporabljajo metode vračno usmerjenega programiranja.
- Zagotovljena je izolacija procesa mountd z uporabo sistemskega klica unveil.
- V omrežnem skladu je bila uvedena podpora za sokete AF_FRAME in družino protokolov IFT_ETHER, ki aplikacijam omogoča pošiljanje in prejemanje Ethernet okvirjev. Za odhodne pakete UDP in TCP je bila uporabljena nova metoda hashranja, ki je optimizirala razporeditev prometa po čakalnih vrstah in znatno (~20%) pospešila pošiljanje UDP za IPv4/IPv6 in TCP za IPv6. Za napravo tun je bil implementiran ioctl TUNSCAP in optimizirano delovanje med jedrom in uporabniškim prostorom. Uvedena je bila ločena predpomnilniška funkcija za vsako nit. V gonilniku vio je bil vključen način multiqueue.
- V orodju pfctl za omrežne vmesnike in čakalne vrste je bilo omogočeno določanje prepustnosti, ki presega 4Gbit.
- V iked, implementaciji protokola IKEv2 za IPsec, je bila dodana možnost „natt“ za prisilno uporabo nat-t.
- V relayd, ozadnjem procesu za preusmerjanje in uravnoteženje zahtevkov, je bila uvedena podpora za odjemalsk TLS-certifikatov.
- Orodju za merjenje omrežne zmogljivosti tcpbench je bila dodana podpora za TLS.
- V bgpd je bila uvedena podpora za RFC 8654 (BGP Extended Message), RFC 8538 (BGP Notification Message), privzeto je aktivirana možnost „reject as-set“, omogočeno je predpomnjenje Adj-RIB-Out.
- V LibreSSL 4.1.0 je bila dodana eksperimantalna podpora za arhitekturo loongarch64, predstavljene so nove asemblažne implementacije algoritmov SHA-1, SHA-256 in SHA-512 za arhitekturo amd64 (uporabljen je ukaz SHA-NI), nove asemblažne implementacije SHA-256 in SHA-512 za Aarch64 (uporabljena je razširitev CE), poenostavljena je implementacija MD5 za amd64, omogočeno je predpomnjenje seznama preklicanih certifikatov (CRLs), iz BoringSSL je prenesena implementacija ML-KEM 768 in 1024.
- OpenSSH je posodobljen. Seznam sprememb si lahko ogledate v napovedi OpenSSH 10 (podpora za digitalne podpise DSA je odstranjena, operacije avtentikacije so bile prenesene v ločen proces sshd-auth, privzeto je uporabljen hibridni algoritem izmenjave ključev 'mlkem768x25519-sha256').
- Število paketov za arhitekturo AMD64 znaša 12593 (bilo je 12312), za aarch64 — 12446 (bilo je 12148), za i386 — 10429 (bilo je 10534). Med različicami aplikacij v paketih:
- Asterisk 16.30.1, 18.26.1, 20.13.0 in 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 in 11.2.0
- GNOME 47
- Go 1.24.1
- JDK 8u442, 11.0.26, 17.0.14 in 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 in ESR 128.9.0
- Mozilla Thunderbird 128.9.0
- Mutt 2.2.14 in NeoMutt 20250113
- Node.js 22.14.0
- OpenLDAP 2.6.9
- PHP 8.2.28, 8.3.19 in 8.4.5
- Postfix 3.10.1
- PostgreSQL 17.4
- Python 2.7.18 in 3.12.9
- Qt 5.15.16 (+ popravki iz projekta KDE) in 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 in 8.6.16
- Vim 9.1.1265 in Neovim 0.10.4
- Xfce 4.20.0
- Posodobljeni so komponenti tretjih proizvajalcev, vključeni v OpenBSD 7.7:
- Grafični sklad Xenocara na osnovi X.Org 7.7 s xserver 21.1.16 + popravki, 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 (+ popravki)
- GCC 4.2.1 (+ popravki) in 3.3.6 (+ popravki)
- Perl 5.40.1 (+ popravki)
- NSD 4.9.1
- Unbound 1.22.0
- Ncurses 6.4
- Binutils 2.17 (+ popravki)
- Gdb 6.3 (+ popravki)
- Awk 20250116
- Expat 2.7.1
- zlib 1.3.1 (+ popravki)
Izvor: opennet.ru
