Релиз операционной системы DragonFly BSD 5.8
Доступен релиз 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 переносом из ядра 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.
Источник: http://www.opennet.ru/opennews/art.shtml? num=52473
© OpenNet