FreeBSD is a modern operating system for desktops, laptops, servers, and embedded systems with support for a large number of platforms.
It is based on U.C. Berkeley's “4.4BSD-Lite” release, with some “4.4BSD-Lite2” enhancements. It is also based indirectly on William Jolitz's port of U.C. Berkeley's “Net/2” to the i386™, known as “386BSD”, though very little of the 386BSD code remains.
FreeBSD is used by companies, Internet Service Providers, researchers, computer professionals, students and home users all over the world in their work, education and recreation.
For more detailed information on FreeBSD, please see the FreeBSD Handbook.
The goal of the FreeBSD Project is to provide a stable and fast general purpose operating system that may be used for any purpose without strings attached.
Yes. Those restrictions do not control how you use the code, merely how you treat the FreeBSD Project itself. If you have serious license concerns, read the actual license. For the simply curious, the license can be summarized like this.
Do not claim that you wrote this.
Do not sue us if it breaks.
Do not remove or modify the license.
Many of us have a significant investment in the project and would certainly not mind a little financial compensation now and then, but we definitely do not insist on it. We believe that our first and foremost “mission” is to provide code to any and all comers, and for whatever purpose, so that the code gets the widest possible use and provides the widest possible benefit. This, we believe, is one of the most fundamental goals of Free Software and one that we enthusiastically support.
Code in our source tree which falls under the GNU General Public License (GPL) or GNU Library General Public License (LGPL) comes with slightly more strings attached, though at least on the side of enforced access rather than the usual opposite. Due to the additional complexities that can evolve in the commercial use of GPL software, we do, however, endeavor to replace such software with submissions under the more relaxed FreeBSD license whenever possible.
For most people, yes. But this question is not quite that cut-and-dried.
Most people do not actually use an operating system. They use applications. The applications are what really use the operating system. FreeBSD is designed to provide a robust and full-featured environment for applications. It supports a wide variety of web browsers, office suites, email readers, graphics programs, programming environments, network servers, and just about everything else you might want. Most of these applications can be managed through the Ports Collection.
If you need to use an application that is only available on one operating system, you simply cannot replace that operating system. Chances are there is a very similar application on FreeBSD, however. If you want a solid office or Internet server, a reliable workstation, or just the ability to do your job without interruptions, FreeBSD will almost certainly do everything you need. Many computer users across the world, including both novices and experienced UNIX® administrators, use FreeBSD as their only desktop operating system.
If you are migrating to FreeBSD from some other UNIX environment, you already know most of what you need to. If your background is in graphic-driven operating systems such as Windows® and Mac OS®, you may be interested in using PC-BSD, a FreeBSD based distribution, instead. If you have not used UNIX before expect to invest additional time learning the UNIX way of doing things. This FAQ and the FreeBSD Handbook are excellent places to start.
It may be used free of charge, even by commercial users.
Full source for the operating system is freely available, and the minimum possible restrictions have been placed upon its use, distribution and incorporation into other work (commercial or non-commercial).
Anyone who has an improvement or bug fix is free to submit their code and have it added to the source tree (subject to one or two obvious provisions).
It is worth pointing out that the word “free” is being used in two ways here, one meaning “at no cost”, the other meaning “you can do whatever you like”. Apart from one or two things you cannot do with the FreeBSD code, for example pretending you wrote it, you can really do whatever you like with it.
James Howard wrote a good explanation of the history and differences between the various projects, called The BSD Family Tree which goes a fair way to answering this question. Some of the information is out of date, but the history portion in particular remains accurate.
Most of the BSDs share patches and code, even today. All of the BSDs have common ancestry.
The design goals of FreeBSD are described in Q: 1.2., above. The design goals of the other most popular BSDs may be summarized as follows:
NetBSD aims to be easily ported to other hardware platforms.
DragonFly BSD is a fork of FreeBSD 4.8 that has since developed many interesting features of its own, including the HAMMER file system and support for user-mode “vkernels”.
At any point in the development of FreeBSD, there can be multiple parallel branches. 9.X releases are made from the 9-STABLE branch, and 8.X releases are made from the 8-STABLE branch.
Up until the release of 9.0, the 8.X series was the one known as -STABLE. However, as of 10.X, the 8.X branch will be designated for an “extended support” status and receive only fixes for major problems, such as security-related fixes.
Briefly, -STABLE is aimed at the ISP, corporate user, or any user who wants stability and a minimal number of changes compared to the new (and possibly unstable) features of the latest -CURRENT snapshot. Releases can come from either branch, but -CURRENT should only be used if you are prepared for its increased volatility (relative to -STABLE, that is).
Releases are made every few months. While many people stay more up-to-date with the FreeBSD sources (see the questions on FreeBSD-CURRENT and FreeBSD-STABLE) than that, doing so is more of a commitment, as the sources are a moving target.
FreeBSD-CURRENT is the development version of the operating system, which will in due course become the new FreeBSD-STABLE branch. As such, it is really only of interest to developers working on the system and die-hard hobbyists. See the relevant section in the Handbook for details on running -CURRENT.
If you are not familiar with FreeBSD you should not use FreeBSD-CURRENT. This branch sometimes evolves quite quickly and due to mistake can be un-buildable at times. People that use FreeBSD-CURRENT are expected to be able to analyze, debug, and report problems.
FreeBSD snapshot releases are made based on the current state of the -CURRENT and -STABLE branches. The goals behind each snapshot release are:
To test the latest version of the installation software.
To give people who would like to run -CURRENT or -STABLE but who do not have the time or bandwidth to follow it on a day-to-day basis an easy way of bootstrapping it onto their systems.
To preserve a fixed reference point for the code in question, just in case we break something really badly later. (Although Subversion normally prevents anything horrible like this happening.)
To ensure that all new features and fixes in need of testing have the greatest possible number of potential testers.
No claims are made that any -CURRENT snapshot can be considered “production quality” for any purpose. If you want to run a stable and fully tested system, you will have to stick to full releases, or use the -STABLE snapshots.
Snapshot releases are directly available from snapshot.
Official snapshots are generated on a regular basis for all actively developed branches.
Back when FreeBSD 2.0.5 was released, FreeBSD development branched in two. One branch was named -STABLE, one -CURRENT. FreeBSD-STABLE is intended for Internet Service Providers and other commercial enterprises for whom sudden shifts or experimental features are quite undesirable. It receives only well-tested bug fixes and other small incremental enhancements. FreeBSD-CURRENT, on the other hand, has been one unbroken line since 2.0 was released, leading towards 9.1-RELEASE and beyond. For more detailed information on branches see “FreeBSD Release Engineering: Creating the Release Branch”, the status of the branches and the upcoming release schedule can be found on the Release Engineering Information page.
9.1-STABLE is the actively developed -STABLE branch. The latest release on the 9.1-STABLE branch is 9.1-RELEASE, which was released in December 2012.
The 10-CURRENT branch is the actively developed -CURRENT branch toward the next generation of FreeBSD. See What is FreeBSD-CURRENT? for more information on this branch.
The Release Engineering Team
<re@FreeBSD.org> releases a new major version
of FreeBSD about every 18 months and a new minor version about every 8 months,
on average. Release dates are announced well in advance, so that the people
working on the system know when their projects need to be finished and tested. A
testing period precedes each release, to ensure that the addition of new
features does not compromise the stability of the release. Many users regard this
caution as one of the best things about FreeBSD, even though waiting for all the
latest goodies to reach -STABLE can be a little frustrating.
More information on the release engineering process (including a schedule of upcoming releases) can be found on the release engineering pages on the FreeBSD Web site.
For people who need or want a little more excitement, binary snapshots are made weekly as discussed above.
The key decisions concerning the FreeBSD project, such as the overall direction of the project and who is allowed to add code to the source tree, are made by a core team of 9 people. There is a much larger team of more than 350 committers who are authorized to make changes directly to the FreeBSD source tree.
However, most non-trivial changes are discussed in advance in the mailing lists, and there are no restrictions on who may take part in the discussion.
Every significant release of FreeBSD is available via anonymous FTP from the FreeBSD FTP site:
The latest 9-STABLE release, 9.1-RELEASE can be found in the 9.1-RELEASE directory.
The latest 8-STABLE release, 8.3-RELEASE can be found in the 8.3-RELEASE directory.
Information about obtaining FreeBSD on CD, DVD, and other media can be found in the Handbook.
The Problem Report database of all user change requests may be queried by using our web-based PR query interface.
The send-pr(1) command can be used to submit problem reports and change requests via electronic mail. Alternatively, the web-based problem report submission interface can be used to submit problem reports through a web browser.
Before submitting a problem report, please read Writing FreeBSD Problem Reports, an article on how to write good problem reports.