release , an operating system with a hybrid kernel, in 2003 to provide an alternative development path for the FreeBSD 4.x branch. Key features of DragonFly BSD include a distributed versioning filesystem , support for booting 'virtual' kernels as user processes, caching data and metadata of the filesystem on SSD drives, context-aware variable symbolic links, the ability to freeze processes while saving their state to disk, and a hybrid kernel that uses lightweight kernel threads (LWKT).
Key , added in DragonFlyBSD 5.6:
- An upgrade to the virtual memory management system has been conducted. Many subsystems related to virtual memory and PMAP have been rewritten.
In many places, the code has been freed from locks, including in the functions m_page_wakeup, vm_hold, and vm_unhold. Effectiveness of processor cache utilization has been improved by reducing the migration of VM objects between CPU cores and minimizing overhead during exception handling (page-fault) for shared memory areas. The page allocation algorithm has also been improved. Delays in the vm_page_alloc() function have been eliminated. An API vm_page_hash*() has been added, allowing for lock-free selections.As a result, it has been possible to significantly . For example,
in the buildkernel test, where kernel-side operation times were reduced by 40%. Throughput increased by 7% for Haswell family CPUs and 14% for Xeon. In the SELF-EXEC S/DI test compared to the previous release, performance gains of 23% for Haswell and 18% for Xeon were observed. In the SELF-EXEC S/SH test, the respective gains were 28% and 71%, in SELF-EXEC D/DI - 23% and 242% (due to improved multithreading), in SELF-EXEC D/SH - 24% and 234%, in FAULTZF - 17% and 14%, in DOCOMP - 22% and 42%,
in NATIVEKERNEL - 5.1% and 8.1%;
The DRM driver and TTM video memory management have been significantly updated for AMD graphics cards. Support for new Ryzen APU has been added. Improved UEFI framebuffer support. In radeon/ttm, a negatively impacting deadlock on performance has been resolved. Refactoring of delay settings during boot has been conducted to avoid conflicts between the i915 driver and the X server. Added DRM_IOCTL_GET_PCIINFO call to improve mesa/libdrm support. Many bugs and shortcomings have been fixed; - The DRM driver and TTM memory management have been significantly updated for AMD graphics cards. Support for new Ryzen APUs has been added. UEFI framebuffer support has improved. Mutual blocking that negatively affected performance in radeon/ttm has been resolved. Refactoring of the delay settings during the boot process has been conducted to avoid conflicts between the i915 driver and the X server. The DRM_IOCTL_GET_PCIINFO call has been added to enhance support for mesa/libdrm. Many bugs and shortcomings have been fixed;
- The synchronization code in the HAMMER2 filesystem has been rewritten, significantly improving the performance of this FS. Sequential write operation performance has also been enhanced.
To increase crash resilience, dependency tracking has been added to prevent the splitting of directories/files during the execution of creation, renaming, or deletion operations. The snapshot handling code has been revised to reduce latencies and ensure snapshot consistency. The handling of concurrent write operations and cache flushing to disk has been improved. The umount operation has been enhanced. Error messages regarding integrity violations (CRC error) are now more informative.HAMMER2 is recommended as the default root filesystem. Cluster support is currently unavailable. The HAMMER2 filesystem is notable for features such as separate mounting of snapshots, writable snapshots, directory-level quotas, incremental mirroring, support for various data compression algorithms, and multi-master mirroring with data distribution across multiple hosts.
- Initial support for the FUSE subsystem has been added for creating filesystems in user space.
- The performance of the PF packet filter on multi-core systems has been increased.
- Support for the protection mechanisms SMAP (Supervisor Mode Access Prevention) and SMEP (Supervisor Mode Execution Prevention) has been implemented if supported by the CPU. SMAP blocks access to user space data from privileged code running in kernel mode. SMEP prevents transitioning from kernel mode to executing code in user space, blocking the exploitation of many kernel vulnerabilities (shell code will not execute as it resides in user space).
- Code for blocking has been added. the MDS (Microarchitectural Data Sampling) class in Intel processors. It requires updated microcode to function. By default, protection is disabled and can be enabled using ‘sysctl machdep.mds_mitigation=MD_CLEAR’. Enabling it introduces an additional delay of about 250ns when switching context between user space and kernel.
- The kernel is compiled by default with retpoline protection against Spectre attacks.
- Many utilities from the core system have been changed to use LibreSSL;
- Updated versions of third-party components, including 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 have been ported from FreeBSD,
dd. Calls to reallocarray(), timing_safe*(), freezero(), dup3(), recallocarray(), aligned_alloc(), and explicit_bzero() have been moved from OpenBSD to libc. The gcc-8 compiler is now used by default for building instead of gcc-5.
Source: opennet.ru
