The final release of
FreeBSD 5.3
should be up on the mirrors within the next two weeks. In all
likelihood, this will be the first "production release" of FreeBSD 5.x
series, so perhaps this is a good time to take a look at the new
features in this much anticipated release. After all, it has been over
four and a half years since the first production version of FreeBSD 4
was released in March 2000, and more than 20 months since FreeBSD 5.0,
labeled as "new technology release", was made available in January
2003.
First, the current status. FreeBSD 5.3 was originally scheduled for
final release on October 17, but this was later postponed to October
27. Unfortunately, two release-critical bugs have put the release on
hold until further investigation. The first one affects the TCP
Selective Acknowledgment (SACK) mechanism which can, in some cases,
cause system lockups. The second bug concerns GDB, which may leave
certain threaded processes in an unkillable state. Additionally, some
developers are concerned that FreeBSD's ULE scheduler, designed and
tuned specifically for symmetric multiprocessing (SMP) systems under
heavy workload, might be causing some of the problems reported by beta
testers. It now looks increasingly likely that FreeBSD 5.3 will ship
with ULE turned off.
FreeBSD 5.3 brings many large architectural changes to the base system,
most of which were too complex to port to the FreeBSD 4.x series.
Probably the most interesting among them are SMPng, KSE (Kernel
Scheduled Entities), and support for new hardware platforms. SMPng
provides improved support for SMP systems by fine-tuned locking of
kernel subsystems to increase threading performance of processes and
the network stack. KSE is a kernel-supported threading system which
allows a single process to have multiple kernel-level threads. As for
newly added processor support, AMD64, IA64, PC98 and SPARC64 are now
also supported, in addition to i386 and Alpha processors. A PowerPC
port is under development.
The default file system in FreeBSD 5 is UFS2. Compared to UFS in FreeBSD
4, UFS2 provides several useful features, such as extended file
attributes and support for larger file sizes - at the expense of lost
compatibility with UFS. FreeBSD 4 does not understand UFS2 and it is
not possible to convert between the two file systems (as one would
between ext2 and ext3 in Linux). This brings complications to the
upgrading process - the recommended way of upgrading from FreeBSD 4 to
FreeBSD 5 is to back up user data, reformat the FreeBSD partition,
install FreeBSD 5.3, and restore user data. Of course, FreeBSD 5 is
capable of creating the older UFS file system, so source upgrades and,
in some cases, even binary upgrades might be feasible. However, the
upgrade process will probably be a lot more complex than a re-install,
with a further functionality loss due to unavailability of UFS2
features in the upgraded system.
Other noteworthy changes include a switch to GCC 3.4.2 as the compiler
toolchain, support for extensible and loadable Mandatory Access Control
(MAC) policies, and new networking features, including the
above-mentioned TCP SACK and a port of OpenBSD's excellent "pf" packet
filter. Hardware support has also been improved: Cardbus, Bluetooth
devices, and IEEE 802.11a/b/g network interfaces based on Atheros
chipsets are now supported. Several network devices designed for
Microsoft Windows are supported indirectly, through a compatibility
layer called "ndis".
Besides all the feature enhancements listed above, users familiar with
FreeBSD 4 should beware of important changes in the new version.
Firstly, certain parts of the FreeBSD base system were deemed
non-essential and moved to the ports collection (most notably Perl and
UUCP). Secondly, the configuration of ISA devices is no longer
specified in the kernel configuration file, but rather by a new
mechanism called device.hints (parameters can also be entered into the
boot loader command line prompt). Thirdly, MAKEDEV has been replaced
with device file system (devfs). And finally, there are important
changes in terms of software defaults: in line with most Linux
distributions, FreeBSD too has now switched to X.Org (XFree86 4.3.0 is
available as an option), while the default DNS server is now BIND 9,
rather than BIND 8.
FreeBSD has always been considered an excellent choice for a dedicated
server system, but is the new version ready for the desktop? It
certainly is - but only for the technical user. While the text-based
installation is simple enough and easy to follow, the initial system is
decidedly underconfigured for any desktop use. This, of course, is due
to FreeBSD's philosophy to give users complete control over all aspects
of the system setup. Just about everything has to be done by hand after
installation - that includes setting up xorg.conf, login manager,
preferred desktop environment, mouse wheel, fonts, even font
anti-aliasing and sub-pixel hinting need to be enabled in configuration
files before one can set a sight at an acceptable desktop. Having said
that, certain things did improve since FreeBSD 4; for example users
with NVIDIA graphics cards no longer need to recompile the kernel in
order to make use of the NVIDIA binary driver for FreeBSD - in fact,
installing it and running 'Xorg -configure' will instantly produce a
usable xorg.conf file.
Despite all the hard work needing to get a fully-configured FreeBSD box
up and running (or perhaps because of it), there is no doubt that this
operating system is beautifully designed and strangely addictive. The
configuration files are easy to understand. The system feels fast and
responsive, with boot and shutdown times far shorter than those of any
Linux distribution. Compiling a FreeBSD kernel rarely, if ever, fails.
And, of course, there is the famous ports collection, now with over
10,000 packages ready and waiting for a "make install clean" command to
spring into action. FreeBSD 5.3 is a great operating system, with some
of the best and most up-to-date documentation on the Internet, helpful
mailing lists and legions of satisfied users across the globe.
(
Log in to post comments)