релиз , операционна система с хибридно ядро, през 2003 година с цел алтернативно развитие на клон на FreeBSD 4.x. Сред характеристиките на DragonFly BSD могат да бъдат подчертани разпределената версионна файлова система , поддръжка на зареждане на „виртуални“ ядра на системата като потребителски процеси, възможност за кеширане на данни и метаданни на файловата система на SSD устройства, отчитащи контекста варианти на символичните линкове, възможност за замразяване на процеси с запазване на тяхното състояние на диска, хибридно ядро, използващо леки потоци (LWKT).
Основни , добавени в DragonFlyBSD 5.8:
- В основната система е включен инструментът , предназначен за локално изграждане и поддръжка на собствени бинарни репозитории 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, който може да бъде приложен по време на възстановяване след срив. В този режим е позволено унищожаване на снимки (snapshots) при актуализация на inode на място (позволява изтриване на файлове и директории при липса на свободно дисково пространство, когато механизмът copy-on-write не може да се използва). Значително е повишена производителността благодарение на преработката на поддръжката за диспетчеризация на потоците в HAMMER2. Значително подобрен е процесът на изтриване на буфери (flush).
- Повишена е надеждността и производителността на TMPFS. Увеличена е ефективността на работа при недостиг на свободна памет в системата.
- В мрежовия стек за IPv4 е реализирана поддръжка на префикси /31 ().
В tap е подобрена обработката на ioctl SIOCSIFMTU за поддръжка на MTU > 1500. Добавена е поддръжка на SIOCSIFINFO_IN6 и SO_RERROR. - С 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.
Източник: opennet.ru
