Building Products with FreeBSD

Joseph Koshy

The FreeBSD Project
$FreeBSD: head/en_US.ISO8859-1/articles/building-products/article.xml 39632 2012-10-01 11:56:00Z gabor $

$FreeBSD: head/en_US.ISO8859-1/articles/building-products/article.xml 39632 2012-10-01 11:56:00Z gabor $

Legal Notice

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.


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

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:

  • Section 2 introduces the FreeBSD project, explores its organizational structure, key technologies and release engineering processes.

  • Section 3 describes ways to collaborate with the FreeBSD project. It examines common pitfalls encountered by corporates working with voluntary projects like FreeBSD.

  • Section 4 concludes.