Chapter 1 Introduction
*Restructured, reorganized, and parts rewritten by Jim Mock. *
Thank you for your interest in DragonFly! The following chapter covers various aspects of the DragonFly Project, such as its history, goals, development model, and so on.
After reading this chapter, you will know:
how DragonFly relates to other computer operating systems;
the history of the DragonFly Project;
the goals of the DragonFly Project;
the basics of the DragonFly open-source development model; and of course:
where the name DragonFly comes from.
Welcome to DragonFly!
DragonFly is a 4.4BSD-Lite Unix operating system for the Intel x86 (until version 4) and AMD64 (x86_64) architectures.
What Can DragonFly Do?
Work on BSD-flavor Unix systems running on PC compatible hardware started as a fork of the 4.4BSD-Lite release from Computer Systems Research Group (CSRG) at the University of California at Berkeley. One of the variants that became quite popular became known later as FreeBSD. DragonFly BSD started out as a fork and continuation of FreeBSD 4.8.
Like all other modern PC-compatible BSD variants, it carries on the distinguished tradition of BSD systems development. In addition to the fine work provided by CSRG, the DragonFly Project has put in many thousands of hours in fine-tuning the system for maximum performance and reliability in real-life load situations.
As many of the commercial giants struggle to field PC operating systems with such features, performance and reliability, DragonFly can offer them now!
For example the
HAMMER filesystem, the default in DragonFly BSD, is the most powerful and reliable filesystem available on any operating system. It can handle up to an exbibyte of files (or, 1048576 tebibytes) and can automatically recover without the need for a fsck.
The applications to which DragonFly can be put are truly limited only by your own imagination. From software development to factory automation, inventory control to azimuth correction of remote satellite antennae; if it can be done with a commercial UNIX product, it is more than likely that you can do it with DragonFly, too! DragonFly also benefits significantly from literally thousands of high-quality applications developed by research centres and universities around the world, often available at little to no cost. Commercial applications are also available and appearing in greater numbers every day.
Because the source code for DragonFly itself is generally available, the system can also be customized to an almost unheard-of degree for special applications or projects, and in ways not generally possible with operating systems from most major commercial vendors. Here is just a sampling of some of the applications in which people are currently using DragonFly:
The robust TCP/IP networking built into DragonFly renders it an ideal platform for a variety of Internet services such as:
World Wide Web servers (standard or secure [SSL])
Firewalls and NAT (IP masquerading) gateways
Electronic Mail servers
USENET News or Bulletin Board Systems
With DragonFly, you can install on almost any PC, from older 32 bit computers running 386 or Pentium chips, to modern 64 bit Intel Core or AMD X64 desktop CPUs, and even up to and including high end Xeon CPUs. All of these CPUs share a common ancestry and instruction set, going back to the original Intel 80386 CPU, the first fully 32-bit desktop CPU for "IBM PC compatible" computers.
Here are some of the fields where people are using Dragonfly BSD, and the reasons that they find that DragonFly BSD fits their needs:
Education: Are you a student of computer science or a related engineering field? There is no better way of learning about operating systems, computer architecture, and networking than the hands-on, under-the-hood experience that DragonFly can provide. A number of freely available CAD, mathematical, and graphic design packages also make it highly useful to those whose primary interest in a computer is to get other work done!
Research: With source code for the entire system available, DragonFly is an excellent platform for research in operating systems as well as other branches of computer science. DragonFly's freely available nature also makes it possible for remote groups to collaborate on ideas or shared development without having to worry about special licensing agreements or limitations on what may be discussed in open forums.
Networking: Need a new router? A name server (DNS)? A firewall to keep people out of your internal network? DragonFly can easily turn that unused older PC sitting in the corner into an advanced router with sophisticated packet-filtering capabilities.
X Window workstation: DragonFly is a fine choice for an inexpensive X terminal solution, using the freely available X.org server. Unlike an X terminal, DragonFly allows many applications to be run locally if desired, thus relieving the burden on a central server. DragonFly can even boot diskless, making individual workstations even cheaper and easier to administer.
Software Development: The basic DragonFly system comes with a full complement of development tools including the renowned GNU C/C++ compiler and debugger.
DragonFly is available via anonymous FTP or GIT. Please see Appendix A for more information about obtaining DragonFly.
For more help on installing, see the appropriate sections of this handbook.
About the DragonFly Project
The following section provides some background information on the project, including a brief history, project goals, and the development model of the project.
A Brief History of DragonFly
Matthew Dillon, one of the developers for FreeBSD, was growing increasingly frustrated with the FreeBSD Project's direction for release 5. The FreeBSD 5 release had been delayed multiple times, and had performance problems compared to earlier releases of FreeBSD. DragonFly was announced in June of 2003. The code base was taken from the 4.8 release of FreeBSD, which offered better performance and more complete features. Development has proceeded at a very quick rate since then, with Matt Dillon and a group of developers fixing longstanding BSD bugs and modernizing the new DragonFly system.
DragonFly Project Goals
DragonFly is an effort to maintain the traditional BSD format -- lean, stable code -- along with modern features such as lightweight threads, a workable packaging system, and a revised VFS. Underpinning all this work is efficient support for multiple processors, something rare among open source systems. Because DragonFly is built on an existing very stable code base, it is possible to make these radical changes as part of an incremental process.
The DragonFly Development Model
*Written by Justin Sherrill. *
DragonFly is developed by many people around the world. There is no qualification process; anyone may submit his or her code, documentation, or designs, for use in the Project. Here is a general description of the Project's organizational structure.
Source for DragonFly is kept in git, available with each DragonFly install. The primary git repository resides on a machine in California, USA. Documentation on obtaining the DragonFly source is available elsewhere in this book. The best way of getting changes made to the DragonFly source is to mail the submit mailing list. Including desired source code changes (unified diff format is best) is the most useful format. A certain number of developers have access to commit changes to the DragonFly source, and can do so after review on that list. The DragonFly development model is loose; changes to the code are generally peer-reviewed and added when any objections have been corrected. There is no formal entry/rejection process, though final say on all code submissions goes to Matt Dillon, as originator of this project.
The Current DragonFly Release
DragonFly is a freely available, full source 4.4BSD-Lite based release for almost all Intel and AMD based computer systems. It is based primarily on FreeBSD 4.8, and includes enhancements from U.C. Berkeley's CSRG group, NetBSD, OpenBSD, 386BSD, and the Free Software Foundation. A number of additional documents which you may find very helpful in the process of installing and using DragonFly may now also be found in the
/usr/share/doc directory on any machine.
Matthew Dillon happened to take a picture of a dragonfly in his garden while trying to come up with a name for this new branch of BSD. Taking this as inspiration, "DragonFly" became the new name.