Релиз операционной системы 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 зеркалирование с распределением данных на несколько хостов;

  • Обновлены версии сторонних компонентов, в том числе xz 5.2.4, libarchive 3.3.3, libressl 2.9.1, openssh 8.0, ldns 1.7.0, libedit 2019–03–24. Из FreeBSD перенесены makefs, ministat, libfetch, dd. Из OpenBSD в libc перенесён вызов reallocarray (). По умолчанию для сборки вместо gcc-5 задействован компилятор gcc-8;

© OpenNet