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.8:
- The main suite now includes the utility , designed for local building and maintenance of custom binary DPort repositories. Parallel building of an arbitrary number of ports, considering the dependency tree, is supported. A large number of changes aimed at speeding up the build of several dependent packages have also been made in DPort in preparation for a new release.
- An efficient signal masking mechanism has been implemented in libc, protecting malloc*() and similar functions from issues caused by signal interruptions. The functions sigblockall() and sigunblockall() have been proposed for short-term blocking and unblocking of signals, working without making system calls. Additionally, the strtok() function in libc has been adapted for use in multithreaded applications, with constants TABDLY, TAB0, TAB3, and function __errno_location added to improve support for dports.
- The components of the DRM (Direct Rendering Manager) interface have been synchronized with Linux kernel 4.9, porting individual features from kernel 4.12 aimed at improving Wayland support.
The drm/i915 driver for Intel GPUs has been synchronized with Linux kernel 4.8.17, with code for supporting new chips (Skylake, Coffelake, Amber Lake, Whiskey Lake, and Comet Lake) backported from kernel 5.4. The drm/radeon driver for AMD graphics cards has been synchronized with Linux kernel 4.9. - Significantly improved virtual memory paging algorithms have eliminated or minimized responsiveness issues in the user interface during memory shortages. Problems with Chrome/Chromium freezing due to insufficient system memory have been resolved.
- Kernel scaling has been improved on systems with a large number of processor cores. The virtual memory page request time has been reduced. SMP contention under low memory conditions has been decreased. The efficiency of the 'open(... O_RDWR)' call has been increased.
- The pseudorandom number generator in the kernel has been redesigned. The RDRAND driver has been adapted to accumulate entropy from all CPUs. The intensity
and size of RDRAND seeding, which previously consumed 2-3% of CPU time while idle, has been reduced. - New system calls realpath, getrandom, and lwp_getname have been added (allowing for the implementation of pthread_get_name_np).
- Support for SMAP (Supervisor Mode Access Prevention) and SMEP (Supervisor Mode Execution Prevention) mechanisms has been added. SMAP allows blocking access to user-space data from privileged code executing at the kernel level. SMEP prevents transitions from kernel mode to executing user-level code, which helps block the exploitation of many kernel vulnerabilities (shell code will not be executed as it resides in user space).
- Sysctl variables for configuring Jail have been redesigned. Added the ability to mount nullfs and tmpfs from Jail.
- A recovery mode for the HAMMER2 file system has been added, which can be used during recovery after a failure. In this mode, snapshot destruction is allowed during in-place inode updates (enables file and directory deletion when there is no free disk space, making the copy-on-write mechanism unavailable). Performance has significantly improved due to the redesign of thread dispatching support in HAMMER2. The buffer flush process has also been greatly enhanced.
- The reliability and performance of TMPFS have been improved. Efficiency in low free memory conditions has been increased.
- Support for /31 prefixes has been implemented in the IPv4 network stack.).
In tap, handling of ioctl SIOCSIFMTU has been improved to support MTU > 1500. Support for SIOCSIFINFO_IN6 and SO_RERROR has been added. - The iwm driver has been synchronized with FreeBSD, adding support for Intel wireless chips (iwm-9000 and iwm-9260 support added).
- Compatible with Linux functions basename() and dirname() have been added for improved compatibility in ports.
- fsck_msdosfs, sys/ttydefaults.h, AF_INET/AF_INET6 have been transferred from FreeBSD to libc/getaddrinfo(), calendar(1), rcorder-visualize.sh. Functions from math.h have been transferred from OpenBSD.
- Third-party components have been updated, including Binutils 2.34, Openresolv 3.9.2, and DHCPCD 8.1.3. GCC-8 is used by default as the compiler.
Source: opennet.ru
