vydání , operačního systému s hybridním jádrem, v roce 2003 s cílem alternativního rozvoje větve FreeBSD 4.x. Mezi zvláštnostmi DragonFly BSD lze vyzdvihnout distribuovaný verzionovací souborový systém , podporu zavádění „virtuálních“ jader systému jako uživatelských procesů, možnost ukládání dat a metadat FS na SSD discích, zohledňující kontextové variantní symbolické odkazy, možnost zmrazení procesů se zachováním jejich stavu na disku, hybridní jádro využívající lehké proudy (LWKT).
Hlavní , přidané v DragonFlyBSD 5.8:
- Do hlavního sestavení byla zařazena utilita , určená pro místní stavbu a údržbu vlastních binárních repozitářů DPort. Podporuje paralelizaci stavby libovolného počtu portů, s ohledem na strom závislosti. Při přípravě nového vydání v DPort byly také provedeny četné změny zaměřené na zrychlení stavby několika závislých balíčků.
- V libc byl implementován efektivní mechanismus maskování signálů, který ochránil malloc*() a podobné funkce před problémy způsobenými jejich přerušením signálem. Pro krátkodobou blokaci a odblokaci signálů byly navrženy funkce sigblockall() a sigunblockall(), které fungují bez provádění systémových volání. Kromě toho byla funkce strtok() v libc přizpůsobena pro použití v vícetržních aplikacích, byly přidány konstanty TABDLY, TAB0, TAB3 a funkce __errno_location pro zlepšení podpory dports.
- Složky rozhraní DRM (Direct Rendering Manager) byly synchronizovány s jádrem Linux 4.9 s portováním jednotlivých funkcí z jádra 4.12, zaměřených na zlepšení podpory Wayland.
Ovladač drm/i915 pro GPU Intel byl synchronizován s jádrem Linux 4.8.17 s přenosem kódu pro podporu nových čipů (Skylake, Coffelake, Amber Lake, Whiskey Lake a Comet Lake) z jádra 5.4. Ovladač drm/radeon pro grafické karty AMD byl synchronizován s jádrem Linux 4.9. - Výrazně byly vylepšeny algoritmy stránkování virtuální paměti, což umožnilo odstranit nebo minimalizovat problémy s odezvou v uživatelském rozhraní při nedostatku paměti. Byly vyřešeny problémy se zamrzáním Chrome/Chromium při nedostatku systémové paměti.
- Bylo vylepšeno škálování jádra na systémech s velkým počtem procesorových jader. Zkrácena doba požadavku na stránky virtuální paměti. Snížena konkurence SMP v podmínkách nedostatku paměti. Zvýšena efektivita volání „open(… O_RDWR)“.
- Přepracován generátor pseudonáhodných čísel v jádře. Ovladač RDRAND přizpůsoben pro shromažďování entropie ze všech CPU. Snížena intenzita
a velikost přídavku RDRAND, na který dříve šlo 2-3% času CPU během nečinnosti. - Přidány nové systémové volání realpath, getrandom a lwp_getname (umožnil implementaci pthread_get_name_np).
- Přidána podpora ochranných mechanismů SMAP (Supervisor Mode Access Prevention) a SMEP (Supervisor Mode Execution Prevention). SMAP umožňuje blokovat přístup k datům v uživatelské oblasti z privilegovaného kódu běžícího na úrovni jádra. SMEP nedovoluje přecházet z jádra k provádění kódu nacházejícího se na uživatelské úrovni, což umožňuje blokovat exploitaci mnoha zranitelností v jádře (shell kód nebude proveden, protože se nachází v uživatelské oblasti);
- Přepracovány proměnné sysctl pro nastavení Jail. Přidána možnost montování nullfs a tmpfs z Jail.
- Přidán havarijní režim provozu souborového systému HAMMER2, který lze použít během procesu obnovy po selhání. V tomto režimu je povoleno ničení snapshotů při aktualizaci inode na místě (umožňuje odstraňovat soubory a adresáře při nedostatku volného diskového prostoru, kdy není možné použít mechanismus copy-on-write). Výrazně zvýšena výkonnost díky přepracování podpory plánování vláken v HAMMER2. Významně vylepšen proces vyprázdnění bufferů (flush).
- Zvýšena spolehlivost a výkon TMPFS. Zlepšena efektivita práce při nedostatku volné paměti v systému.
- V síťovém stacku pro IPv4 byla implementována podpora prefixů /31 ().
Ve tap byla vylepšena správa ioctl SIOCSIFMTU pro podporu MTU > 1500. Přidána podpora SIOCSIFINFO_IN6 a SO_RERROR. - S FreeBSD synchronizován ovladač iwm s podporou bezdrátových čipů Intel (byla přidána podpora iwm-9000 a iwm-9260).
- Přidány funkce basename() a dirname() kompatibilní s Linuxem pro zlepšení kompatibility v portech.
- Z FreeBSD byly převedeny fsck_msdosfs, sys/ttydefaults.h, AF_INET / AF_INET6 do libc/getaddrinfo(), calendar(1), rcorder-visualize.sh. Z OpenBSD byly převedeny funkce z math.h.
- Aktualizovány byly verze externích komponentů, včetně Binutils 2.34, Openresolv 3.9.2, DHCPCD 8.1.3. Ve výchozím nastavení se používá kompilátor gcc-8.
Zdroj: opennet.ru
