Warner Losh - Tracking FreeBSD in a commercial Environment
Source: BSDCan - The Technical BSD Conference
Added: 25 May 2009
Tags: bsdcan, bsdcan2009, presentation, freebsd, commercial environment, waner losh
Paper (624 Kb, 45 pages), Slides (104 Kb, 10 pages)
		
		Tracking FreeBSD in a commercial Environment
		How to stay current while staying sane
		
		The FreeBSD project publishes two lines of source
		code: current and stable. All changes must first
		be committed to current and then are merged into
		stable. Commercial organizations wishing to use
		FreeBSD in their products must be aware of this
		policy. Four different strategies have developed
		for tracking FreeBSD over time. A company can choose
		to run only unmodified release versions of FreeBSD.
		A company may choose to import FreeBSD's sources
		once and then never merge newer versions. A company
		can choose to import each new stable branch as it
		is created, adding its own changes to that branch,
		as well as integrating new versions from FreeBSD
		from time to time. A company can track FreeBSD's
		current branch, adding to it their changes as well
		as newer FreeBSD changes. Which method a company
		chooses depends on the needs of the company. These
		methods are explored in detail, and their advantages
		and disadvantages are discussed. Tracking FreeBSD's
		ports and packages is not discussed.
		
		Companies building products based upon FreeBSD have
		many choices in how to use the projects sources and
		binaries. The choices range from using unmodified
		binaries from FreeBSD's releases, to tracking modify
		FreeBSD heavily and tracking FreeBSD's evolution
		in a merged tree. Some companies may only need to
		maintain a stable version of FreeBSD with more bug
		fixes or customizations than the FreeBSD project
		wishes to place in that branch. Some companies also
		wish to contribute some subset of their changes
		back to the FreeBSD project.
		
		FreeBSD provides an excellent base technology with
		which to base products. It is a proven leader in
		performance, reliability and scalability. The
		technology also offers a very business friendly
		license that allows companies to pick and choose
		which changes they wish to contribute to the community
		rather than forcing all changes to be contributed
		back, or attaching other undesirable license
		conditions to the code.
		
		However, the FreeBSD project does not focus on
		integration of its technology into customized
		commercial products. Instead, the project focuses
		on producing a good, reliable, fast and scalable
		operating system and associated packages. The project
		maintains two lines of development. A current branch,
		where the main development of the project takes
		place, and a stable branch which is managed for
		stability and reliability. While the project maintains
		documentation on the system, including its development
		model, relatively little guidance has been given
		to companies in how to integrate FreeBSD into their
		products with a minimum of trouble.
		
		Developing a sensible strategy to deal with both
		these portions of FreeBSD requires careful planning
		and analysis. FreeBSD's lack of guidelines to
		companies leaves it up to them to develop a strategy.
		FreeBSD's development model differs from some of
		the other Free and Open Source projects. People
		familiar with those systems often discover that
		methods that were well suited to them may not work
		as well with FreeBSD's development model. These two
		issues cause many companies to make poor decisions
		without understanding the problems that lie in their
		future.
		
		Very little formal guidance exists for companies
		wishing to integrate FreeBSD into their products.
		Some email threads can be located via a Google
		search that could help companies, but many of them
		are full of contradictory information, and it is
		very disorganized. While the information about the
		FreeBSD development process is in the FreeBSD
		handbook, the implications of that process for
		companies integrating FreeBSD into their products
		are not discussed.