RSS
Логотип
Баннер в шапке 1
Баннер в шапке 2

DragonFly BSD

Product
The name of the base system (platform): FreeBSD
Date of the premiere of the system: 2003/06/15
Last Release Date: 2022/12/30
Technology: OS

Content

DragonFly BSD is an open source operating system.

2022: DragonFlyBSD 6.4

On January 3, 2023, it became known that after a year of development on December 30, 2022, the release of DragonFlyBSD 6.4, an operating system with a hybrid kernel created in 2003 for the purpose of alternative development of the FreeBSD 4.x branch, was published. Among the features of DragonFly BSD, we can distinguish the distributed version file system HAMMER, support for loading "virtual" system cores as user processes, the ability to cache data and meta-data of FS on SSDs, taking into account the context of variant symbolic links, the ability to freeze processes while maintaining their state on disk, a hybrid kernel using lightweight threads (LWKT).

DragonFlyBSD 6.4

The main changes added to DragonFly BSD 6.4 are:

  • Work continued on the HAMMER2 file system, which is notable for such functions as separate snapshot mounting, writable snapshots, directory-level quotas, incremental mirroring, support for various data compression algorithms, multi-master mirroring with data distribution to several hosts. The updated release fixed several serious errors, including a problem that could lead to data corruption when mounting multiple PFS (Psuedo File-System), and an error that delays the actual deletion of some files before uninstalling.
  • The mlockall () system call supports the MCL_CURRENT mode, which allows you to block all process memory pages reflected in the address space to prevent them from being preempted into the swap section.
  • The implementation of the gtaskqueue () function has been transferred from FreeBSD.
  • Optimized performance of nlookup * () functions.
  • Optimized tmpfs file system performance.
  • Ext2fs implements a more accurate check of the root inode and directory elements.
  • Added support for the Edimax EW-7811Un V2 Wi-Fi adapter (N150).
  • For jail sysctl, the net_raw_sockets is renamed to allow_raw_sockets.
  • The DRM (Direct Rendering Manager) interface has solved the problem with the crash of the X.org server when connecting or disconnecting monitors. evdev has optimized compatibility with the updated X server code.
  • The makefs utility has added support for the HAMMER2 file system.
  • The "-I" flag has been added to the date utility for output in ISO 8601 format.
  • In/bin/sh, it is possible to correctly write to file descriptors operating in non-blocking mode, which solved the problem of writing to unnamed pipes operating in non-blocking mode, the buffer of which was full.
  • In libc, the buffer size for opendir/readdir has been increased from 4 to 16 KB. Added strerror_l function (). Size modifiers "ll" and "L" have been added to printf () and scanf ().
  • The timingsafe_bcmp function code () has been transferred to libkern from FreeBSD.
  • The dsynth utility, designed for local assembly and maintenance of binary DPort repositories, defaults to the second version of metadata. Added'add', fetch-only, and list-system directives. The configuration file has added the setting 'Check_plist' (equivalent to the "-P" option).
  • Updated versions of third-party components: Awk 20220912, bmake 20220928, byacc 20221106, Dialog 1.3-20220728, expat 2.5.0, file 5.43, ldns 1.8.3, less 608, libedit 2022-10-30, libpcap 1.10.1, tcpdump 4.99.1, LibreSSL 3.6.1, OpenSSH 9.1p1, TCSH 6.24.02, TNFTP 2021082, libarchive 3.6.1[1]

DragonFlyBSD

2015: DragonFly BSD 4.4

On December 4, 2015, the development community presented the release of DragonFlyBSD 4.4[2].

Of the significant changes in DragonFly BSD 4.4 are the implementation of the locale, the improvement of the Hammer file system, the default transition to the dynamic linking system and the update of the drivers of the i915 and Radeon video adapters.

840px'thumb'DragonFly BSD interface

