Релиз операционной системы DragonFly BSD 5.6

Доступен релиз DragonFlyBSD 5.6, операционной системы с гибридным ядром, созданной в 2003 году с целью альтернативного развития ветки FreeBSD 4.x. Из особенностей DragonFly BSD можно выделить распределённую версионную файловую систему HAMMER, поддержку загрузки «виртуальных» ядер системы как пользовательских процессов, возможность кэширования данных и мета-данных ФС на SSD-накопителях, учитывающие контекст вариантные символические ссылки, возможность заморозки процессов с сохранением их состояния на диске, гибридное ядро, использующее легковесные потоки (LWKT).

Основные улучшения, добавленные в DragonFlyBSD 5.6:

  • Проведена модернизация системы управления виртуальной памятью. Переписаны многие подсистемы, связанные с виртуальной памятью и PMAP.
    Во многих местах код избавлен от блокировок, в том числе в функциях m_page_wakeup, vm_hold и vm_unhold. Повышена эффективность использования процессорного кэша за счёт сокращения миграция объектов VM между ядрами CPU и уменьшения накладных расходов при обработке исключений (page-fault) для совместно используемых областей памяти. Улучшен алгоритм выделения страниц памяти. Устранены задержки при работе функции vm_page_alloc(). Добавлен API vm_page_hash*(), позволяющий выполнять выборки без блокировок.

    В итоге удалось заметно поднять производительность. Например,
    в тесте buildkernel время выполнение операций на стороне ядра сократилось на 40%. Пропускная способность увеличилась на 7% при использовании CPU семейства Haswell и на 14% для Xeon. В тесте SELF-EXEC S/DI по сравнению с прошлым выпуском отмечается прирост производительности на 23% для Haswell и 18% для Xeon. В тесте
    SELF-EXEC S/SH соответственно 28% и 71%, в SELF-EXEC D/DI — 23% и 242% (за счёт улучшения работы многопоточности), в SELF-EXEC D/SH на 24% и 234%, в FAULTZF на 17% и 14%, в DOCOMP на 22% и 42%,
    в NATIVEKERNEL на 5.1% и 8.1%;

  • Значительно обновлён драйвер DRM и менеджер управления видеопамятью TTM для видеокарт AMD. Добавлена поддержка новых APU Ryzen. Улучшена поддержка фреймбуфера UEFI. В radeon/ttm устранена негативно влияющая на производительность взаимная блокировка. Проведён рафакторинг выставления задержек в процессе загрузки для избежания конфликта между драйвером i915 и X-сервером. Добавлен вызов DRM_IOCTL_GET_PCIINFO для улучшения поддержки mesa/libdrm. Устранены многие ошибки и недоработки;
  • Переписан код синхронизации в файловой системе HAMMER2, что позволило существенно повысить производительность данной ФС. Также увеличена производительность операций последовательной записи.
    Для повышения стойкости к крахам добавлено отслеживание зависимостей для исключения разделения каталогов/файлов в процессе выполнения операций создания, переименования или удаления. Переработан код работы со снапшотами для снижения задержек и гарантирования непротиворечивости снапшота. Улучшена обработка одновременных операций записи и сброса кэша на диск (flush). Улучшена реализация операции umount. Повышена информативность сообщений о нарушений целостности (CRC error).

    HAMMER2 рекомендуется в качестве корневой файловой системы по умолчанию. Поддержка кластеризации пока недоступна. ФС HAMMER2 примечательна такими функциями, как отдельное монтирование снапшотов, доступные на запись снапшоты, квоты на уровне директорий, инкрементальное зеркалирование, поддержка различных алгоритмов сжатия данных, multi-master зеркалирование с распределением данных на несколько хостов;

  • Добавлена начальная поддержка подсистемы FUSE для создания файловых систем в пространстве пользователя;
  • Увеличена производительность пакетного фильтра PF на многоядерных системах;
  • Реализована поддержка механизмов защиты SMAP (Supervisor Mode Access Prevention) и SMEP (Supervisor Mode Execution Prevention) при их поддержке в CPU. SMAP позволяет блокировать доступ к данным в пространстве пользователя из привилегированного кода, выполняемого на уровне ядра. SMEP не даёт переходить из режима ядра к выполнению кода, находящегося на пользовательском уровне, что позволяет блокировать эксплуатацию многих уязвимостей в ядре (shell-код не будет выполнен, так как он находится в пространстве пользователя);
  • Добавлен код для блокирования атак класса MDS (Microarchitectural Data Sampling) в процессорах Intel. Для работы требуется наличие обновлённого микрокода. По умолчанию защита отключена и включается через ‘sysctl machdep.mds_mitigation=MD_CLEAR’. Включение приводит к появлению дополнительной задержки на уровне 250ns при переключении контекста между пространством пользователя и ядра;
  • Ядро собрано по умолчанию с защитой retpoline от атак Spectre.
  • Многие утилиты из базовой системы переведены на использование LibreSSL;
  • Обновлены версии сторонних компонентов, в том числе xz 5.2.4,
    libarchive 3.3.3, libressl 2.9.1, openssh 8.0, ldns 1.7.0,
    libedit 2019-03-24. Из FreeBSD перенесены evdev, makefs, ministat, libfetch,
    dd. Из OpenBSD в libc перенесены вызовы reallocarray(), timing_safe*(), freezero(), dup3(), recallocarray(), aligned_alloc(),explicit_bzero(). По умолчанию для сборки вместо gcc-5 задействован компилятор gcc-8.

Источник: opennet.ru

Добавить комментарий