So how is FreeBSD 9 shaping up?

It's still early to talk about FreeBSD 9.0 release but so far there have been some interesting developments in the systems and a nice core featureset is shaping up. I'm still maintaining the "What's cooking" page and this post is basically an (incomplete) summary of it at this point in time.

Of course, in addition to these features, there are non-stop modifications to all parts of the system, from drivers for new hardware to overall performance enhancements.

I'm still much involved in storage so I'll start from this part of the system, The two biggest novelties here are the latest and greatest version of ZFS (v28 as of this writing) and UFS-SUJ.

From the ZFS front we expect fancy new features (compared to v14 which is the latest in STABLE) like deduplication, log device removal, RAID-Z3, user and group quotas, and a large number of performance and stability improvements. It's been a couple of years since ZFS was first imported in FreeBSD and it's been a text-book case of how even when the APIs are matched there remain a lot of semantic differences which lead to behaviour from crashes (like the early memory size crashes) to slowdowns (though some of those were not FreeBSD's fault). Hopefully, 9.0 will finally ship with ZFS in which the edge cases of the integration are smoothed enough for serious production use. It is likely that 8-STABLE will stay with ZFS v15 MFC-ed (with the majority of the stability improvements). Major developers working on ZFS for 9.0 were Pawel Jakub Dawidek, Martin Matuska, Andriy Gapon and Kip Macy.

The venerable UFS has finally received integrated journalling. Earlier it was possible to use gjournal (in whose making I've actually participated in an roundabout way) but it was a bulk-data journalling effort, making no distinction between data and metadata, requiring a large journal. The SUJ mode is an addon to SoftUpdates, extending it to record a very small intent-log journal for the edge-cases where it required a (light version of) fsck. This development makes UFS a fully fsck-less file system in the common case. Users of UFS quotas will be happy to finally have 64-bit quota counters, allowing more than 2 TB quota rules, and security-conscious will probably soon endorse NFSv4-style ACL security rules. Default tuning for the UFS has also changed a bit (by me), making it significantly faster with devices which support tagged queueing (like SATA with AHCI) and where disk access latencies are high (like in virtualized environment). Maybe we will finally see decent results from third party file system benchmarks with default tuning. Major developers working on UFS were Jeff Roberson, Kirk McKusick and Edward Tomasz Napierala.

As mentioned before, the new AHCI driver for SATA is stable and offers better performance so is recommended to everyone with SATA drives. Its developer is Alexandar Motin.

Users requiring highly available (replicated) storage will make use of the HAST daemon, a userland GEOM replication system by Pawel Jakub Dawidek.

On the general development side, LLVM support is progressing nicely and it was imported in the base system. It is still undecided if it will be the default compiler for 9.0, but it has proven itself to work correctly. The LLVM/CLANG effort was spearheaded by Roman Divacky, Pawel Worach, Ed Schouten, Rene Ladan and Dimitry Andric.

Rounding up the DTrace import is the official support for tracing userland processes with DTrace hooks. This type of tracing has already been accepted in some large projects like PostgreSQL and X.Org for internal testing and debugging, and offering the feature in FreeBSD makes it more accessible and gives incentive to spread it to more projects. The implementor of userland DTrace was Rui Paulo.

Revamp of the timer infrastructure is progressing nicely, and will probably soon enable running a "tickless" kernel (without periodic timers if they are unused). It is developed by Alexander Motin.

The VM system and superpages received performance optimizations by Alan Cox and other developers, and first steps toward a NUMA-aware system were made by John Baldwin.

#1 Re: So how is FreeBSD 9 shaping up?

Added on 2010-09-16T02:20 by Brandon Gooch

I'm extremely psyched up about 9! There are so many awesome things are happening, it's hard to keep track of them all, so thank you for the excellent, concise write-up (and of course the "What's Cooking..." page -- an oft visited URL by my colleagues and I).

Please keep up the good work!

#2 Re: So how is FreeBSD 9 shaping up?

Added on 2010-09-20T12:44 by Robert

Dear FreeBSD devs,

you are doing a wonderful job! It is really appreciated what has been accomplished so far and before the end of this year I will donate again.


#3 Re: So how is FreeBSD 9 shaping up?

Added on 2010-09-21T01:44 by Jesse

Fabulous!  Excited to see ZFS fully featured and well suited for production in FreeBSD 9.

#4 Re: So how is FreeBSD 9 shaping up?

Added on 2010-09-21T15:09 by amani

I'm excited about the FreeBSD 9, but disappointed to see that it will be IPv6 only.

#5 Re: So how is FreeBSD 9 shaping up?

Added on 2010-09-21T15:50 by Ivan Voras

Of course that "ipv6-only" will be an optional feature :)

#6 Want kauth framework...

Added on 2010-09-21T18:10 by

The Apple and NetBSD "kauth" that is ... not the kerberos app we already have that :)

