Представлен выпуск свободной UNIX-подобной операционной системы OpenBSD 7.5. Проект OpenBSD был основан Тэо де Раадтом (Theo de Raadt) в 1995 году после конфликта с разработчиками NetBSD, в результате которого для Тэо был закрыт доступ к CVS репозиторию NetBSD. После этого Тэо де Раадт с группой единомышленников создал на базе дерева исходных текстов NetBSD новую открытую операционную систему, главными целями развития которой стали переносимость (поддерживается 13 аппаратных платформ), стандартизация, корректная работа, проактивная безопасность и интегрированные криптографические средства. Размер полного установочного ISO-образа базовой системы OpenBSD 7.5 составляет 630 МБ.
Кроме непосредственно операционной системы, проект 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.
Основные улучшения:
- В инсталлятор добавлена поддержка шифрования корневого раздела. В автоматизированном режиме установки (autoinstall) предоставлена возможность включения шифрования дисков с заданием пароля открытым текстом или поставкой ключей на отдельном носителе. Сборки для архитектуры AMD64 cdXX.iso и installXX.iso адаптированы для загрузки в режиме EFI.
- Добавлен системный вызов pinsyscalls, позволяющий разрешить обращение к системным вызовам только из определённых мест в адресном пространстве процесса. Ядро и ld.so могут регистрировать точное место входа в каждый системный вызов, используемый программой и библиотекой libc.so, для последующего блокирования отправки системных вызовов из незарегистрированных мест.
- Удалена поддержка косвенного обращения к системным вызовам при помощи функции syscall. В комбинации с pinsyscalls изменение позволяет запретить прямое обращение к системным вызовам без использования обвязок, предоставляемых в libc. Пакеты, в которых встречается прямое обращение к системным вызовам, например, Perl и Go, модифицированы для использования только функций libc.
- На системах ARM64 расширено использование механизмов аутентификации указателей (PAC — Pointer Authentication) и идентификации ветвления (BTI — Branch Target Identification).
- В сетевой интерфейс ppp добавлена поддержка IPv6.
- В утилите netstat реализован вывод статистики об эффективности кэширования маршрутов (в выводе «netstat -s» теперь показываются счётчики попаданий и промахов каша).
- В пакетном фильтре pf учтены изменения в сетевом стеке, связанные с распараллеливанием операций на многопроцессорных системах. При выполнении утилиты tcpdump с сетевым интерфейсом pflog обеспечен показ пакетов, отброшенных при срабатывании правила под умолчанию с действием «block». Для правил с действием «pass» обеспечено отображение заблокированных некорректных пакетов. В divert добавлена проверка корректности выставления опций в пакетах IPv4.
- Усовершенствована поддержка многопроцессорных систем (SMP). Переведены в разряд mp-safe обработчики таймаутов в сетевом стеке, подсчёт пакетов для интерфейса loopback и модуль vscsi_filtops. Обеспечена возможность параллельного выполнения системных вызовов bind и connect, а также операций с таблицами UDP для IPv4 и IPv6. Добавлена поддержка одновременной отправки UDP-пакетов из разных потоков.
- Усовершенствована обработка ситуаций переполнения раздела подкачки, добавлены изменения для исключения взаимных блокировок.
- В ядре для систем arm64 реализовано кэширование содержимого пулов таблиц страниц памяти и PTE-дескрипторов, что значительно ускорило работу на многоядерных системах.
- Внесены улучшения в гипервизор VMM. Реализация устройства vionet переписана для поддержки многопоточности и передачи данных между хостом и гостевой системой в режиме zero-copy, без промежуточной буферизации. Повышена стабильность работы гипервизора на системах с инструкциями Intel VMX. Добавлена дополнительная защита от недавно выявленных уязвимостей в процессорах, связанных со спекулятивным выполнением инструкций и утечками остаточных данных из регистров.
- Для систем amd64 добавлен sysctl machdep.retpoline для управления включением механизма retpoline для защиты от атак класса Spectre.
- Реализация фреймворка drm (Direct Rendering Manager) синхронизирована с ядром Linux 6.6.19 (в прошлом выпуске — 6.1.55).
- Добавлена поддержка нового оборудования и включены в состав новые драйверы, связанные с компонентами различных SoC, поддержкой Ethernet-контроллеров и выносом выполнения сетевых операций на сторону сетевых карт.
- В звуковой подсистеме uaudio разрешено прикрепления нескольких драйверов для звуковых устройств.
- Добавлены драйверы apldcp и apldrm для контроллеров дисплея, используемых в устройствах Apple. Для Apple Powerbook реализована возможность управления подсветкой клавиатуры.
- Добавлен драйвер qwx для беспроводных чипов Qualcomm IEEE 802.11ax, созданный путём портирования драйвера ath11k из ядра Linux (входит в состав ядра, начиная с ветки 5.6). Драйвер позволяет задействовать беспроводные адаптеры, применяемые на таких ноутбуках, как Lenovo ThinkPad X13s и DELL XPS 9500. Для работы драйвера требуется установка файлов с прошивкой.
- В утилиту pax добавлена возможность записи в pax-архивы, а в утилиту tar добавлена поддержка pax-архивов, размером больше 8 ГБ.
- В утилиту ifconfig добавлена поддержка указания номеров портов для связанных с туннелями сетевых интерфейсов, таких как gif и gre.
- В bgpd механизм передачи сообщений и большинство парсеров протоколов переведены на новый API безопасной работы с памятью.
- В rpki-client добавлена экспериментальная поддержка алгоритма цифровых подписей P-256. Реализована возможность ограничения действия RPKI Trust Anchor только для определённых номеров автономных систем. Добавлена поддержка списков подписанных префиксов RPKI (Signed Prefix List).
- В smtpd добавлена поддержка RFC 7505 («Null MX» для идентификации доменов, которые не принимают почту) и обеспечена возможность встраивания в smtpd.conf многострочных таблиц и списков с фильтрами.
- Предоставлена возможность установки пользовательского окружения KDE Plasma 5.27 из пакетов kde-plasma и kde-plasma-extra (после прекращения поддержки KDE4, поддержка использования рабочего стола KDE Plasma 5 до сих пор оставалась в OpenBSD неработоспособной). Для установки предложены версии KDE Plasma 5.27.10, KDE Applications 23.08.4 и KDE Frameworks 5.115.0.
- Обновлены пакеты LibreSSL и OpenSSH. Подробный обзор улучшений можно посмотреть в обзорах LibreSSL 3.9.0, OpenSSH 9.6 и OpenSSH 9.7.
- Число портов для архитектуры AMD64 составило : 12309 (было 11845), для aarch64 — 12145 (было 11508), для i386 — 10830 (было 10603). Среди версий приложений в портах:
- Asterisk 16.30.1, 18.21.0, 20.6.0
- Audacity 3.4.2
- CMake 3.28.3
- Chromium 122.0.6261.111
- FFmpeg 4.4.4
- Firefox 123.0.1, ESR 115.8.0
- GCC 8.4.0, 11.2.0
- GHC 9.6.4
- GNOME 45
- Go 1.22.1
- JDK 8u402, 11.0.22, 17.0.10, 21.0.2
- Krita 5.2.2
- LLVM/Clang 13.0.0, 16.0.6, 17.0.6
- LibreOffice 24.2.1.2
- Lua 5.1.5, 5.2.4, 5.3.6, 5.4.6
- MariaDB 10.9.8
- Mono 6.12.0.199
- Mutt 2.2.13 и NeoMutt 20240201
- Node.js 18.19.1
- OCaml 4.14.1
- OpenLDAP 2.6.7
- PHP 7.4.33, 8.0.30, 8.1.27, 8.2.16, 8.3.3
- Postfix 3.8.6
- PostgreSQL 16.2
- Python 2.7.18, 3.9.18, 3.10.13, 3.11.8
- Qt 5.15.12 (+ kde patches), 6.6.1
- R 4.2.3
- Ruby 3.1.4, 3.2.3, 3.3.0
- Rust 1.76.0
- SQLite 3.44.2
- Shotcut 23.07.29
- Sudo 1.9.15.5
- Suricata 7.0.3
- Tcl/Tk 8.5.19, 8.6.13
- TeX Live 2023
- Thunderbird 115.8.1
- Vim 9.1.139, Neovim 0.9.5
- Xfce 4.18.1
- Обновлены компоненты от сторонних разработчиков, входящие в состав OpenBSD 7.5:
- Графический стек Xenocara на базе X.Org 7.7 с xserver 21.1.11 + патчи, freetype 2.13.0, fontconfig 2.14.2, Mesa 23.1.9, xterm 378, xkeyboard-config 2.20, fonttosfnt 1.2.3.
- LLVM/Clang 16.0.6 (+ патчи)
- GCC 4.2.1 (+ патчи) и 3.3.6 (+ патчи)
- Perl 5.36.3 (+ патчи)
- NSD 4.8.0
- Unbound 1.18
- Ncurses 5.7
- Binutils 2.17 (+ патчи)
- Gdb 6.3 (+ патч )
- Awk 22.01.2024
- Expat 2.6.0.
- zlib 1.3.1 (+ патчи).
Источник: opennet.ru