реліз , операційної системи з гібридним ядром, 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*(), що дозволяє виконувати вибірки без блокувань.У результаті вдалося помітно . наприклад,
У тесті збудуваннякерлового часу виконання операцій на стороні ядра скоротилося на 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. З FreeBSD перенесені evdev, makefs, ministat, libfetch,
dd. З OpenBSD в libc перенесені виклики reallocarray(), timing_safe*(), freezero(), dup3(), recallocarray(), aligned_alloc(),explicit_bzero(). За замовчуванням для складання замість gcc-5 задіяно компілятор gcc-8.
Джерело: opennet.ru
