uvolnění , operační systém s hybridním jádrem, v roce 2003 s cílem poskytnout alternativní vývojovou větev pro FreeBSD 4.x. Mezi vlastnosti DragonFly BSD patří jeho distribuovaný verzovaný souborový systém. , podpora načítání „virtuálních“ systémových jader jako uživatelských procesů, možnost ukládání dat a metadat souborového systému do mezipaměti na SSD discích, kontextově orientované variantní symbolické odkazy, možnost zmrazit procesy při zachování jejich stavu na disku, hybridní jádro využívající lehká vlákna (LWKT).
hlavní , přidáno v DragonFlyBSD 5.6:
- Systém správy virtuální paměti byl modernizován. Mnoho subsystémů souvisejících s virtuální pamětí a PMAP bylo přepsáno.
Kód byl na mnoha místech odblokován, včetně funkcí m_page_wakeup, vm_hold a vm_unhold. Efektivita mezipaměti CPU byla vylepšena snížením migrace objektů virtuálních strojů mezi jádry CPU a snížením režie zpracování chyb stránek pro oblasti sdílené paměti. Byl vylepšen algoritmus alokace stránek paměti. Byla odstraněna zpoždění ve funkci vm_page_alloc(). Bylo přidáno API vm_page_hash*(), které umožňuje výběr bez uzamčení.V důsledku toho bylo možné znatelně . Například,
V testu buildkernel se doba provádění na straně jádra zkrátila o 40 %. Šířka pásma se zvýšila o 7 % při použití procesorů Haswell a o 14 % u Xeonu. V testu SELF-EXEC S/DI se výkon ve srovnání s předchozí verzí zvýšil o 23 % u Haswellu a o 18 % u Xeonu.
SELF-EXEC S/SH o 28 % a 71 %, v SELF-EXEC D/DI o 23 % a 242 % (díky vylepšenému multithreadingu), v SELF-EXEC D/SH o 24 % a 234 %, v FAULTZF o 17 % a 14 %, v DOCOMP o 22 % a 42 %.
v NATIVEKERNEL o 5.1 % a 8.1 %; - Ovladač DRM a správce videopaměti TTM pro grafické karty AMD byly významně aktualizovány. Byla přidána podpora pro nové procesory Ryzen APU. Byla vylepšena podpora UEFI framebufferu. V radeon/ttm byl odstraněn deadlock, který negativně ovlivňoval výkon. Nastavení zpoždění spouštění bylo přepracováno, aby se předešlo konfliktům mezi ovladačem i915 a X serverem. Bylo přidáno volání DRM_IOCTL_GET_PCIINFO pro zlepšení podpory mesa/libdrm. Byla opravena řada chyb a nedostatků.
- Synchronizační kód v souborovém systému HAMMER2 byl přepsán, což výrazně zlepšilo jeho výkon. Zlepšil se také výkon sekvenčního zápisu.
Pro zlepšení odolnosti proti pádům bylo přidáno sledování závislostí, které zabraňuje rozdělení adresářů/souborů během operací vytváření, přejmenování nebo mazání. Zpracování snímků bylo přepracováno pro snížení latence a zajištění konzistence snímků. Bylo vylepšeno zpracování simultánních zápisů a vyprazdňování mezipaměti. Byla vylepšena operace umount. Chybové zprávy o narušení integrity (CRC) byly nyní informativnější.Jako výchozí kořenový souborový systém se doporučuje HAMMER2. Podpora clusteringu zatím není k dispozici. Mezi funkce souborového systému HAMMER2 patří samostatné připojování snapshotů, zapisovatelné snapshoty, kvóty na úrovni adresářů, inkrementální zrcadlení, podpora různých algoritmů pro kompresi dat a zrcadlení více masterů s distribucí dat mezi více hostitelů.
- Přidána počáteční podpora pro subsystém FUSE pro vytváření souborových systémů v uživatelském prostoru;
- Vylepšený výkon filtru paketů PF na vícejádrových systémech;
- Podpora ochranných mechanismů SMAP (Supervisor Mode Access Prevention) a SMEP (Supervisor Mode Execution Prevention) je implementována, pokud je podporována procesorem. SMAP blokuje přístup k datům v uživatelském prostoru pro privilegovaný kód běžící na úrovni jádra. SMEP zabraňuje přechodu z režimu jádra do provádění kódu na uživatelské úrovni, což pomáhá blokovat zneužití mnoha zranitelností jádra (shellový kód nebude spuštěn, protože se nachází v uživatelském prostoru).
- Přidán blokovací kód Třída MDS (Microarchitectural Data Sampling) v procesorech Intel. Tato funkce vyžaduje aktualizovaný mikrokód. Ve výchozím nastavení je ochrana zakázána a lze ji povolit pomocí příkazu 'sysctl machdep.mds_mitigation=MD_CLEAR'. Povolení této funkce zavádí dodatečné zpoždění 250 ns při přepínání kontextu mezi uživatelským prostorem a prostorem jádra.
- Jádro je standardně kompilováno s ochranou retpoline proti útokům Spectre.
- Mnoho utilit ze základního systému bylo převedeno na používání LibreSSL;
- Aktualizované verze komponent třetích stran, včetně xz 5.2.4,
libarchive 3.3.3, libressl 2.9.1, openssh 8.0, ldns 1.7.0,
libedit 24. 03. 2019. evdev, makefs, ministat a libfetch byly portovány z FreeBSD.
Volání funkcí reallocarray(), timing_safe*(), freezero(), dup3(), recallocaray(), aligned_alloc() a explicit_bzero() byla portována z OpenBSD do libc. Ve výchozím nastavení se pro sestavení používá kompilátor gcc-8 místo gcc-5.
Zdroj: opennet.ru
