DragonFly BSD

from Wikipedia, the free encyclopedia
DragonFly BSD
logo
DragonFly BSD 4.2.3 bootloader screenshot.png
Bootloader of DragonFly BSD 4.2.3
developer Matt Dillon and others
License (s) BSD license
First publ. July 16, 2003
Current  version 5.8 of March 3, 2020
(176 days ago)
Kernel Hybrid kernel
ancestry BSD
↳ FreeBSD
↳ DragonFly BSD
Architecture (s) x86-64
dragonflybsd.org

DragonFly BSD is a free Unix derivative . The operating system is based on the source code of FreeBSD -STABLE 4.8 from June 16, 2003 and thus belongs to the family of BSD operating systems . It runs on PCs with an x86-64 -based processor.

history

The DragonFly project was initiated by former FreeBSD developer Matt Dillon , who was  not satisfied with the design decisions for the architecture of the FreeBSD 5.x kernel - especially with regard to kernel threading and SMP - and who had recently discussed the other FreeBSD Developers. It sees itself as a continuation of the FreeBSD 4.x-STABLE branch. Matt Dillon, who develops the project full-time, is now supported by over fifty other developers.

Functions

Since DragonFly BSD as a new operating system initially had no user base , the code base did not need to be backwards compatible, so a number of APIs could be modernized and some experimental changes made.

Another feature of the development of DragonFly BSD is that new security concepts and innovations in this area, for example the malloc implementation of the OpenBSD project, which is considered more secure compared to classic approaches , are very quickly incorporated into the development branch .

As port manager initially FreeBSD ports were, version 1.4 available from NetBSD originating pkgsrc used. Due to the high maintenance effort of pkgsrc ports, DPorts , a port system based on the FreeBSD ports , has also been used since DragonFly BSD 3.4 . The installation and administration of binary packages is done with DPorts like in FreeBSD and PC-BSD via pkgng . The release cycle is about six months, but it is also dependent on the system's functional extensions.

SMP support

One focus of the DragonFly BSD developers from the start was on better support for modern multiprocessor systems. Various scalability improvements, such as a new slab allocator that works without mutexes , have been made in the kernel in particular.

Lightweight Kernel Threads

The Lightweight Kernel Threads (LWKT) is a kernel subsystem that is supposed to help reduce the competition between the processors. Each processor receives its own process scheduler , processes are linked to a specific processor and can only be interrupted by IPI processes.

Messaging API

DragonFly BSD uses a message exchange system similar to that of AmigaOS and other microkernels . This is used for communication between the individual lightweight kernel threads (LWKT). Each individual LWKT supports three types of message ports that can receive messages:

  • Thread ports
  • Spinports
  • Serializer ports

Messages arriving at thread ports may only be received by the owner of the respective port. Messages on spin and serializer ports can be retrieved and processed by multiple threads at the same time. Both synchronous and asynchronous replies to these messages are possible.

Application snapshots

Instead of the prelinking common in operating systems , DragonFly BSD creates a complete snapshot of a running application with all its dynamically linked libraries, so that further instances can be loaded more quickly. Large program packages such as KDE , which many libraries have to reload, should benefit from this.

HAMMER

With DragonFly BSD 2.0, the now mature HAMMER as was 64-bit - cluster file system in DragonFly BSD presented. Among other things, HAMMER supports an unlimited number of dynamic snapshots of individual file systems, mirroring and partition sizes of up to 1  Exbibyte . The directory structure is created using B-trees .

The development of the successor file system HAMMER2 was announced on February 8, 2012. New features planned include incremental directory mirroring, multiple root directories, and support for multiple compression algorithms, including LZ4 and zlib .

The first parts of HAMMER2 were released with DragonFly BSD 3.6. It has been delivered as standard since DragonFly BSD 5.0, but is still marked experimentally for the time being.

Versions

