релиз , операционна система с хибридно ядро, през 2003 година с цел алтернативно развитие на клон FreeBSD 4.x. От особеностите на DragonFly BSD може да се открои разпределената версионна файлова система , поддръжка на зареждане на "виртуални" ядра на системата като потребителски процеси, възможност за кеширане на данни и метаданни на файловата система на 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 зеркалиране с разпределение на данни на няколко хоста;
- Добавена е начална поддръжка на подсистемата FUSE за създаване на файлови системи в пространството на потребителя;
- Производителността на пакетния филтър PF в многоядрени системи е увеличена;
- Реализирана е поддръжка на механизмите за защита SMAP (Supervisor Mode Access Prevention) и SMEP (Supervisor Mode Execution Prevention) при тяхната поддръжка в CPU. SMAP позволява блокиране на достъпа до данни в пространството на потребителя от привилегирован код, изпълняван на ниво ядро. SMEP не позволява преминаване от режим на ядро към изпълнение на код, находящ се на потребителско ниво, което блокира експлоатацията на много уязвимости в ядрото (shell кодът няма да бъде изпълнен, тъй като се намира в пространството на потребителя);
- Добавен е код за блокиране на класа MDS (Microarchitectural Data Sampling) в процесорите на Intel. За работа е необходимо обновен микрокод. По подразбиране защитата е отключена и може да се включи чрез ‘sysctl machdep.mds_mitigation=MD_CLEAR’. Включването води до допълнителна забавяне от около 250нс при превключване на контекста между пространството на потребителя и ядрото;
- Ядро е компилирано по подразбиране с защита retpoline от атаки Spectre.
- Много утилити от основната система са преведени да използват LibreSSL;
- Актуализирани версии на странични компоненти, включително xz 5.2.4,
libarchive 3.3.3, libressl 2.9.1, openssh 8.0, ldns 1.7.0,
libedit 2019-03-24. От FreeBSD са пренесени evdev, makefs, ministat, libfetch,
dd. От OpenBSD в libc са пренесени повикванията reallocarray(), timing_safe*(), freezero(), dup3(), recallocarray(), aligned_alloc(), explicit_bzero(). По подразбиране за компилация вместо gcc-5 е активиран компилатор gcc-8.
Източник: opennet.ru
