Choosing the FreeBSD Version That Is Right For You

$FreeBSD: head/en_US.ISO8859-1/articles/version-guide/article.sgml 39544 2012-09-14 17:47:48Z gabor $

$FreeBSD: head/en_US.ISO8859-1/articles/version-guide/article.sgml 39544 2012-09-14 17:47:48Z gabor $

So you have chosen to install FreeBSD. Welcome! This document is designed to help you to decide which version to install.


Table of Contents
1 Background
2 Release Scheduling In The Past
3 Release Scheduling Goals Going Forward
4 How Do These Factors Affect My Decision?
5 Conclusion

1 Background

To decide which version of FreeBSD is the best for your needs, it is important to understand a few concepts about our development and Release Engineering (RE) processes.

FreeBSD is developed by a large group of individuals who are almost entirely volunteers. The source code to the kernel and the most common libraries and utilities is maintained in a source control system and available for the general public to download at any time. Separately, compiled versions (binaries) are made available on a recurring basis. Some of these binary versions undergo an extensive testing process and are then termed a release.

1.1 Releases

Releases are named with a major version number and minor version number.

  • The goal of a major release is to introduce a set of new features. Inevitably, as new features are added to FreeBSD, or as older features are no longer useful or are dropped, it is sometimes necessary to break compatibility with previous major releases.

  • The goal of a minor release is primarily to fix bugs and improve performance and stability. Keeping both source-level and binary compatibility from one minor release to another is a priority. On occasion, new features may be added to a minor release when it is believed that these other goals will not be compromised.

However, keep in mind that a “release version” is merely a snapshot of the source tree at a particular point in time which is given a particular name (or tag). (For instance, the tag that Release Engineering assigned for the 5.4 release was RELENG_5_4_0_RELEASE.) Development always continues on what is known as the HEAD tag.

1.2 Branches

At the time of each release, a branch is created, such as RELENG_5_4. Although the source files named by RELENG_5_4_0_RELEASE will never change, those on RELENG_5_4 can, by the adoption of changes from HEAD such as fixes for security and other bugs.

During the life of each major release, another tag is created such as RELENG_5. In addition to security and other bug fixes, other new changes can be brought in from HEAD so as to constitute the changes for the next minor release in the sequence.

1.3 STABLE versus CURRENT

During the lifetime of each major release, an individual branch may also be termed STABLE. This indicates that the FreeBSD Project believes that the branch is of sufficiently proven quality to be used by a wide range of users. Branches that need further testing before being widely adopted are named CURRENT.

Note: The FreeBSD Project cannot in and of itself guarantee that the software that it ships is stable enough for any given installation. Only each individual user can make that decision. Please keep in mind that the Project is primarily composed of volunteers and is not able to offer any kind of warranty of fitness.

1.4 Ports versus Packages

Separately from the files distributed above, FreeBSD supports thousands of applications that are developed by third parties outside of the project itself. (Examples include windowing systems, Internet browsers, email programs, office suites, and so forth.) In general, the project itself does not develop this software, only the framework to allow these programs to be installed (termed the Ports Collection). Applications may be installed either from source, if its licensing terms allow such redistribution (these are called ports), or as compiled binaries if allowed (these are called packages).