version publication Major changes
1.0 July 12, 2004 new BSD installation program, Lightweight Kernel Threads (LWKT), variable symbolic links (variant symlinks)
1.2 April 8, 2005 Revised TCP stack, support for X11 and pkgsrc
1.4 January 7, 2006 GCC 3.4 is used pkgsrc will become the standard, CITRUS framework has been for multilingual programming from NetBSD taken
1.6 July 24, 2006 new random number generator, stability improvements
1.8 January 30, 2007 Implementation of virtual kernels
1.10 August 6, 2007 Support for AHCI and GPT
1.12 February 26, 2008 Bluetooth support, GCC 4.1, own MTA (DMA), experimental support for the x86-64 platform and the HAMMER file system
2.0 July 21, 2008 Improvements to the HAMMER file system
2.2 February 17, 2009 first stable version of HAMMER, further stability improvements
2.4 September 16, 2009 Support for devfs , NFS improvements, new AHCI drivers
2.6 April 6, 2010 tmpfs , swapcache, various improvements
2.8 October 30, 2010 WLAN stack from FreeBSD , dm-crypt , LVM support
2.10 April 26, 2011 GCC 4.4, rewritten bridging system, huge speed improvements
3.0 February 22, 2012 Multi-processor kernel is standard, ACPI improvements, support of TrueCrypt -compatible encryption, support of ECC memory
3.2 November 3, 2012 Support for USB 3.0 and puffs, speed improvements
3.4 April 29, 2013 GCC 4.7, introduction of DPorts as a new port system
3.6 November 25, 2013 SMP enhancements, hardware acceleration for Intel - GPUs
3.8 4th June 2014 USB4BSD as standard driver, new graphics drivers, last version series with i386 support
4.0 November 25, 2014 only available in 64 bit, support of Haswell GPUs and OpenGL acceleration, up to 256 CPUs are supported at the same time
4.2 June 29, 2015 GCC 5.1, improved DRM support, own DragonFly Mail Agent (DMA) replaces sendmail
4.4 December 7, 2015 new linker, new Radeon and Intel i915 drivers, revised locale system, OpenSSL 1.0.1q
4.6 2nd August 2016 improved graphics card and SMP support, preliminary support for starting via EFI
4.8 March 27, 2017 Improved cooperation with EFI, better kernel performance, starting eMMC drives
5.0 16th October 2017 HAMMER2 file system implemented, revision of IPFW
5.2.2 June 18, 2018 HAMMER2 file system revised
5.4 November 2018 new system compiler in GCC 8, improved NUMA support, network and VM driver updates
5.4.2 April 22, 2019 addresses a rare potential HAMMER2 corruption problem
5.4.3 20th May 2019
5.6.0 17th June 2019 brings an improved virtual memory system, contains an update for radeon and ttm and performance improvements
5.6.1 19th June 2019 Fixes a misconfiguration in sshd and fixes a lockup error in ttm.
5.8.0 March 3, 2020

Trivia

In large dragonflies, the rear wings are always strongly broadened after the wing base.

The logo shows a dragonfly which, due to the shape of the hind wings, does not represent a large dragonfly (see illustration), but rather resembles a small dragonfly (damselfly).

See also

Individual evidence

  1. www.dragonflybsd.org .
  2. ^ Matthew Dillon: Behind DragonFly BSD. July 8, 2004, accessed February 9, 2014 : “DragonFly split off from FreeBSD-5 over major architectural differences, not anything else. We really do feel that FreeBSD-5 is taking the wrong approach to SMP and building something that is so complex that it will ultimately not be maintainable. "
  3. Warner Losh: Slashdot: FreeBSD Core Developer Thrown Out. February 4, 2003, accessed on February 9, 2014 (English): "[T] his action was taken due to Matt's interdeveloper relation skills, not due to Matt's technical skills."
  4. DragonFlyBSD: team. Retrieved February 9, 2014 .
  5. ^ Justin Sherrill: Any new packages? September 29, 2013, accessed February 9, 2014 .
  6. Jeffrey M. Hsu: The DragonFlyBSD Operating System. (PDF) p. 2 f. , accessed February 9, 2014 .
  7. David Chisnall: DragonFly BSD: UNIX for Clusters? June 15, 2007, accessed February 9, 2014 .
  8. spinlock(9)  -  DragonFly BSD Kernel Developer's Manual
  9. serializer(9)  -  DragonFly BSD Kernel Developer's Manual
  10. msgport(9)  -  DragonFly BSD Kernel Developer's Manual
  11. ^ Matt Dillon: DESIGN document for HAMMER2. February 8, 2012, accessed February 9, 2014 .
  12. ^ Daniel Flores: Google Summer of Code: HAMMER2 compression feature final report. September 27, 2013, accessed February 9, 2014 .
  13. DragonFly Release 3.6. Retrieved February 9, 2014 .
  14. DragonFly BSD 5.0. Retrieved October 16, 2017 .

Web links