Server Policy

Hello there! Perhaps you're wondering a few things about why I run my server the way I do, or why I hold certain opinions about web servers and Internet software development. It has also come to my attention that some people have apparently not heard of FreeBSD or Apache, and mistakenly belive Microsoft software to be the "standard" Internet application platform. This page attempts to answer some of those questions and concerns, and to give some background on my purpose with this website.

Working Principles
The following are the principles upon which I've built my policy for administrating the server: is running FreeBSD as its operating system, and Apache with mod_perl as its web server software.

Why FreeBSD?
In choosing an operating system, I knew first of all that it would have to be a version of UNIX for the following reasons:

So among the flavors of UNIX, the available freely distributable ones are Linux, FreeBSD, NetBSD, and a few others-- realistically, the choice was between Linux and FreeBSD. Both are comparable in performance; however, Linux is geared more toward use as a desktop platform-- its strengths are vast device driver support, widespread acceptance, and a kernel forgiving of weird hardware. FreeBSD, however, is designed as a bulletproof server OS; its desktop capabilities are less than those of Linux, but its performance and security as a server are unmatched.

Visit the FreeBSD home page
See PC Magazine's benchmark comparison between FreeBSD and Windows NT

FreeBSD is used as the operating system for such high-profile websites as Yahoo! and Walnut Creek CDROM. It also has the advantage of being the development platform for widespread software such as majordomo and sendmail. It is also frequently rated as one of the fastest flavors of UNIX, free or not; see some of the press reviews on the FreeBSD website (above); it is quoted as having possibly the most robust implementation of TCP/IP on any operating system currently available (the "reference implementation"). This is very important to the well-being of a high-profile, constantly reliable web server; I need to be able to change name servers, gateway routers, IP addresses, and the like without rebooting the machine. This is impossible with Windows, but trivially easy with FreeBSD.

Furthermore, and perhaps most importantly, FreeBSD (like most UNIX flavors) will almost never crash. Cases are documented all the time of website administrators who cannot remember the last time (in months or even years) that their UNIX machine has crashed or needed to be rebooted for anything other than hardware upgrades or a physical move. I can personally vouch for having had to reboot Microsoft Windows NT 4.0 Server approximately once a week during the summer of 1997, when I had to administrate a Microsoft Internet Information Server (IIS) system. Nor am I the only one to report such results; my frequency of reboots was about the same as that reported by most of randomly polled NT administrators in various Internet surveys. There is simply no excuse for such unreliability as that which Windows shows-- especially when Windows NT 4.0 Server costs many hundreds of dollars.

Why Apache?
For those of you who don't know, Apache is the Internet standard web server which has shaped the growth of the World Wide Web over the past three years and more. It is the most widely used server software in the world, by a very large margin, being run on over 50% of all websites on the Net. See the site survey by Netcraft for an ongoing chart of web server proliferation on the Internet.

Visit the Apache home page

Widespread use is by no means the only advantage Apache has over what passes for its competition. Following is a list of some of its features that are not available in other server software packages:

There is only one rational reason why Microsoft IIS is gaining popularity in the corporate web server world: a name. Since the owner of the site can then say he has a server from Microsoft (or Netscape, for that matter), he can claim to have corporate technical support in case something goes wrong. The idea is, "We spent $5000 on this server; now if it breaks, we've got someone to answer for it."

Never mind that technical support from Microsoft (or Netscape) involves waiting for up to hours on the phone, purchasing a tech-support "incident" somewhere in the menu system, and speaking to unqualified support agents who will attempt to solve problems by looking up solutions in books, and then passing your call to others in their department if they can't answer it. But tech support for Apache, a free server, is hardly nonexistent. Post a problem or question on the newsgroup comp.infosystems.www.servers.unix, and within hours you will have a reply from Apache's core developers-- the ones who actually wrote the code-- giving you a concise, exact answer or solution to your problem. If your question involves a bug report or a feature request, chances are that that bug-fix or new feature will be available that night. Compare that to Microsoft's policy; if they listen to user feedback at all, a bug fix might be months in waiting, in the form of massive "service pack" upgrades.

