Релиз операционной системы DragonFly BSD 5.8
3 марта 2020 года
Доступен релиз DragonFlyBSD 5.8, операционной системы с гибридным ядром, созданной в 2003 году с целью альтернативного развития ветки FreeBSD 4.x. Из особенностей DragonFly BSD можно выделить распределённую версионную файловую систему HAMMER, поддержку загрузки "виртуальных" ядер системы как пользовательских процессов, возможность кэширования данных и мета-данных ФС на SSD-накопителях, учитывающие контекст вариантные символические ссылки, возможность заморозки процессов с сохранением их состояния на диске, гибридное ядро, использующее легковесные потоки (LWKT).
Основные улучшения, добавленные в DragonFlyBSD 5.8:
- В основной состав включена утилита dsynth, предназначенная для локальной сборки и сопровождения собственных бинарных репозиториев DPort. Поддерживается распараллеливание сборки произвольного числа портов, учитывая дерево зависимостей. При подготовке нового выпуска в DPort также внесено большое число изменений, нацеленных на ускорение сборки нескольких зависимых пакетов.
- В libc реализован эффективный механизм маскирования сигналов, позволивший защитить malloc*() и подобные функции от проблем из-за их прерывания сигналом. Для краткосрочной блокировки и разблокировки сигналов предложены функции sigblockall() и sigunblockall(), работающие без совершения системных вызовов. Кроме того, в libc функция strtok() адаптирована для применения в многопоточных приложениях, добавлены константы TABDLY, TAB0, TAB3 и функция__errno_location для улучшения поддержки dports.
- Компоненты интерфейса DRM (Direct Rendering Manager) синхронизированы с ядром Linux 4.9 с портированием из ядра 4.12 отдельных возможностей, нацеленных на улучшение поддержки Wayland.
Драйвер drm/i915 для GPU Intel синхронизирован с ядром Linux 4.8.17 c переносом из ядра 5.4 кода для поддержки новых чипов (Skylake, Coffelake, Amber Lake, Whiskey Lake и Comet Lake). Драйвер drm/radeon для видеокарт AMD синхронизирован с ядром Linux 4.9.
- Значительно улучшены алгоритмы подкачки виртуальной памяти, позволившие избавиться или минимизировать проблемы с отзывчивостью в интерфейсе пользователя при нехватке памяти. Решены проблемы с подвисаниям Chrome/Chromium при недостатке системной памяти.
- Улучшено масштабирование ядра на системах с большим числом процессорных ядер. Сокращено время запроса страниц виртуальной памяти. Сокращена конкуренция SMP в условиях недостатка памяти. Увеличена эффективность вызова "open(... O_RDWR)".
- Переработан генератор псевдослучайных чисел в ядре. Драйвер RDRAND адаптирован для накопления энтропии от всех CPU. Снижена интенсивность
и размер подкормки RDRAND, на которую раньше уходило 2-3% времени CPU во время простоя.
- Добавлены новые системные вызовы realpath, getrandom и lwp_getname (позволил реализовать pthread_get_name_np).
- Добавлена поддержка механизмов защиты SMAP (Supervisor Mode Access Prevention) и SMEP (Supervisor Mode Execution Prevention). SMAP позволяет блокировать доступ к данным в пространстве пользователя из привилегированного кода, выполняемого на уровне ядра. SMEP не даёт переходить из режима ядра к выполнению кода, находящегося на пользовательском уровне, что позволяет блокировать эксплуатацию многих уязвимостей в ядре (shell-код не будет выполнен, так как он находится в пространстве пользователя);
- Переработаны sysctl-переменные для настройки Jail. Добавлена возможность монтирования nullfs и tmpfs из Jail.
- Добавлен аварийный режим работы файловой системы HAMMER2, который можно применять в процессе восстановления после сбоя. В данном режиме допускается разрушение снапшотов при обновлении inode по месту (позволяет удалять файлы и каталоги при отсутствии свободного дискового пространства, когда невозможно использовать механизм copy-on-write). Значительно повышена производительность, благодаря переработке поддержки диспетчеризации потоков в HAMMER2. Значительно улучшен процесс сброса буферов (flush).
- Повышена надёжность и производительность TMPFS. Увеличена эффективность работы в условиях нехватки свободной памяти в системе.
- В сетевом стеке для IPv4 реализована поддержка префиксов /31 ( RFC 3021).
В tap улучшена обработка ioctl SIOCSIFMTU для поддержки MTU > 1500. Добавлена поддержка SIOCSIFINFO_IN6 и SO_RERROR.
- C FreeBSD синхронизирован драйвер iwm с поддержкой беспроводных чипов Intel (добавлена поддержка iwm-9000 и iwm-9260).
- Добавлены совместимые с Linux функции basename() и dirname() для улучшения совместимости в портах.
- Из FreeBSD перенесены fsck_msdosfs, sys/ttydefaults.h, AF_INET / AF_INET6 в libc/getaddrinfo(), calendar(1), rcorder-visualize.sh. Из OpenBSD перенесены функции из math.h.
- Обновлены версии сторонних компонентов, в том числе Binutils 2.34, Openresolv 3.9.2, DHCPCD 8.1.3. По умолчанию используется компилятор gcc-8.
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.