30.06.2022

Выпуск OpenBSD 7.1

Представлен выпуск свободной кросс-платформенной UNIX-подобной операционной системы OpenBSD 7.1. Проект OpenBSD был основан Тэо де Раадтом (Theo de Raadt) в 1995 году после конфликта с разработчиками NetBSD, в результате которого для Тэо был закрыт доступ к CVS репозиторию NetBSD. После этого Тэо де Раадт с группой единомышленников создал на базе дерева исходных текстов NetBSD новую открытую операционную систему, главными целями развития которой стали переносимость (поддерживается 13 аппаратных платформ), стандартизация, корректная работа, проактивная безопасность и интегрированные криптографические средства. Размер полного установочного ISO-образа базовой системы OpenBSD 7.1 составляет 580 МБ.

Кроме непосредственно операционной системы, проект 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.

Основные улучшения:

  • Объявлена готовой к использованию поддержка компьютеров Mac, оснащённых ARM-чипом Apple M1 (Apple Silicon), таких как Apple M1 Pro/Max и Apple T2 Macs. Добавлены драйверы для SPI, I2C, контроллера DMA, клавиатуры, тачпада, управления питанием и производительностью. Обеспечена поддержка Wi-Fi, GPIO, framebuffer, USB, экрана, накопителей NVMe.
  • Улучшена поддержка архитектуры ARM64. Добавлены драйверы gpiocharger, gpioleds и gpiokeys, обеспечивающие поддержку зарядок, подсветок и кнопок, подключаемых к GPIO (например, так сделано в Pinebook Pro). Добавлены новые драйверы: mpfclock (PolarFire SoC MSS clock controller), cdsdhc (Cadence SD/SDIO/eMMC host controller), mpfiic (PolarFire SoC MSS I2C controller) и mpfgpio (PolarFire SoC MSS GPIO).
  • Улучшена поддержка архитектуры RISC-V 64, для которой включены драйверы uhid и fido, обеспечена поддержка установки на диски с GPT.
  • В утилите mount_msdos по умолчанию включено использование длинных имён файлов.
  • Переработан код сборщика мусора для unix-сокетов.
  • sysctl hw.perfpolicy пр умолчанию выставлен в значение «auto», подразумевающее включение режима полной производительности при подключении стационарного питания и использование адаптивного алгоритма при питании от аккумулятора.
  • Усовершенствована поддержка многопроцессорных систем (SMP). Переведены в разряд mp-safe фильтры событий неименованных каналов, kqread, звука и сокетов, а также механизм BPF. Системные вызовы poll, select, ppoll и pselect переписаны и теперь реализованы поверх kqueue. Избавлены от блокировок системные вызовы kevent, getsockname, getpeername, accept и accept4. Добавлен интерфейс ядра для атомарных функций load и store, позволяющих использовать типы int и long в элементах структур, к которым применяется подсчёт ссылок.
  • Реализация фреймворка drm (Direct Rendering Manager) синхронизирована с ядром Linux 5.15.26 (в прошлом выпуске — 5.10.65). В драйвер inteldrm добавлена поддержка чипов Intel на базе микроархитектур Elkhart Lake, Jasper Lake и Rocket Lake. В драйвере amdgpu реализована поддержка APU/GPU Van Gogh, Rembrandt «Yellow Carp» Ryzen 6000, Navi 22 «Navy Flounder», Navi 23 «Dimgrey Cavefish» и Navi 24 «Beige Goby».
  • В библиотеке FreeType включён субпиксельный рендеринг шрифтов.
  • Добавлена утилита realpath для вывода абсолютного пути к файлу.
  • В утилиту rcctl добавлена команда «ls rogue» для показа фоновых процессов, которые запущены, но не включены в rc.conf.local.
  • BPFtrace реализована поддержка переменных для проверок. В btrace добавлены скрипты kprofile.bt для профилирования стека ядра и runqlat.bt для выявления задержек в работе планировщика.
  • В libc добавлена поддержка RFC6840, определяющего поддержку флага AD и настройки ‘trust-ad’ для DNSSEC.
  • В apm и apmd включён показ прогнозируемого времени перезарядки аккумулятора.
  • Предоставлена возможность хранения БД capability в /etc/login.conf.d для упрощения добавления из пакетов собственных классов учётных записей.
  • В malloc обеспечено кэширование регионов памяти размером от 128k до 2M.
  • В архиваторе pax реализована поддержка расширенных заголовков с данными mtime, atime и ctime.
  • В утилиты gzip и gunzip добавлена опция «-k» для сохранения исходного файла.
  • В утилиту openrsync добавлены опции: «—compare-dest» для проверки наличия файлов в дополнительных каталогах; «—max-size» и «—min-size» для ограничения размера файлов.
  • Добавлена команда seq для вывода последовательностей чисел.
  • Из FreeBSD 13 перенесена универсальная программная реализация тригонометрических функций (реализации на ассемблере для x86 отключены).
  • Из FreeBSD перенесена реализация функций lrint, lrintf, llrint и llrintf (ранее применялась реализация из NetBSD).
  • В утилите fdisk отмечены многочисленные изменения и исправления, связанные с работой с дисковыми разделами.
  • Добавлена поддержка нового оборудования, в том числе контроллера Intel PCH GPIO (для платформ Cannon Lake H и Tiger Lake H), NXP PCF85063A/TP RTC, Synopsys Designware UART, Intel 2.5Gb Ethernet, SIMCom SIM7600, RTL8156B, MediaTek MT7601U USB wifi, BCM4387 wifi.
  • В состав включены перелицензированные прошивки для беспроводных чипов Realtek, позволяющие использовать драйверы rsu, rtwn и urtwn без ручной загрузки прошивок.
  • В драйверах ixl (Intel Ethernet 700), ix (Intel 82598/82599/X540/X550) и aq (Aquantia AQC1xx) включена поддержка аппаратной обработки VLAN-тегов и вычисления/проверки контрольных сумм для IPv4, TCP4/6 и UDP4/6.
  • Добавлен звуковой драйвер для чипов Intel Jasper Lake. Добавлена поддержка игрового контроллера XBox One.
  • В беспроводном стеке IEEE 802.11 реализована поддержка каналов 40MHz для режима 802.11n и начальная поддержка стандарта 802.11ac (VHT). Для драйверов добавлен опциональный обработчик фонового сканирования. При выборе точки доступа приоритетными теперь являются точки с каналами 5GHz, а уже потом выбираются точки с каналами 2GHz.
  • Переписана реализация драйвера vxlan, который теперь работает независимо от подсистемы bridge.
  • В инсталляторе переработана логика вызова утилиты pkg_add для сокращения интенсивности перемещений файлов в процессе обновления. В файле install.site документирован процесс настройки установки и обновления. Для всех архитектур в состав добавлены прошивки, распространение которых разрешено в сторонних продуктах. Для установки проприетарных прошивок, доступных на установочном носителе, задействована утилита fw_update.
  • В xterm из соображений безопасности отключено по умолчанию отслеживание мыши.
  • В usbhidctl и usbhidaction обеспечена изоляция доступа к файловой системе при помощи системного вызова unveil.
  • В dhcpd по умолчанию обеспечено прикрепление и к сетевым интерфейсам, находящимся в неактивном состоянии (‘down’), для того чтобы обеспечить приём пакетов сразу после того как сетевой интерфейс будет активирован.
  • В OpenSMTPD (smtpd) включена по умолчанию проверка TLS для исходящих подключений «smtps://» и «smtp+tls://».
  • В httpd реализована проверка версии протокола, добавлена возможность определения собственных файлов с текстами ошибок и улучшена обработка данных в сжатом виде, в том числе в httpd.conf добавлена опция gzip-static для доставки предварительно сжатых файлов с выставлением флага gzip в заголовке content-encoding.
  • В IPsec в параметре proto из iked.conf разрешено указание списка протоколов. В утилиту ikectl добавлена команда «show certinfo» для показа заслуживающих доверия удостоверяющих центров и сертификатов. В iked улучшена обработка фрагментированных сообщений.
  • В rpki-client добавлена поддержка проверки отрытых ключей BGPsec Router и улучшена проверка сертификатов X509. Добавлен кэш верифицированных файлов. Улучшена совместимость с RFC 6488.
  • bgpd добавлен параметр «port», который можно использовать в секциях «listen on» и «neighbor» для привязки к нестандартному номеру сетевого порта. Проведён рефакторинг кода для работы с RIB (Routing Information Base), выполненный с оглядкой на обеспечение в будущем поддержки multipath.
  • В консольном оконном менеджере tmux («terminal multiplexer») расширены возможности для цветного вывода. Добавлены команды pane-border-format, cursor-colour и cursor-style.
  • В LibreSSL выполнено портирование из OpenSSL поддержки RFC 3779 (расширения X.509 для IP-адресов и автономных систем) и механизма Certificate Transparency (независимый публичного лога всех выданных и отозванных сертификатов, который даёт возможность проводить независимый аудит всех изменений и действий удостоверяющих центров, и позволяет сразу отслеживать любые попытки скрытого создания поддельных записей). Значительно улучшена совместимость с OpenSSL 1.1 и задействованы идентичные с OpenSSL имена шифров для TLSv1.3. Многие функции переведены на использование calloc(). В libssl и libcrypto добавлена большая порция новых вызовов.
  • Обновлён пакет OpenSSH. Подробный обзор улучшений можно посмотреть в обзорах OpenSSH 8.9 и OpenSSH 9.0. Утилита scp переведена по умолчанию на использование SFTP вместо устаревшего протокола SCP/RCP.
  • Число портов для архитектуры AMD64 составило 11301 (было 11325), для aarch64 — 11081 (было 11034), для i386 — 10136 (было 10248). Среди версий приложений в портах:
     Asterisk 16.25.1, 18.11.1 и 19.3.1 Audacity 2.4.2 CMake 3.20.3 Chromium 100.0.4896.75 Emacs 27.2 FFmpeg 4.4.1 GCC 8.4.0 и 11.2.0 GNOME 41.5 Go 1.17.7 JDK 8u322, 11.0.14 и 17.0.2 KDE Applications 21.12.2 KDE Frameworks 5.91.0 Krita 5.0.2 LLVM/Clang 13.0.0 LibreOffice 7.3.2.2 Lua 5.1.5, 5.2.4 и 5.3.6 MariaDB 10.6.7 Mono 6.12.0.122 Firefox 99.0 и ESR 91.8.0 Thunderbird 91.8.0 Mutt 2.2.2 и NeoMutt 20211029 Node.js 16.14.2 OpenLDAP 2.4.59 PHP 7.4.28, 8.0.17 и 8.1.4 Postfix 3.5.14 PostgreSQL 14.2 Python 2.7.18, 3.8.13, 3.9.12 и 3.10.4 Qt 5.15.2 и 6.0.4 R 4.1.2 Ruby 2.7.5, 3.0.3 и 3.1.1 Rust 1.59.0 SQLite 2.8.17 и 3.38.2 Shotcut 21.10.31 Sudo 1.9.10 Suricata 6.0.4 Tcl/Tk 8.5.19 и 8.6.8 TeX Live 2021 Vim 8.2.4600 и Neovim 0.6.1 Xfce 4.16 
  • Обновлены компоненты от сторонних разработчиков, входящие в состав OpenBSD 7.1:
    • Графический стек Xenocara на базе X.Org 7.7 с xserver 1.21.1 + патчи, freetype 2.11.0, fontconfig 2.12.94, Mesa 21.3.7, xterm 369, xkeyboard-config 2.20, fonttosfnt 1.2.2.
    • LLVM/Clang 13.0.0 (+ патчи)
    • GCC 4.2.1 (+ патчи) и 3.3.6 (+ патчи)
    • Perl 5.32.1 (+ патчи)
    • NSD 4.4.0
    • Unbound 1.15.0
    • Ncurses 5.7
    • Binutils 2.17 (+ патчи)
    • Gdb 6.3 (+ патч )
    • Awk 12.10.2021
    • Expat 2.4.7

Источник.