Another Apache advantage is that with the module mod_perl installed, a perl interpreter is embedded within the server itself; server-executed perl scripts can then be held in a registry of compiled programs, which can then be re-executed with each new request, without the added overhead of a new process to handle CGI in the standard way. This makes for vastly increased speed; the Internet Movie Database uses Apache with mod_perl to enhance its searching and indexing script execution speed to up to 4000% of standard CGI speed. mod_perl can also do such things as execute perl code directly within parsed HTML documents. Microsoft has attempted to provide a similar kind of functionality with its proprietary "Active Server Pages" (.ASP), but its implementation provides only a tiny fraction of what Apache's standard SSI calls coupled with mod_perl can do.

Also, note that Apache is available for all platforms, now that its 1.3 release is available for Windows 95/NT; Microsoft IIS is only available for Windows NT 4.0 Server.

Finally, compare Apache's web site with Microsoft's IIS web site (noting how Microsoft's site pushes your browser to "default.asp" with a tacky and hackish META push); see how Apache's site gives the user concise information about how to run the server, along with all related reference material. Compare it to Microsoft's site design, which is to waste huge amounts of space trying to convince the user how much better a piece of software it is. Open question: If IIS is such a great server, why do they have to blow their own horn so much?

See Salon Magazine's "How the Web was Almost Won" article on the server war waged by NT and IIS

Microsoft provides a comparison page which lists off the relative merits of IIS 4.0, Netscape Enterprise Server, and Apache. First glance leads the observer to conclude that Apache has almost no features. Closer inspection, however, reveals interesting categories, like "Built-in SMTP support". This is an issue on Windows NT, but why should a UNIX user care whether the web server software itself can send mail? UNIX has had Sendmail/SMTP as a standard part of the operating system for many years, and so having SMTP support in Apache would be redundant. NT does not have any such native support. Another supposed advantage that Microsoft extolls is that IIS can be administrated remotely through a web browser or SNMP. For Apache? Big deal. UNIX has always been fully remotely administrable simply by telnet access-- much more versatile than anything that can be done with a web browser. Other categories are patently NT-specific issues that just do not exist on UNIX, like "One-button publishing". I leave it up to you to conclude how fair a comparison this chart provides.

Why only free software?
Largely to prove a point. One of my major goals with is to show that a high-profile, reliable, fast server can be built and maintained without any money input beyond the actual hardware that goes into the machine. (Note that I do not mean that all software should be free, nor that software development companies should not exist; I mean that Internet software is a unique entity that provides a cooperative element unlike any found elsewhere in the field. See this report by Byte magazine for further explanation.) It is to prove that the current mindless trend toward Microsoft-based servers is not the "only way", nor is it by any means the best way.

Microsoft is a new player in the Internet. As recently as 1995, Bill Gates was contemptuously dismissing any idea that Microsoft would involve itself in the Internet. "That would be like having an electricity division," he snapped at a press conference. Now, Microsoft has tackled the Internet with fervor seemingly born of religious passion. However, it is drastically missing certain points:

These tenets are those displayed by software developers such as the FreeBSD and Apache groups, and they are what has made the Internet the free forum for expression that it is. Microsoft threatens that state by attempting to enforce its own closed-house, proprietary standards on the Internet; if we buckle under its pressure, we will have lost a great and valuable resource: freedom. Software will cease to be developed according to the needs of the developer community, and only to feed the bottom line of the corporations that control the marketplace. This will cause stagnation and mediocrity.

This is what my policies of administration for are intended to protest.

If you have any questions or disagreements (or agreements!) with what I've said, please feel free to e-mail me at Thanks!

-Brian Tiemann

[an error occurred while processing this directive]