Building Products with FreeBSD

Joseph Koshy

The FreeBSD Project
Revision: 46458
Legal Notice
Last modified on 2015-04-04 by eadler.
Abstract

The FreeBSD project is a worldwide, voluntary, 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.

[ Split HTML / Single HTML ]

Table of Contents
1. Introduction
2. FreeBSD as a set of building blocks
3. Collaborating with FreeBSD
4. Conclusion
Bibliography

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.
  • Technology consultants looking for best-practices in leveraging open-source.
  • 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 overview of the available technology in the project.
  • 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.

1.3. Article Structure

The rest of the article is structured as follows:

All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/

Questions that are not answered by the documentation may be sent to <[email protected]>.
Send questions about this document to <[email protected]>.