ááœáŸááºáá±áž hybrid kernel ááŒáá·áº áááºáááºááŸá¯á áá áºá FreeBSD 2003.x áá¬áááœá²á á¡á á¬ážááá¯ážááœá¶á·ááŒáá¯ážáá±ážá¡ááœáẠáááºááœááºá áááá áá¯ááŸá áºááœáẠDragonFly BSD áá¡ááºá¹áá«áááºáá»á¬ážáá²ááœááºá áá»áœááºá¯ááºááá¯á·ááẠááŒáá·áºáá±áá¬ážáá±á¬áá¬ážááŸááºážááá¯ááºá áá áºá¡á¬áž áá®ážáá±á¬ááºážááá¯ážááŒááá¯ááºáááºá á¡áá¯á¶ážááŒá¯áá°áá¯ááºáááºážá ááºáá»á¬ážá¡ááŒá Ạâvirtualâ á áá Ạkernels áá»á¬ážááᯠáááºááŒááºážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á SSD drives ááœáẠFS áá±áá¬ááŸáá·áº áááºáá¬áá±áá¬ááᯠáááºááŸáºáá¯ááºááá¯ááºá áœááºážá á¡ááŒá±á¬ááºážá¡áá¬-ááááá¯ááºááœááºáá±á¬ áááºá¹áá±á ááá·áºááºáá»á¬áž á áááºážááá¯á·á á¡ááŒá±á¡áá±á¡á¬áž áá áºááºáá±á«áºááœáẠááááºážáááºážáá¬ážá áẠáá¯ááºáááºážá ááºáá»á¬ážááᯠá¡á±ážáá²á á±ááá¯ááºá áœááºážá áá±á«á·áá«ážáá±á¬ ááœá²áá¯á¶ážáá¬ážáá±á¬ áá±á«ááºážá áẠkernel (LWKT)á
á¡ááá DragonFlyBSD 5.6 ááœáẠááá·áºááœááºážáá¬ážáááºá
- Virtual Memory á
á®áá¶ááá·áºááœá²ááŸá¯á
áá
áºááᯠáá±ááºáá®á¡á±á¬áẠááŒá¯áá¯ááºáá¬ážáá«áááºá virtual memory ááŸáá·áº PMAP ááŸáá·áºáááºááá¯ááºáá±á¬ subsystems á¡áá»á¬ážá¡ááŒá¬ážááᯠááŒááºáááºáá±ážáá¬ážáá¬ážáá«áááºá
m_page_wakeupá vm_hold ááŸáá·áº vm_unhold áá¯ááºáá±á¬ááºáá»ááºáá»á¬áž á¡áá«á¡ááẠáá±áá¬áá»á¬ážá áœá¬ááœáẠáá¯ááºááᯠááááºáá¬ážáááºá CPU cores áá»á¬ážááŒá¬ážááŸá VM á¡áá¬áá»á¬áž ááœáŸá±á·ááŒá±á¬ááºážááŒááºážááᯠáá»áŸá±á¬á·áá»ááŒááºážááŸáá·áº áá»áŸáá±áá¬ážáá±á¬ memory á§áááá¬áá»á¬ážá¡ááœáẠá á¬áá»ááºááŸá¬áá»áá¯á·ááœááºážáá»ááºáá»á¬ážááᯠááá¯ááºááœááºááŒááºážá á¡áá±á«áºá á®ážá áá»áŸá±á¬á·áá»ááŒááºážááŒáá·áº CPU cache á áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºáá±ážáá«áááºá áááºááá¯áá® á á¬áá»ááºááŸá¬ ááœá²áá±ááŸá¯ á¡ááºáááá¯áá®áááºááᯠááŒáŸáá·áºáááºáá¬ážáááºá vm_page_alloc() áá¯ááºáá±á¬ááºáá»ááºááœáẠááŸá±á¬áá·áºááŸá±ážááŸá¯áá»á¬ážááᯠáááºááŸá¬ážáá²á·áááºá áá±á¬á·áááºááŸá¯áááºážáá±á¬ ááœá±ážáá»ááºááŸá¯áá»á¬áž ááŒá¯áá¯ááºááá¯ááºá á±ááá·áº vm_page_hash*() API ááᯠááá·áºááœááºážáá¬ážáá«áááºáááááºááá±á¬á· áááááá¬áᬠááŒá áºááá¯ááºáá«áááºá á á¥ááá¬á¡á¬ážááŒáá·áº,
buildkernel á ááºážáááºááŸá¯ááœááºá kernel-side execution time ááᯠ40% áá»áŸá±á¬á·áá»áá²á·áááºá Haswell CPU áá»á¬ážááá¯á¡áá¯á¶ážááŒá¯áá±á¬á¡áá« Bandwidth ááẠ7% ááŸáá·áº Xeon á¡ááœáẠ14% ááá¯ážáá¬áááºá SELF-EXEC S/DI á ááºážáááºááŸá¯ááœáẠááááºááœááºááŸááá²á·ááá·áº áá¬ážááŸááºážááŸáá·áº ááŸáá¯ááºážááŸááºáá«á Haswell á¡ááœáẠá áœááºážáá±á¬ááºááẠ23% ááŸáá·áº Xeon á¡ááœáẠ18% ááá¯ážáá¬áááºá á á¬áá±ážááœá²á
SELF-EXEC S/SH á¡áá®ážáá®ážááœáẠ28% ááŸáá·áº 71%, SELF-EXEC D/DI ááœáẠ- 23% ááŸáá·áº 242% (ááá¯ážáááºáá¬áá±á¬ multithreading ááŒá±á¬áá·áº), SELF-EXEC D/SH ááœáẠ24% ááŸáá·áº 234%, FAULTZF ááœáẠ17% ááŸáá·áº 14%, DOCOMP 42% ááŸáá·áº 22%
NATIVEKERNEL ááœáẠ5.1% ááŸáá·áº 8.1%; - AMD ááááºáá áºáááºáá»á¬ážá¡ááœáẠDRM áááá¯ááºáá¬ááŸáá·áº TTM áá®áá®ááá¯ááŸááºáá¬ááºáááºáá±áá»á¬ááá¯á·ááᯠáááááá¬áᬠá¡ááºááááºáá¯ááºáá¬ážáááºá Ryzen APUs á¡áá áºáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠááá·áºááœááºážáá¬ážáááºá UEFI framebuffer áá¶á·ááá¯ážááŸá¯ááᯠááŒáŸáá·áºáááºáá¬ážáá«áááºá á áœááºážáá±á¬ááºáááºááᯠá¡áá»ááºááá±á¬áá±á¬ááºáá±á¬áááºáá±á¬ááºááŸá¯ááŸááá±á¬ ááááºááá¬ážá¡á¬áž radeon/ttm ááœáẠáááºááŸá¬ážááá¯ááºáá«áááºá i915 áááá¯ááºáá¬ááŸáá·áº X áá¬áá¬á¡ááŒá¬áž áááááá¹ááá»á¬ážááᯠááŸá±á¬ááºááŸá¬ážááẠboot ááŸá±á¬áá·áºááŸá±ážááŸá¯ áááºáááºááᯠááŒááºáááºááŒá¯ááŒááºáá¬ážáá«áááºá mesa/libdrm áá¶á·ááá¯ážááŸá¯ ááá¯ááá¯áá±á¬ááºážááœááºáá¬á á±ááẠDRM_IOCTL_GET_PCIINFO áá±á«áºááá¯ááŸá¯ááᯠááá·áºááœááºážááá¯ááºáá«ááŒá®á áá»áá¯á·ááœááºážáá»áẠá¡áá»á¬ážá¡ááŒá¬ážááᯠááŒááºáááºááŒá®ážáá«ááŒá®á
- HAMMER2 ááá¯ááºá
áá
áºááŸá áááºáá°ááŒá¯ááŒááºážáá¯ááºááᯠááŒááºáááºáá±ážáá¬ážáá¬ážááŒá®ážá á€ááá¯ááºá
áá
áºá á
áœááºážáá±á¬ááºáááºááᯠáááááá¬áᬠááá¯ážáááºá
á±áááºá ááá·áºáá²áá±ážáá¬ážááŸá¯á
áœááºážáá±á¬ááºáááºááá¯áááºáž ááŒáŸáá·áºáááºáá¬ážáá«áááºá
áá»ááºá á®ážááŸá¯ áá¶ááá¯ááºáááºá¡á¬áž ááŒáŸáá·áºáááºáááºá áááºáá®ážááŒááºážá á¡áááºááŒá±á¬ááºážááŒááºáž ááá¯á·ááá¯áẠáá»ááºááŒááºáž áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá¡ááœááºáž áááºážááœáŸááº/ááá¯ááºááœá²ááŒááºážáá»á¬ážááᯠáá¬ááœááºááẠááŸá®ááá¯ááŸá¯ ááŒá±áá¬áá¶ááŒááºážááᯠááá·áºááœááºážáá¬ážáááºá ááŒá¬ááŒáá·áºáá»áááºááᯠáá»áŸá±á¬á·áá»áááºááŸáá·áº áá»áŸááºáá áºááŒááºáá áºááááºáááºážááŒá áºááŸá¯ááᯠáá±áá»á¬á á±ááẠSnapshot ááá¯ááºááœááºááŒááºážááᯠááŒááºáááºáá¯ááºáá±á¬ááºáá¬ážáá«áááºá áá áºááŒáá¯ááºáááºáááºáž áá±ážáá¬ážááŸá¯áá»á¬ážááŸáá·áº áááºááŸáºááá¯ááºáá»á¬ážááᯠááá¯ááºááœááºááŒááºážá¡á¬áž ááá¯ááá¯áá±á¬ááºážááœááºá á±áá«áááºá ááá¬ááááºáááºááŸá¯ááᯠááŒáŸáá·áºáááºáá¬ážáááºá Integrityáá»áá¯ážáá±á¬ááºááŸá¯ (CRC) á¡ááŸá¬ážá á¬ááá¯áá»á¬ážááᯠááá¯ááá¯ááááŸááá¬ážáááºá á±áá«áááºáHAMMER2 ááᯠáá°áááºážááá¯ááºá áá áºá¡ááŒá Ạá¡ááŒá¶ááŒá¯áá¬ážáááºá Clustering áá¶á·ááá¯ážááŸá¯ ááááŸáááá¯ááºáá±ážáá«á HAMMER2 ááá¯ááºá áá áºáá¡ááºá¹áá«áááºáá»á¬ážááœáẠáá®ážááŒá¬ážáá»áŸááºáá áºááŒááºááá¯ááºááá·áºááŒááºážá áá±ážááŸááºááá¯ááºáá±á¬áá»áŸááºáá áºááŒááºááá¯ááºáá»ááºáá»á¬ážá áááºážááœáŸááºá¡ááá·áºááœá²áááºážáá»á¬ážá ááá¯ážááŒáá·áºáá±á¬áá¯á¶áá°áá°ážááŒááºážá á¡áá»áá¯ážáá»áá¯ážáá±á¬áá±áá¬áá»á¯á¶á·ááŒááºážááá¯ááºáᬠá¡ááºáááá¯áá®áááºáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á ááŸáá·áº host á¡áá»á¬ážá¡ááŒá¬ážááœáẠáá±áá¬ááŒáá·áºáá±ááŸá¯ááŸáá·áºá¡áá° multi-master mirroring ááá¯á·áá«áááºáááºá
- á¡áá¯á¶ážááŒá¯áá°áá±áá¬ááŸá ááá¯ááºá áá áºáá»á¬ážáááºáá®ážáááºá¡ááœáẠFUSE á áá áºááœá²á¡ááœáẠáááŠážáá¶á·ááá¯ážááŸá¯ áááºáá±á¬ááºážááá·áºááœááºážáá¬ážáááºá
- Multi-core á áá áºáá»á¬ážááœáẠPF packet filter á á áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºáá±ážááŒááºážá
- CPU á០áá¶á·ááá¯ážáá±ážáá±á¬á¡áá« SMAP (Supervisor Mode Access Prevention) ááŸáá·áº SMEP (Supervisor Mode Execution Prevention) á¡ááœáẠáá¶á·ááá¯ážááŸá¯ ááá¹ááá¬ážáá»á¬ážááᯠáá±á¬ááºááœááºáá±ážáá«áááºá SMAP ááẠkernel á¡ááá·áºááœáẠáá¯ááºáá±á¬ááºáá±áá±á¬ á¡ááœáá·áºáá°ážáá¶áá¯ááºá០á¡áá¯á¶ážááŒá¯áá°-á¡á¬áá¬ááá±áá¬ááᯠáááºáá±á¬ááºááœáá·áºááᯠááááºááá¯á·áá¬ážáááºá SMEP ááẠkernel áá¯ááºá០á¡áá¯á¶ážááŒá¯áá°á¡ááá·áº áá¯ááºáá¯ááºáá±á¬ááºááŸá¯ááá¯á· áá°ážááŒá±á¬ááºážááŒááºážááᯠáá¬ážáá®ážáá±ážáááºá áááºážááẠkernel á¡á¬ážáááºážáá»ááºáá»á¬ážá áœá¬á á¡áá¯á¶ážáá»ááŸá¯ááᯠáá¬ážáá®ážáá±ážááẠ(á¡áá¯á¶ážááŒá¯áá°áá±áá¬ááœááºááœáẠááŸááá±áá±á¬ááŒá±á¬áá·áº áááºážááẠááŸá²ááºáá¯ááºááᯠáá¯ááºáá±á¬ááºáááºááá¯ááºáá«)á
- ááááºááá¯á·ááŒááºážáá¯ááºááᯠááá·áºáá¬ážáááºá Intel áááá¯áááºáá¬áá»á¬ážááœáẠMDS (Microarchitectural Data Sampling) á¡áááºážá á€á¡ááºá¹áá«áááºááẠá¡ááºááááºáá¯ááºáá¬ážáá±á¬ ááá¯ááºáááá¯áá¯áẠááá¯á¡ááºáááºá áá°áááºážá¡á¬ážááŒáá·áºá á¡áá¬á¡ááœááºááᯠááááºáá¬ážááŒá®áž 'sysctl machdep.mds_mitigation=MD_CLEAR' ááᯠá¡áá¯á¶ážááŒá¯á ááœáá·áºááá¯ááºáááºá á€á¡ááºá¹áá«áááºááá¯ááœáá·áºááŒááºážááŒáá·áº á¡áá¯á¶ážááŒá¯áá°áá±áá¬ááŸáá·áº kernel áá±áá¬á¡ááŒá¬áž á¡ááŒá±á¬ááºážá¡áá¬ááᯠááŒá±á¬ááºážáá±á¬á¡áá«ááœáẠlatency á áá±á¬ááºááẠ250ns áááºááá·áºáááºá
- kernel ááᯠSpectre ááá¯ááºááá¯ááºááŸá¯áá»á¬ážá០retpoline áá¬ááœááºááŸá¯ááŒáá·áº áá¯á¶áá±ááŒáá·áº á á¯á ááºážáá¬ážáááºá
- á¡ááŒá±áá¶á áá áºá០á¡áá¯á¶ážáááºááŸá¯áá»á¬ážá áœá¬ááᯠ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 reallocarray(), timing_safe*(), freezero(), dup3(), recallocarray(), aligned_alloc(), ááŸáá·áº explicit_bzero() á¡á¬áž OpenBSD á០libc ááá¯á· áá±ážááá¯á·áá¬ážáá«áááºá áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá gcc-8 á á¯á ááºážááŸá¯á¡á¬áž gcc-5 á¡á á¬áž áááºáá±á¬ááºáááºá¡ááœáẠá¡áá¯á¶ážááŒá¯áá«áááºá
source: opennet.ru
