# Choosing the FreeBSD Version That Is Right For You

### The FreeBSD Documentation Project

Copyright © 2005 The FreeBSD Documentation Project

$FreeBSD: doc/en_US.ISO8859-1/articles/version-guide/article.sgml,v 1.15 2010/02/19 21:33:18 jhb Exp $

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

[ Split HTML / Single HTML ]

# 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).

|  | Next
|  | Release Scheduling In The Past