Представен е издаването на свободната UNIX-подобна операционна система OpenBSD 7.6. Проектът OpenBSD е основан от Тео де Раадт (Theo de Raadt) през 1995 г. след конфликт с разработчиците на NetBSD, в резултат на който достъпът на Тео до CVS репозитория NetBSD е затворен. След това Тео де Раадт и група съмишленици създават нова отворена операционна система на базата на дървото с изходен код на NetBSD, чийто основни цели за развитие са преносимост (поддържат се 13 хардуерни платформи), стандартизация, коректна работа, проактивна сигурност и интегрирани криптографски средства. Размерът на пълния инсталационен ISO-образ на базовата система OpenBSD 7.6 е 702 МБ.
Освен самата операционна система, проектът OpenBSD е известен със своите компоненти, които са получили разпространение в други системи и се доказали като едни от най-сигурните и качествени решения. Сред тях са: LibreSSL (форк на OpenSSL), OpenSSH, пакетният филтър PF, демоните за маршрутизация OpenBGPD и OpenOSPFD, NTP-сървърът OpenNTPD, пощенският сървър OpenSMTPD, мултиплексорът на текстов терминал (аналог на GNU screen) tmux, демонът identd с реализация на протокола IDENT, BSDL-алтернатива на пакета GNU groff — mandoc, протокол за организиране на отказоустойчиви системи CARP (Common Address Redundancy Protocol), лек http-сървър, утилита за синхронизация на файлове OpenRSYNC.
Основни подобрения:
- Разширена е поддръжката на архитектурата ARM64. Включена е поддръжка за ARM8-разширението EPAN (Enhanced Privileged Access Never), блокиращо привилегирования достъп до страници в паметта, използвани само за изпълнение на код. Добавена е поддръжка за процесора Qualcomm Snapdragon X Elite (X1E80100) и е реализирано определянето на CPU Cortex-A520AE (Hayes AE) и Cortex-A720AE (Hunter AE). За системите на базата на архитектура ARM64 е реализирана защита от уязвимости от клас Spectre-V4, както и подобрена защита от уязвимости Spectre-BHB.
- За системите на базата на архитектура AMD64 е добавена поддръжка за инструкции AVX-512. Реализирана е защита от уязвимостта RFDS в процесорите Intel Atom.
- Добавена е поддръжка за платката Milk-V Pioneer на базата на архитектура RISC-V.
- Премахнат е механизма msyscall, използван за обозначаване на области от паметта, от които е разрешено изпълнението на системни повиквания. На его място идват системните повиквания mimmutable и pinsyscalls.
- Извършена е работа по подобряване на поддръжката на енергоспестяващи състояния S0 и прехода в спящ режим на съвременно оборудване. На системите amd64 е реализиран режим „suspend-to-idle“, който може да се прилага на оборудване без поддръжка на спящ режим S3. Решени са много проблеми в драйверите, които пречеха на използването на спящия режим.
- В системното повикване readdir е добавена проверка за наличие на символа ‘/’ в имената на файловете за блокиране на възможни атаки на приложения при работа с неподходящи файлови системи.
- Подобрена поддръжка на многоядерни системи (SMP). Добавени са възможности за паралелна обработка на входящите UDP пакети и raw сокети IPv4/IPv6 на различни ядра на CPU. Подобрена е работата с блокировките за unix4 и UDP сокети. Прехвърлени на нова схема на работа с блокировките са AF_ROUTE сокетите. Глобалните блокировки са премахнати от системните повици shutdown, sigsuspend и kbind, както и от TCP таймерите и много sysctl.
- Внесени са подобрения в хипервизора VMM. Добавена е поддръжка на механизма AMD SEV (Secure Encrypted Virtualization) за защита на виртуалните машини от намеса от хипервизора или администратора на хост системата. Подобрена е достъпността до възможностите на CPU от виртуалните машини. В vmctl е добавена команда "status -r" за показване на състоянието само на стартираните виртуални машини.
- Реализацията на фреймуърка drm (Direct Rendering Manager) е синхронизирана с ядрото Linux 6.6.52 (в предишното издание – 6.6.19). В драйвера inteldrm е реализирана поддръжка на GPU, използван в процесорите Intel, базирани на микроархитектурата Meteor Lake.
- Функцията scandirat е пренесена от FreeBSD за изброяване на съдържанието на директории.
- От основната система е премахнат старият DHCP клиент dhclient, вместо който се предлага да се използва постоянно работещият фонова процес dhcpleased, който е наличен от OpenBSD 6.9 и използва утилитата ifconfig за активиране на автоматична конфигурация на мрежовите интерфейси чрез DHCP (активира се чрез стартиране на "ifconfig $if autoconf" или добавяне на "inet autoconf" в /etc/hostname.$if).
- Забранено е използването на символ с нулев код в shell скриптове, обработвани от по подразбиране командния интерпретатор ksh. Наличието на нулеви символи в скриптовете сега ще води до прекратяване на изпълнението с изходяща грешка, освен в случаите, когато са разположени сред данните, прикрепени в края на файла след кода.
- Утилитата tar е прехвърлена на използване по подразбиране на формата PAX при създаване на архиви. Използването на формата PAX ще позволи запазването на по-дълги имена на файлове, обработка на линкове, използване на точни данни за времето и включване в архива на файлове с много голям размер.
- В X11-стека Xenocara, който се използва в OpenBSD за изграждане на графичната среда, е добавена библиотеката libva, която позволява използването на интерфейса VA-API (Video Acceleration API) за апаратно ускорение на кодиране и декодиране на видео в различни формати. Работата на апаратното ускорение беше тествана с драйвери за GPU Intel и AMD при използване на браузъра Firefox и видеоплеъра mpv. Необходими за работа драйвери за GPU Intel са предложени в портовете graphics/intel-media-driver и graphics/intel-vaapi-driver, а за работа с GPU AMD се използват стандартните компоненти от Mesa.
- Предоставена е възможност за стартиране на работната среда KDE Plasma 6.
- Добавена е поддръжка за ново оборудване и са включени нови драйвери, свързани с компонентите на различни SoC и поддръжката на Ethernet контролери. В драйверите igc и dwqe е добавена поддръжка за апаратно тагиране на VLAN, а в драйверите dwqe, vmx, igc и vio(4) е осигурено извеждане на изпълнението на мрежови операции на страната на мрежовите карти.
- В компилатора е добавена опцията "-fret-clean", която извършва почистване на адреса на връщане в стека след завършване на извикването.
- Обезпечена е работата на PPP интерфейси в домейн на маршрутизация (rdomain).
- За IPv6 е добавен режим "sysctl net.inet6.ip6.forwarding = 2", който разрешава пренасочването на пакети само за IPsec.
- В функцията getsockopt() е добавена поддръжка на флага SO_ACCEPTCONN, позволяваща проверка дали е извикан listen() за сокета.
- В iked, реализация на протокола IKEv2 за IPsec, е добавена поддръжка на аутентификация, авторизация и акаунтинг чрез протокола RADIUS.
- В RADIUS сървъра radiusd е добавена поддръжка на DAE (Dynamic Authorization Extensions) и възможността за разполагане на настройки за акаунтинг в radiusd.conf. Добавени са модули: radiusd_ipcp за настройка на пул IP адреси, radiusd_file за аутентификация чрез локален файл. В radiusctl е добавена команда "ipcp delete" за премахване на определена сесия без прекъсване на връзката.
- В OpenSMTPD е добавен API smtpd-tables за използване на таблици в smtpd и е реализиран сервис K_AUTH за извличане на удостоверяващи данни от таблиците.
- Добавен е фонов процес dhcp6leased за получаване на префикси IPv6 от сървъри DHCPv6.
- Актуализиран е OpenSSH. Списъкът с промени можете да видите в анонсите на OpenSSH 9.8 и OpenSSH 9.9.
- Броят на портовете за архитектурата AMD64 е 12312 (беше 12309), за aarch64 — 12148 (беше 12145), за i386 — 10534 (беше 10830). Сред версиите на приложения в портовете:
- Asterisk 16.30.1, 18.24.3, 20.9.3
- Audacity 3.6.3
- CMake 3.30.1
- Chromium 128.0.6613.137
- Emacs 29.4
- FFmpeg 4.4.5
- GCC 8.4.0 и 11.2.0
- GHC 9.6.6
- GNOME 46
- Go 1.23.1
- JDK 8u402, 11.0.24, 17.0.12 и 21.0.4
- KDE Applications 24.05.2
- KDE Frameworks 6.5.0
- KDE Plasma 6.1.4
- Krita 5.2.3
- LLVM/Clang 13.0.0, 16.0.6 и 17.0.6
- LibreOffice 24.8.1.2
- Lua 5.1.5, 5.2.4, 5.3.6 и 5.4.7
- MariaDB 10.9.8
- Mono 6.12.0.199
- Mozilla Firefox 130.0.1 и ESR 128.2.0
- Mozilla Thunderbird 128.2.3
- Node.js 20.17.0
- OpenLDAP 2.6.8
- PHP 8.1.29, 8.2.23 и 8.3.11
- Postfix 3.9.0
- PostgreSQL 16.4
- Python 2.7.18, 3.11.10
- Qt 5.15.13 (+ патчи от kde) и 6.6.3
- R 4.4.1
- Ruby 3.1.6, 3.2.5 и 3.3.5
- Rust 1.81.0
- SQLite 3.44.2
- Shotcut 24.04.28
- Sudo 1.9.15.5
- Suricata 7.0.6
- Tcl/Tk 8.5.19 и 8.6.13
- TeX Live 2023
- Vim 9.1.707 и Neovim 0.10.1
- Xfce 4.18.1
- Обновени компоненти от трети страни, включени в OpenBSD 7.6:
- Графичен стек Xenocara базиран на X.Org 7.7 с xserver 21.1.13 + патчи, freetype 2.13.2, fontconfig 2.14.2, Mesa 23.3.6, xterm 393, xkeyboard-config 2.20, fonttosfnt 1.2.3.
- LLVM/Clang 16.0.6 (+ патчи)
- GCC 4.2.1 (+ патчи) и 3.3.6 (+ патчи)
- Perl 5.38.2 (+ патчи)
- NSD 4.9.1
- Unbound 1.21.0
- Ncurses 6.4
- Binutils 2.17 (+ пачове)
- Gdb 6.3 (+ патчи)
- Awk от 28 юли 2024 г.
- Expat 2.6.3
- zlib 1.3.1 (+ патчи)
Източник: opennet.ru
