Представлен выпуск свободной кросс-платформенной UNIX-подобной операционной системы OpenBSD 7.0. Отмечается, что это 51 выпуск проекта, которому 18 октября исполнится 26 лет. Проект OpenBSD был основан Тэо де Раадтом (Theo de Raadt) в 1995 году после конфликта с разработчиками NetBSD, в результате которого для Тэо был закрыт доступ к CVS репозиторию NetBSD. После этого Тэо де Раадт с группой единомышленников создал на базе дерева исходных текстов NetBSD новую открытую операционную систему, главными целями развития которой стали переносимость (поддерживается 13 аппаратных платформ), стандартизация, корректная работа, проактивная безопасность и интегрированные криптографические средства. Размер полного установочного ISO-образа базовой системы OpenBSD 7.0 составляет 554 МБ.
Кроме непосредственно операционной системы, проект 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.
Основные улучшения:
- Добавлен порт для 64-разрядных систем на базе архитектуры RISC-V. В настоящее время поддерживается работа на платах HiFive Unmatched и частично на PolarFire SoC Icicle Kit.
- В порте для платформ ARM64 улучшена, но пока всё ещё не доведена до конца, поддержка устройств Apple с процессором M1. В текущем виде поддерживается установка OpenBSD на диск с GPT и имеются драйверы для USB 3, NVME, GPIO и SPMI. Помимо M1 в порте ARM64 также расширена поддержка Raspberry Pi 3 Model B+ и плат на базе SoC Rockchip RK3399.
- Для архитектуры AMD64 отключён по умолчанию компилятор GCC (оставлен только Clang). Ранее GCC был отключён для архитектур armv7 и i386.
- Прекращено сопровождение платформы SGI.
- Для платформ amd64, arm64, i386, sparc64 и powerpc64 по умолчанию включена сборка ядра с поддержкой системы динамической трассировки dt. Добавлен провайдер kprobes для сбора информации о событиях на уровне ядра.
- В btrace реализована поддержка операторов “” в фильтрах и обеспечен вывод времени нахождения в пространстве пользователя при анализе стека ядра.
- Добавлен конфигурационный файл /etc/bsd.re-config, который можно использовать для настройки ядра во время загрузки и включения/отключения определённых устройств.
- Обеспечено определение наличия устройств TPM 2.0 и корректное выполнение команд для перехода в спящий режим (решает проблему с пробуждением ноутбуков ThinkPad X1 Carbon Gen 9 и ThinkPad X1 Nano).
- Реализация kqueue переведена на использование mutex-ов.
- Реализована возможность настройки через sysctl размера буфера для сокетов PF_UNIX. Размер буфера по умолчанию увеличен до 8 КБ.
- Усовершенствована поддержка многопроцессорных систем (SMP). Переведён в разряд mp-safe вызов pmap_extract() на системах hppa и amd64. Из общей блокировки ядра выведен код для подсчёта ссылок на анонимные объекты, часть обработчика исключений и функции lseek, connect и setrtable. Реализованы отдельного для каждого ядра CPU буферы сообщений при крахе (panic).
- Реализация фреймворка drm (Direct Rendering Manager) синхронизирована с ядром Linux 5.10.65. В драйвере inteldrm улучшена поддержка чипов Intel на базе микроархитектуры Tiger Lake. В драйвере amdgpu реализована поддержка GPU Navi 12, Navi 21 “Sienna Cichlid”, Arcturus и APU Cezanne “Green Sardine” Ryzen 5000.
- Добавлена поддержка нового оборудования, в том числе Aquantia AQC111U/AQC112U USB Ethernet, Aquantia 1/2.5/5/10Gb/s PCIe Ethernet, Cadence GEM, Broadcom BCM5725, RTL8168FP/RTL8111FP/RTL8117
Улучшена поддержка платформ Intel на базе микроархитектуры Tiger Lake.
Добавлен драйвер ucc для клавиатур с интерфейсом USB HID Consumer Control, в которых используются кнопки вызова приложений, управления воспроизведением звука и изменения громкости. - Внесены улучшения в гипервизор VMM. Добавлен лимит на 512 VCPU на виртуальную машину. Решены проблемы с блокировками VCPU.
В бэкенде для управления виртуальными машинами vmd появилась поддержка защита от гостевых систем с вредоносными драйверами virtio. - Из NetBSD перенесена утилита timeout, позволяющая ограничить время выполнения команд.
- В утилите синхронизации файлов openrsync реализованы опции “include” и “exclude”.
- В утилите ps обеспечен вывод сведений о сопутствующих группах.
- В текстовый редактор mg добавлена команда “dired-jump”.
- В утилитах fdisk и newfs улучшена поддержка дисков с размером сектора 4K. В fdisk переделан код инициализации MBR/GPT и добавлено распознавание GPT-разделов “BIOS Boot”, “APFS”, “APFS ISC”, “APFS Recovry” (sic), “HiFive FSBL” и “HiFive BBL”. Добавлена опция “-A” для инициализации GPT без удаления загрузочных разделов.
- В утилите traceroute для ускорения работы реализована обработка проверочных пакетов и запросов DNS в асинхронном режиме.
- В утилите doas реализовано три попытки ввода пароля.
- В xterm обеспечена изоляция доступа к файловой системе при помощи системного вызова unveil(). Процессы ftpd защищены при помощи вызов pledge.
- Реализован вывод в лог сведений о некорректном использовании параметра форматирования “%n” в функции printf.
- В реализации IPsec в iked добавлена поддержка настройки DNS на стороне клиента.
- В snmpd по умолчанию отключена поддержка протоколов SNMPv1 и SNMPv2c в пользу применения SNMPv3.
- По умолчанию включены процессы dhcpleased и resolvd, предоставляющие возможность настройки адресов IPv4 через DHCP. Утилита dhclient оставлена в системе в качестве опции. В утилиту route добавлена команда “nameserver” для передачи информации о серере DNS в resolvd.
- В LibreSSL добавлена поддержка TLSv3 API OpenSSL 1.1.1 и активирован новый валидатор X.509, поддерживающий корректную проверку перекрёстно подписанных сертификатов.
- В OpenSMTPD добавлена поддержка опций TLS “cafile=(path)”, “nosni”, “noverify” и “servername=(name)”. В smtp разрешено выбирать параметры шифров и протоколов TLS.
- Обновлён пакет OpenSSH. Подробный обзор улучшений можно посмотреть здесь: OpenSSH 8.7, OpenSSH 8.8. Отключена поддержка цифровых подписей rsa-sha.
- Число портов для архитектуры AMD64 составило 11325, для aarch64 – 11034, для i386 – 10248. Среди версий приложений в портах: FFmpeg 4.4 GCC 8.4.0 и 11.2.0 GNOME 40.4 Go 1.17 JDK 8u302, 11.0.12 и 16.0.2 KDE Applications 21.08.1 KDE Frameworks 5.85.0 LLVM/Clang 11.1.0 LibreOffice 7.2.1.2 Lua 5.1.5, 5.2.4 и 5.3.6 MariaDB 10.6.4 Node.js 12.22.6 PHP 7.3.30, 7.4.23 и 8.0.10 Postfix 3.5.12 PostgreSQL 13.4 Python 2.7.18, 3.8.12 и 3.9.7 Qt 5.15.2 и 6.0.4 Ruby 2.6.8, 2.7.4 и 3.0.2 Rust 1.55.0 SQLite 3.35.5 Xfce 4.16
- Обновлены компоненты от сторонних разработчиков, входящие в состав OpenBSD 7.0:
Графический стек Xenocara на базе X.Org 7.7 с xserver 1.20.13 + патчи, freetype 2.10.4, fontconfig 2.12.4, Mesa 21.1.8, xterm 367, xkeyboard-config 2.20, fonttosfnt 1.2.2. - LLVM/Clang 11.1.0 (+ патчи)
- GCC 4.2.1 (+ патчи) и 3.3.6 (+ патчи)
- Perl 5.32.1 (+ патчи)
- NSD 4.3.7
- Unbound 1.13.3
- Ncurses 5.7
- Binutils 2.17 (+ патчи)
- Gdb 6.3 (+ патч )
- Awk 18.12.2020
- Expat 2.4.1