релиз , операционна система с хибридно ядро, през 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’. Включването води до допълнително закъснение на ниво 250ns при превключване на контекста между пространството на потребителя и ядрото;
- Ядрото е компилирано по подразбиране с защита 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. Пренесени са evdev, makefs, ministat, libfetch от FreeBSD,
dd. От OpenBSD в libc са пренесени викателните reallocarray(), timing_safe*(), freezero(), dup3(), recallocarray(), aligned_alloc(), explicit_bzero(). За компилация по подразбиране вместо gcc-5 е активиран компилаторът gcc-8.
Източник: opennet.ru
