The arrow of time

Ivan Voras' blog

FreeBSD 6.x EOL

A Security Officer bulletin has been issued recently to announce the end-of-line for FreeBSD 6.x - which is an opportunity to discuss how FreeBSD release cycle generally works (for those not familiar with it).

Firstly, while it may look like yesterday for developers and users tightly in tune with FreeBSD development, FreeBSD 6.0 was released 5 years ago. FreeBSD has this great feature called "backwards ABI compatibility" meaning that you can take a program, and often a kernel module, compiled for 6.0 and run in on the latest and greatest 6.x release, the 6.4 release, without problems. This compatibility is sometimes taken to extremes. While not as closely tracked, the reverse "forward compatibility" is sometimes also true - you can take a program built for 6.4 and run it in 6.0, and sometimes if you are lucky, also a kernel module.

Because of this, from the user point of view it makes sense to talk about a FreeBSD "line", "branch" or a "generation" such as "FreeBSD 6", with individual release versions only mentioned if specifics are needed. A FreeBSD generation is usually distinguished from its predecessor by a large new featureset, a significant kernel development, while the releases within the generation usually carry minor changes. Of course, bugfixes are applied and anyone running 6.0 when 6.4 is available is risking a lot.

Such "branches" in FreeBSD are also called "STABLE" branches, referring specifically to the ABI stability feature. From 6 onwards, the branches are: 6-STABLE, 7-STABLE and 8-STABLE. All of these, according to the security bulletin, are currently supported by the security team, with the support for 6-STABLE expiring at the end of November. It is from these branches that releases are made. When enough changes accumulate in a STABLE branch, a new release is wrapped up from its code. It means that, at the same time, the release engineering team could issue releases from multiple branches, for example 6.5, 7.4 and 8.2. Of course, with FreeBSD 6 EOL, version 6.5 will never happen.

The latest and greatest FreeBSD release at the time of this writing is FreeBSD 8.1 - it is the second release from the FreeBSD 8-STABLE branch.

On the far bleeding edge of development is the "CURRENT" or "HEAD" branch. This is the raw version controlled software branch into which new code is committed hourly. It contains the very recent developments which may or may not be finished or stable. When enough features accumulate here, the code will be branched into a new STABLE branch, called 9-STABLE. Eventually, a FreeBSD 9.0 release will be published from this branch, while new code will continue to be added to CURRENT.

Post your comment here!

Your name:
Comment title:
Text:
Type "xxx" here:

Comments are subject to moderation and will be deleted if deemed inappropriate. All content is © Ivan Voras. Comments are owned by their authors... who agree to basically surrender all rights by publishing them here :)