From owner-freebsd-current@FreeBSD.ORG Sun Feb 6 10:37:58 2005 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3D3F516A4CE for ; Sun, 6 Feb 2005 10:37:58 +0000 (GMT) Received: from pooker.samsco.org (pooker.samsco.org [168.103.85.57]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6F73E43D78 for ; Sun, 6 Feb 2005 10:37:57 +0000 (GMT) (envelope-from scottl@freebsd.org) Received: from [192.168.254.12] (g4.samsco.home [192.168.254.12]) (authenticated bits=0) by pooker.samsco.org (8.13.1/8.13.1) with ESMTP id j16AbFaA071428 for ; Sun, 6 Feb 2005 03:37:15 -0700 (MST) (envelope-from scottl@freebsd.org) Message-ID: <4205F382.8020404@freebsd.org> Date: Sun, 06 Feb 2005 03:37:54 -0700 From: Scott Long User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7) Gecko/20040514 X-Accept-Language: en-us, en MIME-Version: 1.0 To: freebsd-current@freebsd.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.8 required=3.8 tests=ALL_TRUSTED autolearn=failed version=3.0.2 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on pooker.samsco.org Subject: The case for FreeBSD X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Feb 2005 10:37:58 -0000 All, There has been a lot of recent talk and advocacy for NetBSD 2.0 from the NetBSD team. Most recently there were a series of articles posted my Chritos Zoulas describing why NetBSD is relevant and why it's a better choice than either FreeBSD or OpenBSD. While I strongly applaud the accomplishments of the NetBSD team and happily agree that NetBSD 2.0 is a strong step forward for them, I take a bit of exception to many of their claims and much of their criticisms of FreeBSD. First of all, the last decade has been ripe with cooperation between all three of the major BSD projects. Each projects gives and takes from the others, and there are a number of developers that have commit privileges to multiple BSD projects. Drivers, infrastructure, bug fixes, and features readily flow between projects. This benefits everyone, especially since it allows each group to focus on unique aspects of the system without having to be bogged down with other aspects. As the old saying goes, FreeBSD is about performance, NetBSD is about platform portability, and OpenBSD is about security. So is that still the case? The NetBSD advocates are quick to claim that NetBSD 2.0 now beats FreeBSD in both performance and features. Fortunately, that just is not true. There is a very long list of reasons why FreeBSD is an excellent operating system and an ideal choice for the enterprise and the desktop. Briefly: - Netgraph provides unparalleled flexibility to build complex network environments. Netgraph modules are available for packet filtering, tunneling, redirection, inspection, and injection at any point in the network stack in a transparent and quick fashion. Modules can be stacked together like bricks to meet just about any need. Developing custom modules is also easy and very well documented. There simply is not anything else in any other OS that is as flexible, easy to use, and full-featured as netgraph. - GEOM provides to the storage stack what netgraph provides to the network stack. Transformations like mirroring, striping, spanning, and encryption can be configured for any storage object from the filesystem on up. The vinum volume manager was recently converted to use GEOM and now provides high-availability and high-reliability redundancy to any storage object. While NetBSD recently imported Vinum, it took the older, less stable and less functional version that has since been deprecated by its author in FreeBSD in favor of GEOM-Vinum. - Advanced network features and protocols such as SACK, NFSv4, SYN-cache/SYN-cookies, compressed TIME_WAIT, and accept filters allow for fast, secure, and scalable network operations in an ever-increasing hostile and busy Internet. Packet filters like IPFW and PF provide advanced filtering, shaping, and NAT sharing. FreeBSD continues to run some of the busiest and most important network sites in the world with these technologies. - Outstanding desktop and laptop support is provided by a number of technologies. Nvidia develops and distributes native 3D drivers for its graphics cards for FreeBSD. A team of FreeBSD developers works closely with engineers at Intel to provide the best ACPI power management support available in an open source operating system. The Gnome and KDE desktop environments work flawlessly under FreeBSD thanks to another team of volunteers that work closely with those projects. - The "Ports" collection provides one-step support for over 11,000 3rd party application. Compile-time and run-time dependencies between applications and libraries are tracked and handled automatically, eliminating conflicts and incompatibilities. Pre-compiled binaries are available for nearly every supported package for quick and easy installation. This system continues to be one of the crown jewels of FreeBSD and has been copied by other OSes due to its overwhelming popularity. - Many commercial vendors also support FreeBSD. Companies like Intel, AMD, LSI, Adaptec, and 3Ware, just to name a few, provide development staffing, direct developer resources, and end-user support for many of their products. The result is high quality drivers, applications, and platform support for a wide range of modern hardware. - Continuous testing and QA is performed by a number of teams within the FreeBSD community. Tests are runs every day that range from simple full-tree compile runs to intensive network, I/O, and computational stress tests. Developers receive status emails and bug reports to help identify, track, and resolve defects. While no amount of testing is perfect and bugs do slip through, the testing that exists vastly exceeds the efforts of most other open source projects and contributes towards every FreeBSD release being high quality. NetBSD 2.0 is a significant step forward for NetBSD, but the large amount of stagnation cannot be overlooked. Their claim at high portability should have been leveraged years ago to make them the leader in embedded OSes. It's great that NetBSD is committed to supporting legacy architectures, but how does the effort to do so benefit modern architectures or encourage wider use and more adoption of NetBSD? And while NetBSD now supports SMP, it uses the same low-efficiency model that FreeBSD used previously. Scalability is significantly limited because only one CPU at a time can access kernel services or drive hardware devices. The whole point of the 'SMPng' project for FreeBSD 5.x is to eliminate this problem and provide fine-grained parallelism in the kernel. Converting the traditional BSD design to this model is not trivial, but the work on this is very much alive, and each FreeBSD 5.x release is faster, more scalable, and more stable than the previous release. All of the open source BSD's have a place, whether it's OpenBSD, NetBSD, or FreeBSD. Each continues to excel at what they've shown to be good at, and I expect the sharing and goodwill between them to continue. And in that vein, FreeBSD is still the 'silent workhorse' that runs corporate networks and powers advanced appliances. However, it's time to drop the 'silent' part and start loudly advocating it. FreeBSD is an outstanding OS, and developers and users should be proud of it. Scott