Выпуск OpenBSD 6.1


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

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

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

-Добавлена поддержка новой платформы ARM64 и основанных на ней плат Pine64, Raspberry Pi 3 и Opteron A1100. В качестве системного компилятора на ARM64 используется Clang;
-Значительно улучшена поддержка платформы ARMv7, в том числе осуществлён переход на EABI и расширен спектр поддерживаемых плат;
-Для платформы loongson обеспечена поддержка систем с процессорами Loongson 3A и чипсетом RS780E;
-Прекращена поддержка платформ armish, sparc и zaurus.
-Представлена новая утилита syspatch, позволяющая выполнить бинарное обновление базовой системы. Бинарные обновления пока формируются только для stable-веток amd64 и i386;
-В состав включена утилита acme-client, представляющая собой вариант штатного клиента для работы с сертификатами Let's Encrypt, расширенного средствами для разделения привилегий;
-Для архитектур amd64 и i386 включён по умолчанию гипервизор VMM, который развивается командой OpenBSD, учитывает в своей работе технические особенности данной ОС и акцентирует первоочередное внимание на вещах, которым в других системах не уделяется должного внимания. Например, VMM может работать на системах i386, использует механизм теневых страниц (shadow paging), развивает средства вложенной виртуализации и обеспечивает поддержку устаревших периферийных устройств. Поддерживается запуск виртуальных окружений с любыми операционными системами для которых имеются драйверы virtio, т.е. все системы, которые поддерживаются в KVM. Для работы гипервизора требуется наличие процессора AMD или Intel, поддерживающего расширения аппаратной виртуализации AMD-V/SVM (Secure Virtual Machine) или VT-x/VMX (Virtual Machine eXtensions). Поддержка расширений RVI (Rapid Virtualization Indexing) и EPT (Extended Page Table) не обязательна, вместо них может применяться программная техника изоляции страниц памяти виртуальных окружений.
-В основной состав включены компоненты LLVM и компилятор Clang (импортирован выпуск LLVM 4.0);
-Значительно улучшены средства для работы на многопроцессорных системах, проведена оптимизация сетевого стека. В сетевом стеке полностью переработана система блокировок и обработки прерываний, что позволило заметно поднять его производительность на многопроцессорных системах;
-В сетевом стеке представлено новое псевдоустройство switch для создания программных коммутаторов на базе протокола OpenFlow 1.3. В псевдо-устройство gre добавлена поддержка режима mobileip. В vxlan добавлена поддержка режима Multipoint-to-multipoint. Для сокетов listen добавлена поддержка флага TCP_NOPUSH;
-Модернизирован инсталлятор. Загрузка и проверка установочных наборов теперь выполняется отдельным обработчиком с разделением привилегий. Для загрузки установочных наборов по умолчанию используется HTTPS;
-В iked добавлена возможность отправки ответов на IKEv2 cookies, а также поддержка ECDSA и аутинтификации по цифровым подписям RFC 7427;
-В bgpd(8) добавлена поддержка BGP Large Communities (RFC 8092) и BGP Administrative Shutdown Communication (draft-ietf-idr-shutdown);
-В состав включен новый дисплейный менеджер xenodm (X Display Manager), предоставляющий средства для управления графическими сеансами, подключенными к разным X-серверам (форк xdm).
-Внесена большая порция улучшений в беспроводной стек IEEE 802.11. В драйвере ral появилась поддержка чипов Ralink RT3900E (RT5390, RT3292).
-Добавлена реализация алгоритма MiRa для адаптивной установки полосы пропускания в 802.11n. В драйверы iwm и athn добавлена поддержка 802.11n MIMO. Из-за недостаточной защищённости по умолчанию отключена поддержка протоколов TKIP/WPA1;
-Во всех разделяемых библиотеках, динамически и статически скомпонованных исполняемых файлах PIE и компоновщике ld.so задействован механизм RELRO (RElocation Read-Only, позволяет предотвратить перезапись глобальной таблицы смещений GOT);
-В syslogd добавлена возможность проверки TLS-соединения по клиентскому сертификату;
-Добавлена новая функция распределения памяти recallocarray(), которая отличается тем, что производит очистку содержимого выделяемых блоков памяти, по аналогии с calloc(), а также обнуляет или отдаёт системе (unmap) не распределённые блоки памяти;
-В системную библиотеку libc добавлено семейство функций для работы с хэшами SHA512_256;
-В функциях форматирования строки printf обеспечен вывод предупреждений в лог при использовании модификатора "%s" с нулевым указателем;
-В malloc(3) расширены механизмы для определения переполнений буферов. Увеличена производительность семейства функций malloc в многопоточных приложениях;
-Удалена поддержка монтирования файловых систем непривилегированными пользователями;
-Для доставки ключей к шифрованным разделам softraid в bioctl задействован bcrypt PBKDF. В softraid реализовано распараллеливание операций при перестроении RAID5;
-В httpd добавлена поддержка SNI, позволяющая привязывать несколько разных HTTPS-сайтов к одному IP, а также возможность возобновления сеансов TLS при помощи TLS session tickets.
-В dhclient, dhcpd и dhcrelay добавлена поддержка RFC 6842 (Client Identifier Option in DHCP Server Replies) и обеспечен запрос опций DHO_BOOTFILE_NAME и DHO_TFTP_SERVER по умолчанию;
-Обновлена версия почтового сервера OpenSMTPD, в котором добавлена поддержка альтернативных разделителей адресов, улучшен код для работы с вводом/выводом, добавлена поддержка выделения аутентифицированных сеансов в наборах правил;
-Обновлён пакет OpenSSH 7.4, подробный обзор улучшений можно посмотреть здесь;
-Обновлён пакет LibreSSL, подробный обзор улучшений можно посмотреть в анонсах выпусков 2.5.0, 2.5.1 и 2.5.2;
-Число портов для архитектуры AMD64 составило 9714, для i386 - 9697. Из находящихся в портах приложений, отмечены:
-Chromium 57.0.2987.133
-Emacs 21.4 и 25.1
-GCC 4.9.4
-Gimp 2.8.18
-GNOME 3.22.2
-Go 1.8
-JDK 7u80 и 8u121
-KDE 3.5.10 и 4.14.3
-LLVM/Clang 4.0.0
-LibreOffice 5.2.4.2
-Lua 5.1.5, 5.2.4 и 5.3.4
-MariaDB 10.0.30
-Mono 4.6.2.6
-Mozilla Firefox 52.0.2esr и 52.0.2
-Mozilla Thunderbird 45.8.0
-Node.js 6.10.1
-OpenLDAP 2.3.43 и 2.4.44
-PHP 5.5.38, 5.6.30 и 7.0.16
-Postfix 3.2.0 и 3.3-20170218
-PostgreSQL 9.6.2
-Python 2.7.13, 3.4.5, 3.5.2 и 3.6.0
-Ruby 1.8.7.374, 2.1.9, 2.2.6, 2.3.3 и 2.4.1
-Rust 1.16.0
-Sendmail 8.15.2
-SQLite3 3.17.0
-Vim 8.0.0388
-Xfce 4.12
-Компоненты от сторонних разработчиков, входящие в состав OpenBSD 6.1:
-Графический стек Xenocara на базе X.Org server 1.18.3 с патчами, freetype 2.7.1, fontconfig 2.12.1, Mesa 13.0.6, xterm 327, xkeyboard-config 2.20 и т.п.)
LLVM/Clang 4.0.0 (c патчами)
Gcc 4.2.1 (c патчами) и 3.3.6 (c патчами)
-Perl 5.24.1 (c патчами)
-NSD 4.1.15
-Unbound 1.6.1
-Ncurses 5.7
-Binutils 2.17 (c патчами)
-Gdb 6.3 (c патчами)
-Awk в версии от 10 августа 2011 г.
-Expat 2.1.1
Улучшения драйверов:
-Добавлен драйвер acpials(4) для ACPI-сенсоров света и подсветки.
-Добавлен драйвер acpihve(4) для поддержки добавочной энтропии Hyper-V.
-Добавлен драйвер dwge(4) для поддержки сетевых карт Designware GMAC 10/100/Gigabit Ethernet.