Would be nice 

#7 What tools to use for AHCI

Added on 2010-09-21T18:20 by

If SATA drives are managed by AHCI then we have to use camcontrol instead of atacontrol correct?

I think camcontrol <command> should recognize when a command targets a scsi peripheral and then sanitize/restrict the set of acceptable args and commands;  it should recognize when "camcontrol <command>" targets a sata peripheral and sanitize those commands too (e.g. just recognize some of commands from atacontrol).  As it stands when using AHCI, camcontrol offers nothing like atacontrol.


#8 Re: What tools to use for AHCI

Added on 2010-09-21T21:47 by Ivan Voras

AHCI is CAM-based, so camcontrol must be used - it is the official interface. I'm not sure what you want to say but you could contact the developer (mav@) if you have some acutal problems. In theory, camcontrol should offer a superset of atacontrol.

#9 FreeBSD 9 progress

Added on 2010-09-21T23:34 by Ralph Ellis

I am using FreeBSD 9 since updating a PC-BSD 8.1 installation. So far it has been very stable and has solved an issue with K3b and my CD/DVD drive. For the most part it seems a little faster.

What really impressed me is that it is a development system with so few bugs in it. I have had no surprise crashes or odd behaviour.

#10 Re: FreeBSD 9 progress

Added on 2010-09-22T01:54 by Mihai

How's the support for ATI Radeon 5XXX series comming along?

#11 Re: FreeBSD 9 progress

Added on 2010-09-22T22:35 by Ivan Voras

Radeon drivers used on FreeBSD are practically the same Radeon drivers used on Linux and developed by the X.Org project. In other words, track X.Org for progress.

#12 Re: FreeBSD 9 progress

Added on 2010-09-26T02:30 by michele

Any forecast yet as to when 9-RELEASE will happen? Late 2011?

#13 Re: FreeBSD 9 progress

Added on 2010-09-27T13:37 by Ivan Voras

I'm completely guessing here, but I think it may be possible for 9-RELEASE to happen in Q1 or Q2 of 2011.

#14 Re: FreeBSD 9 progress

Added on 2010-12-14T00:17 by Sammy Sumer

Dear FreeBSD

When are you going to grow up and have a new modern installer.

The installer is the same thing as it was 10 years ago.

Dear FreeBSD, it is still taking ages to install a new program from port.


#15 Re: FreeBSD 9 progress

Added on 2011-03-10T07:45 by nneko

SaMMY I totally agree. FreeBSD installer is beyond archaic and needs attention urgently.

#16 Re: FreeBSD 9 progress

Added on 2011-03-25T06:58 by Louis E.

I am quite confident that a 9-RELEASE will not happen in Q1 2011,and doubt it very much for Q2.

Now that 7.4-RELEASE is done those who worked on it are turning to 9,but the Release Engineering page has not hinted at any dates for the next releases yet.

#17 Re: FreeBSD 9 progress

Added on 2011-07-12T09:02 by Edward O'Callaghan


Will AHCI become default in GENERIC. FreeBSD's GENERIC really annoys me, I find it rather sub-optimal and you need to do awhole bunch of kmodloads to get things like SATA CDRW working and such still in 2011. Everything is supported ofcourse and works well however GENERIC's config really really should be updated a little (I understand back compat is important) to reflect support for systems beyond 486's :p

Good to hear about the recent GEM/KMS work, that has been way overdue :D

Kind Regards,

Comments !