Выпуск OpenBSD 6.2
9 октября 2017 года
Представлен новый выпуск свободной, кросс-платформенной UNIX-подобной операционной системы OpenBSD 6.2. Проект OpenBSD был основан Тэо де Раадтом (Theo de Raadt) в 1995 году, после конфликта с разработчиками NetBSD, в результате которого для Тэо был закрыт доступ к CVS репозиторию NetBSD. После этого Тэо де Раадт с группой единомышленников создал на базе дерева исходных текстов NetBSD новую открытую операционную систему, главными целями развития которой стали переносимость ( поддерживается 13 аппаратных платформ), стандартизация, корректная работа, активная безопасность и интегрированные криптографические средства. Размер полного установочного ISO-образа базовой системы OpenBSD 6.2 составляет 340 Мб.
Кроме непосредственно операционной системы, проект 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-сервер.
Основные улучшения:
- Clang задействован по умолчанию в качестве компилятора для базовой системы и портов для архитектур amd64 и i386. Поддержка gcc4 сохранена, но теперь позиционируется как опция. Некоторые оптимизации clang отключены из-за возможного негативного влияния на безопасность;
- Задействована новая техника рандомизации адресного пространства ядра KARL (Kernel Address Randomized Link), нацеленная на усиление защиты от атак, связанных с манипуляцией структурами и кодом ядра. KARL позволяет изменить первичную раскладку виртуального адресного пространства ядра через выполнение операции перекомпоновки исполняемого файла ядра при каждой перезагрузке, формируя каждый раз уникальный экземпляр ядра, раскладка структур в котором заранее неизвестна;
- Добавлена реализация технологии защиты Trapsleds, усложняющей выполнение эксплоитов, использующих технику заимствования кусков кода (ROP, Return-Oriented Programming). Суть метода в применении для заполнения добавочных областей (используются для выравнивания блоков с кодом функций по 16-байтовой границе) инструкций INT3 вместо NOP. В случает выполнения эксплоита попадание на область заполнения на базе INT3 приведёт к возникновению исключения и остановке выполнения (SIGTRAP) вместо выполнения следующих за добавочным блоком инструкций;
- Обеспечена перекомпоновка библиотек libcrypto и ld.so при каждом перезапуске с расстановкой входящих в библиотеку объектов в случайном порядке;
- Процессы pflogd и tcpdump переведены на модель fork+exec;
- В процессах ifstated, at и snmpd задействован механизм изоляции pledge;
- Усилена защита, связанная с упаковкой структур и очисткой объектов ядра, перед их передачей в пространство пользователя;
- Ядро избавлено от глобальной блокировки (KERNEL_LOCK) при обработке входящих и транзитных пакетов, что положительно отразилось на производительности и привело к снижению задержек;
- С целью упрощения стека IPv6 в ядре прекращена поддержка автоконфигурации (IPv6 Stateless Address Autoconfiguration, RFC 4862). Данная возможность теперь реализуется на уровне пользователя процессом slaacd(8);
- В pf интегрирована поддержка алгоритма FQ-CoDel (Сontrolled Delay - управляемая задержка), позволяющего существенно поднять производительность работы в беспроводных сетях. В pf также добавлена возможность инспектирования пакетов AH (IP Authentication Header, RFC 4302) и проверки инкапсулированного в них протокола;
- В системе распределения памяти для обработки сетевых пакетов реализованы отдельные кэши для каждого ядра CPU;
- Улучшения в системе виртуализации VMM: В утилиту vmctl добавлена возможность миграции приостановленных виртуальных машин и манипуляции снапшотами памяти виртуальных окружений; В гостевых системах обеспечена поддержка доступа к инструкциям AVX/AVX2 CPU; Добавлена поддержка AMD SVM/RVI. Размер памяти виртуальных окружений увеличен до 32GB на системах amd64. Внесена большая порция улучшений в код эмуляции устройств;
- Улучшения в инсталляторе: осуществлён переход на Allotment Routing Table (ART), реализована генерация уникального образа ядра, обеспечен запуск скриптов install.site и upgrade.site после завершения установки и обновления, расширена выводимая информация о дисках, на системах amd64 задействовано расширение AES-NI;
- Представлена новая функция freezero, выполняющая операцию освобождение памяти с обнулением содержимого;
- Добавлен новый системный вызов futex;
- В библиотеке pthread представлена новая реализация mutex и условных переменных (condition variable), позволяющая увеличить отзывчивость многопоточных приложений;
- Добавлена собственная реализация POSIX xlocale;
- В функции malloc при указании опции "F" улучшено определение случаев двойного освобождения одного блока памяти;
- Включен автоматический переход в спящий режим при низком заряде аккумулятора;
- Добавлены утилиты ctfdump и ctfconv для манипуляции файлами в формате CTF (Compact C Type Format);
- Добавлена система трассировки процессов fktrace(недоступная ссылка);
- В беспроводном стеке теперь отдаётся предпочтения частоте 5GHz, а не 2GHz, в процессе выбора точки доступа;
- В rtadvd добавлена поддержка рекомендаций по снижению энергопотребления RFC 7772 ("Reducing Energy Consumption of Router Advertisements");
- В утилиту nc добавлены опции: "-W recvlimit" для завершения работы после получения заданного числа пакетов, "-T tlscompat" для включения TLS-протоколов из категории "compat" в libtls, "-Z" для сохранения сертификата удалённого хоста в формате PEM;
- В bgpd обеспечена поддержка виртуальных маршрутизаторов через запуск своего экземпляра bgpd для каждого домена маршрутизации;
- В dhcpd добавлена поддержка выражения echo-client-id и обеспечена обработка сообщений DHCPINFORM от клиентов на другой стороне DHCP-шлюза;
- Обновлена версия почтового сервера OpenSMTPD, в которой устранена утечка файловых дескрипторов, прекращена поддержка синтаксиса "listen secure" и удалена поддержка фильтров (позиционировались как экспериментальная возможность);
- Обновлён пакет OpenSSH 7.6, подробный обзор улучшений можно посмотреть здесь;
- Обновлён пакет LibreSSL, подробный обзор улучшений можно посмотреть в анонсах выпусков 2.6.0 и 2.6.1;
- Число портов для архитектуры AMD64 составило 9728 , для i386 - 9685. Из находящихся в портах приложений, отмечены:
- CMake 3.9.3
- Chromium 61.0.3163.100
- GCC 4.9.4
- GNOME 3.24.2
- Go 1.9
- JDK 8u144
- KDE 3.5.10 и 4.14.3;
- LLVM/Clang 5.0.0
- LibreOffice 5.2.7.2
- Lua 5.1.5, 5.2.4, and 5.3.4
- MariaDB 10.0.32
- Mozilla Firefox 52.4.0esr и 56.0.0
- Mozilla Thunderbird 52.2.1
- Node.js 6.11.2
- OpenLDAP 2.3.43 и 2.4.45
- PHP 5.6.31 и 7.0.23
- Postfix 3.2.2 и 3.3-20170910
- PostgreSQL 9.6.5
- Python 2.7.14 и 3.6.2
- Ruby 1.8.7.374, 2.1.9, 2.2.8, 2.3.5 и 2.4.2
- Rust 1.20.0
- Sendmail 8.16.0.21
- SQLite3 3.20.1
- Vim 8.0.0987
- Xfce 4.12
- Компоненты от сторонних разработчиков, входящие в состав OpenBSD 6.2:
- Графический стек Xenocara на базе X.Org server 1.18.4 с патчами, freetype 2.8.0, fontconfig 2.12.4, Mesa 13.0.6, xterm 330, xkeyboard-config 2.20 и т.п.)
- LLVM/Clang 4.0.0 (c патчами)
- GСС 4.2.1 (c патчами) и 3.3.6 (c патчами)
- Perl 5.24.2 (c патчами)
- NSD 4.1.175
- Unbound 1.6.6
- Ncurses 5.7
- Binutils 2.17 (c патчами)
- Gdb 6.3 (c патчами)
- Awk в версии от 10 августа 2011 г.
- Expat 2.1.4
- Расширена поддержка оборудования: Значительно расширено число драйверов для платформы ARM; Добавлен драйвер hvs для хранилища Hyper-V. Добавлена поддержка беспроводных карт на базе чипов Intel 8265 и 3168, RTL8192CE, RT5360 и RTS525A. Драйвер для GPU Intel (inteldrm) обновлён до состояния драйвере из ядра Linux 4.4.70 и теперь включает поддержку графических подсистем чипов Skylake, Kaby Lake и Cherryview, а также улучшенную поддержку Broadwell и Valleyview.
Источники
[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.