-Добавлен драйвер htb(4) для PCI-мостов Loongson 3A.
-Добавлен драйвер hvn(4) для сетевых интерфейсов Hyper-V.
-Добавлен драйвер hyperv(4) для работы OpenBSD в качестве гостя Hyper-V.
-Добавлен драйвер iatp(4) для Atmel maXTouch тач-скрина.
-Добавлен драйвер imxtemp(4) для поддержки температурных датчиков Freescale i.MX6.
-Добавлен драйвер leioc(4) для низкоуровневого контроллера ввода-вывода Loongson 3A.
-Добавлен драйвер octmmc(4) для MMC-контроллера OCTEON.
-Добавлен драйвер ompinmux(4) для мультиплексирования контактов OMAP.
-Добавлен драйвер psci(4) для ARM-интерфейса состояний энергосбережения.
-Добавлен драйвер simplefb(4) для работы фреймбуфера, использующего device-tree.
-Добавлен драйвер sximmc(4) для поддержки MMC/SD/SDIO контроллеров Allwinner A1X/A20.
-Добавлен драйвер tpm(4) для поддержки TPM-устройств.
-Добавлен драйвер uwacom(4) для поддержки USB-планшетов Wacom.
-Добавлен драйвер xbf(4) для виртуальных дисков Xen Blkfront.
-Добавлен драйвер xp(4) для со-процессора ввода-вывода LUNA-88K HD647180X.
-Добавлен интерфейс для управления гипервизором VMM vmmci(4).
-В драйвер em(4) добавлена поддержка Kaby Lake и Lewisburg PCH Ethernet.
В драйвер ure(4) добавлена поддержка устройств на основе RTL8153 USB 3.0 Gigabit Ethernet .
-Улучшена поддержка ACPI для современной техники Apple, включая S3-сон и восстановление из сна.
-В драйвере ix(4) добавлена поддержка устройств 10 Gigabit Ethernet семейства X550 .
-К выходу релиза приурочена новая песня "Winter of 95" (пока недоступна, ожидается 25 апреля).