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

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

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

  • Продолжена работа над файловой системой HAMMER2, которая примечательна такими функциями, как отдельное монтирование снапшотов, доступные на запись снапшоты, квоты на уровне директорий, инкрементальное зеркалирование, поддержка различных алгоритмов сжатия данных, multi-master зеркалирование с распределением данных на несколько хостов. В новом выпуске устранено несколько серьёзных ошибок, среди которых проблема, которая могла привести к повреждению данных при монтировании нескольких PFS (Psuedo File-System), и ошибка, приводящая к задержке фактического удаления некоторых файлов до отмонтирования.
  • В системном вызове mlockall() реализована поддержка режима MCL_CURRENT, позволяющего заблокировать все отражённые в адресное пространство страницы памяти процесса для предотвращения их вытеснения в раздел подкачки.
  • Из FreeBSD перенесена реализация функции gtaskqueue().
  • Повышена производительность функций nlookup*().
  • Повышена производительность файловой системы tmpfs.
  • В ext2fs реализована более точная проверка корневого inode и элементов каталогов.
  • Добавлена поддержка Wi-Fi-адаптера Edimax EW-7811Un V2 (N150).
  • Для jail sysctl net_raw_sockets переименован в allow_raw_sockets.
  • В интерфейсе DRM (Direct Rendering Manager) решена проблема с аварийным завершением работы сервера X.org при подключении или отключении мониторов. В evdev улучшена совместимость с новым кодом X-сервера.
  • В утилиту makefs добавлена поддержка ФС HAMMER2.
  • В утилиту date добавлен флаг “-I” для вывода в формате ISO 8601.
  • В /bin/sh реализована возможность корректной записи в файловые дескрипторы, работающие в неблокирующем режиме, что решило проблему с записью в работающие в неблокирующем режиме неименованные каналы, буфер которых оказался заполненным.
  • В libc размер буфера для opendir/readdir увеличен с 4 до 16 КБ. Добавлена функция strerror_l(). В printf() и scanf() добавлены модификаторы размера “ll” и “L”.
  • В libkern из FreeBSD перенесён код функции timingsafe_bcmp().
  • В утилите dsynth, предназначенной для локальной сборки и сопровождения бинарных репозиториев DPort, осуществлён переход по умолчанию на вторую версию метаданных. Добавлены директивы ‘add’ (добавление дополнительного порта для сборки), “fetch-only” и “list-system”. В файл конфигурации добавлена настройка ‘Check_plist’ (аналог опции “-P”).
  • Обновлены версии сторонних компонентов:
    awk 20220912,
    bmake 20220928,
    byacc 20221106,
    dialog 1.3-20220728,
    expat 2.5.0,
    file 5.43,
    ldns 1.8.3,
    less 608,
    libarchive 3.6.1,
    libedit 2022-10-30,
    libpcap 1.10.1,
    tcpdump 4.99.1,
    LibreSSL 3.6.1,
    OpenSSH 9.1p1,
    TCSH 6.24.02,
    TNFTP 2021082,
    libarchive 3.6.1.
Release. Ссылка here.