Major changes to DragonFlyBSD 4.4

  • Modernization of drm drivers radeon and i915, which provide an interface for controlling AMD and Intel graphics cards at the kernel level. The driver code i915 and radeon are synchronized with the Linux 3.18 kernel. i915 added support for ValleyView, Baytrail and Cherryview Atom SOC, implemented full support for hardware acceleration for Broadwell GPU, added basic APU support based on Skylake microarchitecture, improved power management mechanisms. The system console supports drm (KMS console) by default. Support for temperature sensors has been added for Radeon cards;
  • Complete processing of the locale system. Until now, the locale systems in DragonFly BSD have synchronized with FreeBSD, but in DragonFly BSD 4.4 the locale implementation has been completely redesigned. Data for all six categories of a locale (LC_CTYPE, LC_COLLATE, LC_TIME, LC_NUMERIC, LC_MONETARY, LC_MESSAGES) are based on relevant releases of Unicode CLDR now. Improvements have been made to the processing of numbers, time and currency units. All CTYPE definitions are combined into one set of mappings. Added support for three-component locale names such as sr_cyrl_RS, sr_latn_RS, zh_Hans_CN, and zh_Hant_TW. Implemented abbreviated locale codes, for example, "de_DE"," "fr_FR" and "en_US" for 8-bit encodings.
  • Support for the LC_COLLATE locale (Collation) property, which allows you to set sorting rules and mapping methods based on the meaning of the characters. When setting the LC_COLLATE for the specified locale, sorting and checking ranges will not separate lowercase and uppercase letters (for example, the characters "A" and "a" will enter the range [a-z], while without LC_COLLATE, only "a" will enter the range), when sorting numeric values, the presence of a minus and a period before the number and different types of spelling will be taken into account (1e3 = 1000), features of languages ​ ​ will be taken into account (for example, articles such as The are ignored). It is noted that DragonFly BSD was the first of the BSD systems with correct Collation support for named locales, which allows, for example, to use the COLLATE expression in PostgreSQL. Collation support has already been ported from DragonFly BSD to FreeBSD-CURRENT;
  • The system library of regular expressions was replaced by TRE, which made it possible to get rid of binding to POSIX mode (single-byte mappings) and implement full support for multi-byte encodings in regular expressions. In addition to supporting multi-byte encoding, the TRE library, which is already used in musl and OS X, has higher performance and supports a larger range of regular expressions;
  • The dynamic linking system has been switched by default to the Gold linker, developed by Google engineers and part of GNU binutils. The old "ld.bfd" linker is available as an option and can be activated in make.conf;
  • The core has improved support for CPU power saving capabilities. Added system call lwp_setname (2). The aperf (4) driver has been added to output the effective CPU frequency;
  • Improving Network Capabilities:
    • Added iwm (4) driver, added Realtek 8168H chip support to re (4) driver.
    • Added rtadvctl utility.
    • Asynchronous processing of UDP connections is implemented.
    • Increased initial window size for TCP.
    • Added the ability to resize nmbcluster on the fly.
    • IPv6 code synchronized with FreeBSD.
    • Increased socket (2) call performance for TCP and UDP.
    • System call accept (4) added.
    • Added support for SOCK_CLOEXEC and SOCK_NONBLOCK flags for socket (2) and accept4 (2) calls;

  • The libm library has been replaced with a variant from the OpenBSD project;
  • The sort utility has been replaced with a variant from the FreeBSD project (previously used sort from NetBSD);
  • libc has added support for versioning character sets, which makes it possible to run executable files from DragonFly BSD 4.4 in future releases;
  • The tcpdrop utility is included;
  • Numerous edits and purges have been made to the implementation of the HAMMER file system. The release also includes an updated version of the HAMMER2 FS, which is notable for such functions as separate mounting of snapshots, writable snapshots, directory-level quotas, incremental mirroring, support for various data compression algorithms, multi-master mirroring with data distribution to several hosts. The new version of HAMMER2 supports root partition mounting and deduplication operations on the fly. The WANT_HAMMER2 option has been added to the kernel assembly settings to enable support for Hammer2 file systems;
  • Updated versions of third-party programs supplied on the base system: gcc 5.2, nvi2 2.1.3, libexecinfo (synchronized with FreeBSD), iconv (synchronized with FreeBSD), openssl 1.0.1p, xz 5.2.2, libedit 2015-03-25, binutils 2.25.1, grep 2.22, tcsh 6.19.00, (tn) ftp '10 OCT 2015', acpica 20150717;
  • Hostapd ( moved to the net/hostapd port), dsched, mklocale (replaced by localedef), colldef (replaced by localedef) have been removed from the base system.
  • The DPorts collection reached 22,800 ports.

