By the time you read this, I will
be dead. Just kidding. By the time you read this, FreeBSD 4.0 should be out –
or close to it. So, what’s the big deal? And why should you upgrade to it, or
use it as a convenient excuse to switch to FreeBSD?
A quick recap for the new students
in class: FreeBSD is a free version of the BSD Unix operating system (and one
which claims to have roughly 30 percent market share in the ISP space). BSD
Unix is descended from the original AT&T Unix code currently maintained by
SCO. When BSD grew up, moved out of the house for good and broke away from the
dysfunctional Ma Bell family, FreeBSD emerged, originally dedicated to
enhancing the performance of BSD servers on Intel-compatible (x86) hardware.
FreeBSD began a relatively rapid
growth and adoption phase, at least inside the ISP/webhosting markets.
FreeBSD’s developers concentrated on developing and optimizing for the hardware
they were using – which was largely x86 servers, SCSI drives and other
server-centric (rather than home-user centric) equipment. As a result, they
developed (arguably) the highest public profile of any of the free BSD Unixes,
building a list of users that included Yahoo!, the world’s busiest FTP server (ftp.cdrom.com), and Hotmail.
However, from seemingly out of
nowhere, Linux exploded onto the scene and left all other free Unixes behind.
Although BSD Unix had been around for years, as far as most of the world was
concerned, Linux was it.
By 1998, FreeBSD was at its lowest
ebb. Linux – through its open development model and focus on end-user hardware
– had long since become the free Unix for legions of old and new hackers
worldwide. Linux advocacy was loud, assertive, got press attention – and as a
result, Linux had stepped into the public limelight while the BSDs were Unix’s
“crazy old aunt up in the attic.” Finding the old O’Reilly books on 4.4 BSD
Unix – let alone finding a mention in the press of BSD – was harder than
putting lipstick on a chicken. Fortunately, FreeBSD seemed to have learned
something from the experience.
Jordan Hubbard works for Walnut
Creek CD-ROM (think ftp.cdrom.com),
which sells FreeBSD, Linux and other open-source distributions. He’s also the
Current Release Engineer for FreeBSD, and its unofficial PR guy. Known as “jkh”
by legions of FreeBSD devotees, he’s also responsible for /stand/sysinstall and other user-interface niceties of FreeBSD, as well as
legions of other internal enhancements.
In his 1999 FreeBSD “State of the
Union” address, Hubbard indicated – like Steve Jobs before him – that he
understood that technical superiority of an operating system alone did not
guarantee its success – it took PR and user help. He said that FreeBSD’s
upgrades would henceforth come in tenth decimals, rather than hundreds, so that
the public and press would take more notice. Furthermore, he actively called on
FreeBSD users to advocate for their OS.
The FreeBSD core team had
fortunately learned from the divisive standards wars that Unix had undergone
(and they had been a part of). FreeBSD would work with Linux rather than against it. Recognizing Linux as a sort of de facto API for free Unix applications, FreeBSD would include
compatibility for Linux, rather than insist on developers writing their
applications for one OS or the other. Smart move.
Since that time, FreeBSD has
enjoyed a significant growth in popular support, has been the subject of
articles in MSNBC and Salon, the subject of a special section on Slashdot, and has experienced a surge in downloads. Darwin, the open-source base of Apple’s forthcoming MacOS X, will have its future releases tied to FreeBSD. Even
better, FreeBSD now has its own yearly tradeshow – FreeBSDcon, showing strong signs of the growth in its support.
I ran into Jordan Hubbard at
ISPCON, when I stopped by the FreeBSD booth to see if anyone could tell me
whether one of the core team members would be at the conference for me to
interview. There was Hubbard. The result was much like going to CompUSA to buy
a copy of Slackware and finding Linus Torvalds in a red shirt, explaining it
was in aisle six. I fumbled and stuttered that I needed to go grab my iBook
laptop, and I’d come back and interview him, and P.S. I thought he was so cool. He turned to my friend Namita who came with me and
asked, “Is he always this smooth?” Anyway, this interview is the result of that
meeting and a couple of E-mail follow-ups:
Question: When can we expect to
see FreeBSD 4.0?
Hubbard: Sometime in the January - February timeframe. We'll enter
feature freeze for the 4.0 branch on December 15th, after which we'll take
about 30 days to stabilize the branch.
What are the new architectures
that FreeBSD will be coming to?
Hubbard: Well, we're working on several fronts. First, we’re
working with Compaq right now on Alpha SMP (Symmetric Multi-Processing, or
multiple CPUs) support (for which Compaq has kindly sent us almost $300K worth
of miscellaneous hardware) and hope to have something working there by Q1 2000.
We've also started a PowerPC port with the Power Macintosh G3 being our initial
reference platform, but there are no firm dates on when that will be available.
If all goes well, we should also see some significant work on the UltraSPARC
port coming into the tree around the same time (Q1 2000).
Does branching out to more
architectures mean you're changing your focus? Does this mean anything to the
speed or quality of x86 development?
Hubbard: We're not really changing our focus so much as simply
leveraging the much more significant developer assets we now have available,
many of whom want to work on non-x86 platforms, so why not let them? I also
don't expect this to affect the x86 development work in any way since the
lion's share of our developers will still be working on that platform and we
have enough extra people now that we can do both.
The only reason we've focused
exclusively on the x86 platform to date is that we didn't feel we had the
resources to do a really good job there AND also tackle other architectures.
However, we're at least three times the size we were when we made that initial
determination. I think it's now more than possible for us to do a good job on
at least four major architectures, especially since such work tends to
“amortize” due to similarities in those various platforms. For example, the PCI
bus is an increasingly common interface standard, and just about everyone
offers USB.
I think going cross-platform is
simply an inevitable aspect of our evolution and the Alpha port has allowed us
stay more “honest” with respect to FreeBSD’s architectural dependencies.
How important do you see ISPs/webhosters/etc. as a constituency? What are you working on adding/improving that might be of special interest to them or might constitute a reason (aside from the already-existing reasons) for ISPs to use FreeBSD?
Hubbard: We see ISPs, NSPs and the SOHO market as very important
parts of our constituency and we intend to work on a number of issues which
will make FreeBSD more attractive to them. In no particular order those are:
• Pervasive multi-threading (in
the kernel)
• Fine-grained SMP resource
locking
• Clustering (on a variety of fronts)
• RAID controllers and other
large-scale data storage systems
• Embedded systems support (more picoBSD work)
• Serious security auditing and
more built-in security subsystems (K5, IPSec, openSSH, etc).
• Fiber channel support
• Gigabit (and faster) networking
(already works, but we'll be also working on zero-copy TCP and other
performance features)
• IPv6 and IPSec (both
slated for 4.0).
• Better multimedia support (3D
cards, audio, video capture, etc).
We're also working with a number
of vendors, like Oracle, to bring their products to the FreeBSD market and are
getting far more support for this than we used to. Things are definitely
looking up in that category and we hope to have some significant announcements
by the end of the month.
How would you define the
mission of FreeBSD now?
Hubbard: I'd say it's much the same as it always was: Provide robust, high-performance BSD technology in a form which is accessible to the "mass market" by being easy to install and configure and by offering better documentation. It has never been our intention to be just another academic resource, BSD's traditional niche, we want to give Solaris, NT and Linux a run for their money (in that order).
What advancements in
ease-of-administration will people see in 4.0? What about directions for the
future?
Hubbard: More easy to turn knobs in places like /etc/rc.conf and more tools for manipulating those knobs in a friendly
fashion, to put it in a nutshell. Future directions include making kernels
truly GENERIC, in that you don't have to configure your own any more; you just
have one kernel, which dynamically extends itself as necessary. It will still
be possible to configure and run static non-self-extending kernels if necessary
for security or other reasons, but this shouldn't be necessary for the average
user. We're also putting more time into configuration interfaces and fancier
GUI front-ends for those things, which make clear sense to give the user a
"friendlier face" on.
When might FreeBSD's planned
new threads architecture (the proposed mix of kernel-level and user-level
threads I've read a bit about in freebsd-arch) make its way into stable? What benefits will ISP/server
users see?
Hubbard: …4.0 is our current target for the new threads feature
set. ISPs should see the ability to multi-thread applications like mysql in such a way that a single process can take advantage of
multiple CPUs, unlike the one process per CPU model we have now, and we'll have
more POSIX compliant thread behavior for people porting applications from other
platforms.
Jordan Hubbard indicated that
FreeBSD might soon be giving OpenBSD a run for its money as the “secure” BSD.
Hubbard also alluded to – but wouldn’t give any specifics on – a potential “big
name” player offering commercial support for FreeBSD. By the time you read
this, this name may have come to light; if not, we’ll just have to wait and
see. However, it appears that FreeBSD is very much on an upswing right now.
Is FreeBSD 4 a “Must-Upgrade?”
Probably not right away, since its advances are evolutionary rather than
quantum. Nonetheless, if you’re using FreeBSD now, you’ll want to upgrade soon;
if the new features and improvements aren’t enough, you’ll want to consider
that bug and security fixes always come fastest for the most recent version.
Having watched the rise, fall and
rebirth of Apple, I think I know an OS in resurgence when I see one. And
FreeBSD is definitely on the track to resurgence. It will be a very long, hard
road – but I think that all of us who are looking for a free Unix with optimum
performance and usability will benefit.