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

27.03.2017 19:20

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

Из наиболее существенных новшеств DragonFlyBSD 4.8 отмечается заметное увеличение производительности ядра, поддержка EFI в инсталляторе, новые драйверы NVMe и eMMC, обновление графических драйверов для GPU Intel, переход на LibreSSL.

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

  • В ядре проведена оптимизация, нацеленная на локализацию использования кэша CPU - уменьшение миграции кода между ядрами привело к повышению эффективности кэширования и повышению производительности. При работе с кэшем имён в VFS и выполнении вызовов exec() выигрыш может достигать 30%. В реальных задачах, например, при выполнении массовой пересборки на многоядерных системах, наблюдается увеличение производительности в среднем на 5%. Оптимизации также затронули и сетевой стек, в котором улучшена масштабируемость на многоядерных системах;
  • Включён по умолчанию новый высокопроизводительный драйвер для твердотельных накопителей (SSD), соответствующих спецификации NVMe (PCIe SSD). Драйвер поддерживает предоставляемые контроллерами NVMe средства для распараллеливания операций и распределения выполнения обработчиков прерываний и очередей на несколько CPU;
  • Добавлен параметр ядра vfs.repurpose_enable, позволяющий существенно сократить нагрузку от VM и IPI (inter-processor interrupt) в конфигурациях с большой интенсивностью файлового ввода/вывода за счёт обхода нормального механизма повторного использования виртуальных страниц памяти при высокой нагрузке;
  • В инсталлятор добавлена возможность установки на системах с EFI. Поддержка EFI добавлена в ядро и некоторые системные утилиты. Раздел /boot теперь может быть размещён на отдельном GPT-разделе или как DragonFly disklabel внутри GPT-раздела. По умолчанию GPT-разделы создаются для всех разделов DragonFly, и на них используется DragonFly disklabel, т.е. имена разделов назначаются как раньше;
  • Обновлён drm-драйвер i915, предоставляющий интерфейс для управления видеокартами Intel на уровне ядра (KMS). Код драйвера i915 синхронизирован с ядром Linux 4.6 (в прошлом выпуске 4.4). Улучшена поддержка графических подсистем, используемых в процессорах на базе микроархитектур Broadwell и Skylake;
  • Добавлена поддержка загрузки с накопителей eMMC;
  • Добавлена возможность настройки загрузки модулей ядра, обеспечивающих поддержку файловых систем, не применяемых при загрузке, через rc.conf, вместо loader.conf;
  • Обеспечена и включена по умолчанию сборка ядра с применением в компиляторе режима оптимизации "-O2";
  • Виртуализированные ядра vkernel, запускаемые как пользовательский процесс, переведены на использование механизма COW (Copy On Write), что позволило организовать совместное использования одного и того же дискового образа для запуска нескольких окружений;
  • В powerd добавлены средства управления, учитывающие данные с датчиков температуры. Например, теперь можно настроить принудительное понижение частоты при выходе температуры за допустимую границу, чтобы избежать проблем на компьютерах с некачественной или нерабочей системой охлаждения;
  • Реализован лимит RLIMIT_RSS, позволяющий ограничить размер потребляемых процессом RSS страниц памяти;
  • Расширен максимальный размер файла подкачки, который теперь может составлять до десятков терабайт. Параметр KVM в ядре увеличен с 128G до 511G;
  • Добавлена поддержка pmap динамического удаления pmap, позволяющая на лету удалять из pmap промежуточные страницы памяти и PD;
  • Пересмотрена организация работы уровней 'nice'. Изменение значений nice теперь более заметно влияет на приоритет выполнения задачи;
  • С целью упрощения портирования реализован специфичный для Linux API i2c;
  • Уделены старые драйверы ISA, так как они потеряли смысл после ограничения работы DragonFly BSD только на 64-разрядных системах. В дальнйшем чистка старых драйверов будет продолжена;
  • Компоненты базовой системы переведены по умолчанию на использование библиотек libssl.so и libcrypto.so из пакета LibreSSL вместо OpenSSL;
  • В состав включён новый высокопроизводительный редактор связей Gold (Google ld), примечательный поддержкой оптимизаций на этапе связывания (LTO) и значительно более высокой производительности компоновки (в 5 раз быстрее стандартного ld);
  • Компилятор в базовой системе обновлён до GCC 5.4.1. Набор binutils обновлён до версии 2.25;
  • Внесена порция исправлений для файловой системы HAMMER1, но в релиз не вошла ранее тестируемая более быстрая реализация алгоритма расчёта контрольных сумм, которая отложена до следующего выпуска. Обновлённый вариант ФС HAMMER2 пока не вышел из стадии текстирования. ФС HAMMER2 примечательна такими функциями, как отдельное монтирование снапшотов, доступные на запись снапшоты, квоты на уровне директорий, инкрементальное зеркалирование, поддержка различных алгоритмов сжатия данных, multi-master зеркалирование с распределением данных на несколько хостов;
  • Представлен начальный инструментарий для использования Clang в качестве альтернативного компилятора, вместо GCC. Работа над данной возможностью пока не завершена, но Clang отдельно может быть установлен из пакетов.