What's New in FreeBSD 5.3
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.
| Index entries for this article | |
|---|---|
| GuestArticles | Bodnar, Ladislav |
