Выпуск OpenBSD 7.5

Представлен выпуск свободной 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 (+ патчи).

Источник: http://www.opennet.ru/opennews/art.shtml?num=60930