Building Products with FreeBSD

JosephKoshy

The FreeBSD project is a worldwide, volunteer based, and
collaborative project, which develops a portable and high-quality
operating system. The FreeBSD project distributes the source
code for its product under a liberal license, with the
intention of encouraging the use of its code. Collaborating
with the FreeBSD project can help organizations reduce their
time to market, reduce engineering costs and improve their
product quality.

This article examines the issues in using FreeBSD code in
appliances and software products. It highlights the
characteristics of FreeBSD that make it an excellent substrate
for product development. The article concludes by suggesting a
few “best practices” for organizations
collaborating with the FreeBSD project.

1.Â Introduction

FreeBSD today is well-known as a high-performance server
operating system. It is deployed on millions of web servers and
internet-facing hosts worldwide. FreeBSD code also forms an
integral part of many products, ranging from appliances such as
network routers, firewalls, and storage devices, to personal
computers. Portions of FreeBSD have also been used in
commercial shrink-wrapped software (see
SectionÂ 2, “FreeBSD as a set of building blocks”).

In this article we look at the FreeBSD project as a software
engineering resource—as a collection of building blocks
and processes which you can use to build products.

While FreeBSD's source is distributed freely to the public,
to fully enjoy the benefits of the project's work, organizations
need to collaborate with the project. In
subsequent sections of this article we discuss effective means
of collaboration with the project and the pitfalls that need to
be avoided while doing so.

Caveat Reader.Â The author believes that the characteristics of the FreeBSD
Project listed in this article were substantially true at the
time the article was conceived and written (2005). However, the
reader should keep in mind that the practices and processes used
by open-source communities can change over time, and that the information
in this article should therefore be taken as indicative rather
than normative.

1.1.Â Target Audience

This document would be of interest to the following broad
groups of people:

Decision makers in product companies looking at
ways to improve their product quality, reduce their time
to market and lower engineering costs in the long
term.

Industry observers interested in understanding the
dynamics of open-source projects.

Software developers seeking to use FreeBSD and
looking for ways to contribute back.

1.2.Â Article Goals

After reading this article you should have:

An understanding of the goals of the FreeBSD
Project and its organizational structure.

An understanding of its development model and
release engineering processes.

An understanding of how conventional corporate
software development processes differ from that used in
the FreeBSD project.

Awareness of the communication channels used by the
project and the level of transparency you can
expect.

Awareness of optimal ways of working with the
project—how best to reduce engineering costs,
improve time to market, manage security vulnerabilities,
and preserve future compatibility with your product as the
FreeBSD project evolves.