2 FreeBSD as a set of building blocks

FreeBSD makes an excellent foundation on which to build products:

[GoldGab2005] examines the business reasons for using open-source in greater detail. For organizations, the benefits of using FreeBSD components in their products include a shorter time to market, lower development costs and lower development risks.

2.1 Building with FreeBSD

Here are a few ways organizations have used FreeBSD:

2.2 Technologies

There are a large number of technologies supported by the FreeBSD project. A selection of these are listed below:

2.3 Organizational Structure

FreeBSD's organizational structure is non-hierarchical.

There are essentially two kinds of contributors to FreeBSD, general users of FreeBSD, and developers with write access (known as committers in the jargon) to the source base.

There are many thousands of contributors in the first group; the vast majority of contributions to FreeBSD come from individuals in this group. Commit rights (write access) to the repository are granted to individuals who contribute consistently to the project. Commit rights come with additional responsibilities, and new committers are assigned mentors to help them learn the ropes.

Figure 1. FreeBSD Organization

Conflict resolution is performed by a nine member “Core Team” that is elected from the group of committers.

FreeBSD does not have “corporate” committers. Individual committers are required to take responsibility for the changes they introduce to the code. The FreeBSD Committer's guide [ComGuide] documents the rules and responsibilities for committers.

FreeBSD's project model is examined in detail in [Nik2005].

2.4 FreeBSD Release Engineering Processes

FreeBSD's release engineering processes play a major role in ensuring that its released versions are of a high quality. At any point of time, FreeBSD's volunteers support multiple code lines (Figure 2):

Figure 2. FreeBSD Release Branches

Code lines are kept alive for as long as there is user and developer interest in them.

Machine architectures are grouped into “tiers”; Tier 1 architectures are fully supported by the project's release engineering and security teams, Tier 2 architectures are supported on a best effort basis, and experimental architectures comprise Tier 3. The list of supported architectures is part of the FreeBSD documentation collection.

The release engineering team publishes a road map for future releases of FreeBSD on the project's web site. The dates laid down in the road map are not deadlines; FreeBSD is released when its code and documentation are ready.

FreeBSD's release engineering processes are described in [RelEngDoc].