tso tawm , kev khiav hauj lwm qhov system nrog hybrid kernel, nyob rau hauv 2003 rau lub hom phiaj ntawm lwm txoj kev loj hlob ntawm FreeBSD 4.x ceg. Ntawm cov yam ntxwv ntawm DragonFly BSD, peb tuaj yeem qhia txog cov ntaub ntawv faib tawm , kev txhawb nqa rau kev thauj khoom "virtual" system kernels raws li cov neeg siv cov txheej txheem, muaj peev xwm cache FS cov ntaub ntawv thiab cov metadata ntawm SSD drives, cov ntsiab lus sib txawv ntawm cov cim sib txawv, muaj peev xwm khov cov txheej txheem thaum txuag lawv lub xeev ntawm disk, hybrid kernel siv cov xov sib sib zog nqus. (LWJ).
ntsiab ntxiv hauv DragonFlyBSD 5.6:
- Kev tswj hwm lub cim xeeb virtual tau hloov kho tshiab. Ntau lub subsystems ntsig txog lub cim xeeb virtual thiab PMAP tau rov sau dua.
Cov cai tau tso tawm los ntawm kev kaw hauv ntau qhov chaw, suav nrog m_page_wakeup, vm_hold, thiab vm_unhold functions. Kev ua tau zoo ntawm kev siv cov processor cache tau nce los ntawm kev txo qis kev tsiv teb tsaws ntawm VM cov khoom nruab nrab ntawm CPU cores thiab txo cov nyiaj siv ua haujlwm thaum tuav kev zam (nplooj-faults) rau cov chaw nco sib koom. Txhim kho lub cim xeeb nplooj allocation algorithm. Kev ncua hauv vm_page_alloc() muaj nuj nqi tau raug kho. Lub vm_page_hash*() API tau raug ntxiv kom tso cai nqa yam tsis muaj kev thaiv.Yog li ntawd, nws yog ua tau kom noticeably Cov. Piv txwv
Hauv kev sim buildkernel, lub sij hawm yuav tsum tau ua haujlwm ntawm lub sab hauv lub kernel raug txo los ntawm 40%. Kev xa tawm tau nce 7% thaum siv Haswell tsev neeg CPUs thiab los ntawm 14% rau Xeon. SELF-EXEC S / DI benchmark qhia tau hais tias qhov kev ua tau zoo nce 23% rau Haswell thiab 18% rau Xeon piv rau qhov kev tso tawm dhau los. Hauv kev xeem
SELF-EXEC S / SH feem 28% thiab 71%, SELF-EXEC D / DI - 23% thiab 242% (vim kev txhim kho ntau txoj xov), hauv SELF-EXEC D / SH los ntawm 24% thiab 234%, hauv FAULTZF los ntawm 17% thiab 14%, hauv DOCOMP los ntawm 22% thiab 42%,
hauv NATIVEKERNEL los ntawm 5.1% thiab 8.1%; - Tus neeg tsav tsheb DRM thiab TTM tus thawj tswj hwm lub cim xeeb video rau AMD daim npav video tau hloov kho zoo heev. Ntxiv kev txhawb nqa rau Ryzen APUs tshiab. Txhim kho UEFI framebuffer kev txhawb nqa. Hauv radeon / ttm, qhov kev ua haujlwm cuam tshuam txog kev tuag tau raug tshem tawm. Kev teeb tsa kev ncua sij hawm thaum lub sijhawm thauj khoom tau raug kho kom tsis txhob muaj teeb meem ntawm i915 tsav tsheb thiab X server. Ntxiv DRM_IOCTL_GET_PCIINFO hu los txhim kho mesa/libdrm kev txhawb nqa. Ntau qhov yuam kev thiab qhov tsis txaus tau raug tshem tawm;
- Lub synchronization code hauv HAMMER2 cov ntaub ntawv kaw lus tau raug sau dua tshiab, uas tau txhim kho qhov ua tau zoo ntawm cov ntaub ntawv no. Kev ua tau zoo ntawm kev sau ntawv ua ntu zus kuj tau txhim kho.
Txhawm rau txhawm rau txhim kho kev sib tsoo, kev taug qab kev vam meej tau ntxiv los tshem tawm cov npe / cov ntaub ntawv sib cais thaum tsim, hloov npe, lossis tshem tawm haujlwm. Txoj cai rau kev ua haujlwm nrog snapshots tau rov ua haujlwm kom txo qis kev ncua thiab xyuas kom meej snapshot zoo ib yam. Txhim kho kev tuav ntawm kev sau ib txhij thiab cache flush ua haujlwm. Txhim kho qhov kev siv ntawm qhov kev ua haujlwm ummount. Cov ntsiab lus ntawm cov lus hais txog kev ua txhaum cai ncaj ncees (CRC yuam kev) tau nce ntxiv.HAMMER2 raug pom zoo raws li lub hauv paus filesystem. Kev txhawb pab pawg tseem tsis tau muaj. HAMMER2 FS yog qhov tseem ceeb rau cov haujlwm xws li kev sib cais ntawm snapshots, sau tau snapshots, directory-level quotas, incremental mirroring, txhawb rau ntau yam ntaub ntawv compression algorithms, multi-master mirroring nrog cov ntaub ntawv faib mus rau ob peb lub tswv yim;
- Ntxiv kev txhawb nqa thawj zaug rau FUSE subsystem rau kev tsim cov ntaub ntawv hauv cov neeg siv qhov chaw;
- Txhim kho kev ua tau zoo ntawm PF pob ntawv lim ntawm ntau lub tshuab;
- Kev them nyiaj yug rau SMAP (Tus Saib Xyuas Hom Kev Tiv Thaiv Kev Tiv Thaiv) thiab SMEP (Tus Thawj Saib Xyuas Kev Tiv Thaiv Kev Tiv Thaiv Kev Tiv Thaiv) tau ua tiav thaum muaj kev txhawb nqa hauv CPU. SMAP tso cai rau koj los thaiv kev nkag mus rau cov neeg siv-chaw cov ntaub ntawv los ntawm cov cai muaj cai khiav ntawm qib kernel. SMEP tsis tso cai rau kev hloov pauv ntawm hom ntsiav mus rau kev ua tiav ntawm cov lej nyob ntawm tus neeg siv qib, uas ua rau nws muaj peev xwm los thaiv kev siv ntau qhov tsis zoo hauv cov ntsiav (plhaub code yuav tsis raug tua, vim nws nyob hauv cov neeg siv qhov chaw);
- Ntxiv thaiv cov cai MDS (Microarchitectural Data Sampling) chav kawm hauv Intel processors. Yuav tsum tau hloov kho microcode kom ua haujlwm. Los ntawm lub neej ntawd, kev tiv thaiv yog neeg xiam thiab qhib ntawm 'sysctl machdep.mds_mitigation=MD_CLEAR'. Ua kom nws nthuav qhia ntxiv 250ns latency thaum cov ntsiab lus hloov pauv ntawm cov neeg siv thiab cov chaw hauv ntsiav tshuaj;
- Lub kernel yog tsim los ntawm lub neej ntawd nrog retpoline tiv thaiv kev tawm tsam Spectre.
- Ntau yam khoom siv los ntawm lub hauv paus system tau hloov dua siab tshiab los siv LibreSSL;
- Hloov kho tshiab ntawm cov khoom thib peb, suav nrog xz 5.2.4,
libarchive 3.3.3, libressl 2.9.1, openssh 8.0, ldns 1.7.0,
xov xwm 2019-03-24. evdev, makefs, ministat, libfetch,
dd. Cov hu reallocarray(), timing_safe*(), freezero(), dup3(), recallocarray(), aligned_alloc(), explicit_bzero() tau tsiv los ntawm OpenBSD mus rau libc. Los ntawm lub neej ntawd, gcc-5 compiler yog siv rau lub tsev es tsis txhob ntawm gcc-8.
Tau qhov twg los: opennet.ru