2014: DragonFly 4.0.1

December 1, 2014 it became known about the release of a new release of OS DragonFly 4.0.1[3].

The goal of the project is the optimal use of processor and RAM resources, primarily on multi-processor systems.

DragonFly BSD can be used on the server and on the workstation. It is installed with a graphical interface (including additional programs: browser, etc.) or with command line support.

Screenshot of DragonFly BSD interface

DragonFly is based on the LWKT model - lightweight kernel threads. The LWKT model is combined with a thread planning mechanism (instead of a single scheduler - scheduler). This model helps to control several such threads, each of which in a multi-processor system is tied to its own processor. Under certain conditions, it is allowed to transfer the execution of the stream from one processor to another. In this case, the data of individual threads can be cached independently for each processor.

The fundamental difference between DragonFly BSD is that the maximum number of kernel functions is removed from the kernel memory to user memory, which, according to the developers, helps to ensure increased performance and system reliability.

Another difference between DragonFly BSD is its own 64-bit distributed file system HAMMER, optimized for working with clusters and remote access to information, offers the ability to work with pseudo-file systems and mirror at the level of pseudo-file systems. HAMMER is characterized by developers as a stable and reliable file system. Saves the history of the file system (with configurable cleaning of old data). Enhanced data integrity control (metadata CRC check) is implemented.

Among the features of DragonFly BSD, they distinguish support for loading virtual system cores as user processes, the ability to cache data and file system metadata on SSD, hybrid kernel, etc.

Unlike the parent FreeBSD operating system, where the kernel and drivers are a single whole, DragonFly BSD, like microkernel operating systems, has the main kernel functions in the user space, which, allegedly, allows you to increase the performance and reliability of the system as a whole while maintaining high kernel functionality, which is its difference from microkernel OS.

Traditional Unix system calls are emulated only for compatibility purposes. Instead, the message mechanism and their queues are used.

It is emphasized that the new DragonFly BSD releases will be able to work only on 64-bit systems. Among the improvements in the latest release are: adding support for Intel Haswell graphics chips to the i915 driver, supporting 3D acceleration, optimizing network stack performance under high load conditions, adding support for parallelizing operations on different processor models to the PF (packet filter) packet filter, etc.

A 198 MB 64-bit OS setup image for CD and USB Flash is available for DragonFly BSD download. The generated image can work in Live mode.

It is noted that the new version has increased the number of supported processor cores from 63 to 256; New device files/dev/upmap and/dev/kpmap have been added to directly access kernel memory and processes (without intermediate access through system calls). added support for the Haswell GPU; introduced improvements to the network subsystem and storage systems, as well as to the security system, etc.

The new USB4BSD USB stack (created on the basis of porting code from FreeBSD 8) provides support for xhci host controllers (USB 3.0) and a new blocking system effective for multi-core systems (MPSAFE, without binding to global blocking).

To improve security (taking into account the minimum computational costs), support has been added for the ChaCha symmetric encryption algorithm developed by Daniel J. Bernstein.

The DragonFly BSD 4.0 distribution is built using the BSD Installer. Device drivers are ported from FreeBSD.

2003: Creation of the OS

OS DragonFly BSD was created in 2003 on the basis FreeBSD of (4th branch), focused on the platform. x86

Notes