Introduction

During recent years, the Internet has grown so much in importance, that today’s companies cannot afford to neglect it. Online sales have reached the magnitude of billions of dollars, and the numbers are expected to increase dramatically by the millenium. The opportunities offered by the World Wide Web are virtually endless. For this reason, 70% of the companies are establishing a presence on the World Wide Web, be it an introductory homepage, an online catalog, or a sophisticated order-entry system. Their websites might be very different, but they certainly have one thing in common: the pages are published by a web-server.

This essay will deal with the question of the operating system to be implemented on the web-server. The contenders in this field nowadays are Windows NT, and the various flavors of UNIX. These two platforms are also competing in many other server fields and on the workstation market as well, but this essay will focus on their application as a stand-alone World Wide Web server.

UNIX, by its multi-user, robust nature seems more appropriate for the task. However, sales numbers and industry trends show that Windows NT is catching up quickly. The truth is that there are arguments that justify NT’s success, but the majority of the facts show that Microsoft’s solution is not yet ready for such a task.

 

The Web-server’s role and Structure

The role of a web-server is to keep a company’s homepage available to the online community non-stop. In the last few years, as the development of the World Wide Web speeded up, many server solutions appeared specifically designed for this task.

In case of a web-server, we talk about ‘hits’, that the server receives. A hit is the transfer of one file from the server to the client (browser). Viewing one page usually consists of more hits, as a page is made up of many objects – such as images, multimedia or client-side scripts. For example, the opening page of CNN interactive (http://CNN.com) is built up of 25 objects, and Yahoo! (http://www.yahoo.com) also contains four objects. Thus, it follows that even a moderately visited website can generate much more requests than a typical file server encounters. A web-server, in its nature, is more like an application server than a file server. It has to be able to run server-side scripts, probably provide database access, or transfer mail.

The HTTP server is only one part of a World Wide Web server solution. The hardware, the operating system and the HTTP server all have to work in great accord to yield in a successful product. These factors all affect the evaluation of a web-server as a whole, because the parts are closely related to each other. In certain circumstances, additional software may have to be added to the system, such as a database server, a cluster server, or a management system. Availability of these for a specific solution is also a vital factor.

OS Hardware architecture
IBM AIX R
I
S
C
IBM RS/6000
Sun Solaris Sun SPARC, x86
SGI IRIX MIPS
HP-UX HP PA-RISC
Digital UNIX DEC Alpha
SCO UnixWare P
r
i
m
a
r
i
l
y

I
n
t
e
l
x86
BSDI BSD/OS x86
Linux x86, Sun SPARC,
PowerPC
FreeBSD x86
OpenBSD, NetBSD x86, Sun SPARC,
PowerPC, MIPS, etc.
Microsoft Windows NT x86, DEC Alpha
Table 1. - Operating systems and the hardware
architectures that they work with

When implementing a web-server, the user not only has to make the choice of the HTTP server, but also the operating system (OS) and the appropriate hardware have to be chosen accordingly. Not every OS will be compatible with every hardware architecture. Windows NT runs mainly on Intel-based platforms, and also on the extremely high-performance Digital Alpha, although sales of Intel-based NT boxes far outnumber their Alpha-based counterparts. In the UNIX world, it is typical to run non-commercial UNIX clones – such as Linux and FreeBSD – on x86 platforms, while commercial UNIX versions are used on the respective hardware of their vendor (see Table 1.). Therefore, the choice of one of the RISC architectures almost inevitably means the choice of a UNIX OS.

Until recently, the HTTP server could determine the operating system to be used, because most of them were only available for UNIX. Today, most of them are ported to NT as well, and most operating systems are shipped with a built-in web-server package. “As web-servers increasingly become feature sets bundled with an OS, your choice of a web-server will ultimately depend on which platform you've selected and where your in-house expertise lies.”

Apache, the web-server used on 53.78 % of websites is open-source, so it can be compiled on the majority of UNIX systems, and its latest release also runs under Windows NT. Commercial web-servers, such as Netscape Enterprise or Lotus Domino are made available for commercial UNIX platforms and Windows NT.

Therefore, web-servers, operating systems, and hardware platforms are a closely connected issue; one of them cannot be chosen independently of the others. In light of this fact, this essay will focus on operating systems, while also having to discuss hardware architectures and web-servers.

 

Requirements towards a Web-server

The most important feature of a web-server is its ability to serve the pages quickly to the client. A good web-server can do this with a large number of simultaneous users. According to a Unisys research, the Internet has already become a mission-critical part of an organization – i.e.: even a short downtime can cause loss of revenues. Therefore, high-availability and reliability are also requirements for servers. If any of these demands are not satisfied, then the clients will find the company’s website painfully slow, and rather turn to the competitor.

 

The Hardware

The first thing that has to be considered when building a web-server implementation is the hardware architecture. The appropriate combination of hardware is determined by the number of hits that the web-server is expected to handle. A good OS can run sufficiently on low-performance hardware, but the hardware certainly sets an upper bound to the performance of the server. Under heavy load, the hardware’s limited resources might be fully utilized, no matter how effectively the OS uses them. Therefore, the choice of the appropriate hardware architecture is a vital factor when considering a World Wide Web server solution. Eventually, the hardware seriously affects OS performance through its advantages or disadvantages. For example, an OS that only runs on powerful, high-performance hardware will make a faster web-server.

 

Platforms

Two architectures are competing in the web-server field: the Intel x86, and the RISC architectures. The x86 CPUs are all CISC-based. The gap between CISC and RISC chips have become narrower nowadays, with the introduction of superscalar Intel chips, and the extension of the RISC processors’ reduced instruction set (they often contain more instructions than the x86), but RISC CPUs can still execute an instruction in fewer clock cycles, and most of them also operate at higher clock speeds – thus retaining their lead in CPU performance. This is shown by SPEC CPU benchmarks, where RISC processors produced the top scores. A faster CPU yields in the faster execution of processes, thus serving the clients faster, and making more simultaneous clients possible.

However, the main difference is not the CPU, but rather the architecture surrounding it. Most of today’s RISC systems are 64-bit, as opposed to the strictly 32-bit Intel x86 (at least until IA-64 is introduced, but that is a different issue). The 64-bit architecture has several advantages: larger addressable memory (above 4GB), larger maximum file sizes (useful for large databases), or faster data transfer speeds. Memory is a significant factor because it limits the number of simultaneous processes. Although the 4GB of RAM that the 32-bit x86 architecture allows seems plentiful today, in the long run it can become a limiting factor, which may force a transition to a 64-bit (RISC or IA-64) platform. Walnut Creek CD-ROM, the world’s largest FTP archive currently faces this problem.

The disk subsystem is the component that can make the largest difference in web-server performance. RISC servers usually have UW-SCSI drives, and very often RAID arrays, which can shorten access times by even a factor of 10. When serving webpages, access time is very critical, and the disk subsystem is usually the slowest component – therefore it should be made as fast as possible.

The system bus is an area, where the RISC machines also feature enhanced solutions. IBM, Sun and Silicon Graphics all manufacture their mid-range servers with either multiple PCI buses, or with such proprietary bus systems that provide more bandwidth than the PCI bus. This yields in higher bus and I/O transfer speeds, thus delivering the data faster to the client.

 

Integrity

In case of the RISC architecture, all parts of a system solution are tailor-made to fit the needs of a server environment, and to provide appropriate performance. “In competing with NT vendors, Sun derives a significant advantage from its ability to present its products as complete, unified systems, while NT-based solutions typically represent assemblies of point products derived from third parties such as Intel and Microsoft.” That means, that systems from UNIX vendors are a closely integrated combination of software and hardware. They are designed by the same firm; thus, they have been made to cooperate well. This reduces compatibility problems, and also improves reliability. Meanwhile, NT system vendors have to construct their product from a different software and hardware vendor, thus not reaching a similar degree of integration.

 

Real-world Examples

According to an IBM professional, IBM suggests implementing an Intel-based solution when the expected number of hits per day does not exceed 100,000 (e.g.: low-traffic corporate sites). Otherwise, they suggest an RS/6000 machine, which is capable of handling the load. Since IBM is a company which provides both RISC and x86 systems, it is interesting to note that when they had to implement a really high-traffic web site, they used 13 RS/6000 nodes (11 processors each), and no Intel-based web-servers. This configuration operated the Nagano Olympic Winter Games Web Site, which handled a record of 56.8 million hits on February 13, 1998.

Of course, for most of the websites, a Pentium Pro or Xeon server can provide more than sufficient performance. Small companies’ websites rarely receive more than a few thousand hits a day. They are also more cost-sensitive, and are unlikely to choose a $30,000 RISC system, when they can obtain an Intel-based server for about half that price. However, if future scalability is taken into account, and if the Internet is considered a mission-critical part of an organization – as it is the case with large corporations – then the choice of a RISC system is justified.

 

The Operating System

If the hardware is regarded as an important factor, influencing the speed of serving pages, then the OS must be considered even more important. “The differentiating factor here was the BSDi 3.0 OS loaded on the machine” – argues Sean Fulton form TechWeb, when they tested five web-servers. A single-CPU machine running BSDi, often outperformed high-end, twin-CPU Windows NT boxes.

Performance

Speed, as we already know, is an all-important aspect of web-servers. The OS software component, which influences OS performance the most, is the kernel. Windows NT and the various UNIX operating systems take quite a different approach to the question.

OSCPURAM
Microsoft Windows NT 4.0486 (Pentium)16MB (32MB)
Linux 2.13868MB
FreeBSD 2.23864MB
OpenBSD3868MB
SCO UnixWare 7N/A32MB
BSDi 3.0
Solaris 2.6Pentium32MB
Table 2. Operating Systems and their minimum hardware
requirements. Recommended values in parenthesis.

The UNIX kernels can be custom-compiled to fit the needs of a specific system. Some kernels (e.g.: the Linux kernel) even feature Loadable Kernel Modules, so that support for additional devices can be added on the fly. Therefore, the size of the kernel can be kept as small as possible, resulting in faster operation, and smaller memory demands. On the other hand, Windows NT’s kernel is static, cannot be re-compiled, and contains support for all devices, regardless of their state. Some parts of the GUI are also coded into the NT kernel. This, by principle doesn’t mean that Windows NT must be slow, but benchmarks and experiments show that UNIX is usually faster on the same hardware. In addition, Windows NT’s hardware requirements are much above that of Intel-based UNIX variants, showing that NT is more resource-intensive.

Both UNIX and NT kernels support multi-threading. NT uses the 1-1 threading model, while others – for example, Solaris – use the M-N thread scheduling, which is considered to be more sophisticated, but this does not contribute to a significant difference. However, the fact that NT only handles 8-CPU SMP systems, seriously limits future scalability and processing power. Commercial UNIX systems support SMP systems of up to 64, or even 128 processors. For most web-sites, even a single-CPU machine is sufficient, but high-traffic sites or e-commerce sites with numerous transactions require the processing power of large SMP systems.

The performance of any networked server depends on its network stack as well. The BSD-based systems were once famous for their outstanding networking capabilities. Today, both BSD and SVR4-based configurations retain their lead in the TCP/IP networking field. UNIX systems, especially commercial ones, feature many performance optimizations and TCP/IP extensions. For instance, AIX 4.3 supports 13 different ways of optimizing and extending the TCP/IP performance, but most other UNIX variants support at least 7 such methods. In general, all UNIX operating systems are more capable in this field than Windows NT, as the latter only supports IP Multicasting (partially) and OpenShortestPathFirst.

Security

As web-servers hold more-and-more valuable and confidential data (e.g.: e-commerce contracts, statistics), security is becoming one of the most important aspects of a solution. However, in this sense, there is no really significant difference between Windows NT and UNIX. The security of a web-server depends more on the accurate and thorough maintenance of the server, than on the OS. For all operating systems, patches (a.k.a. ‘service packs’) have to be applied to bring the OS to a secure state. Such patches may be published every week or month, and without them, the OS remains vulnerable to attacks. The only advantage of UNIX in this sense is that it has been around for a longer time, and more security glitches have been recovered. But after all, this is more an issue of administration.

 

Reliability, Availability

With the advent of e-commerce, corporations rely more and more on their WWW presence. Even a short downtime can result in dissatisfied or lost customers. “Even the small organization can't tolerate a 97% availability rate for E-business” – according to Dick Sullivan, Vice President of NT solutions for IBM's server business unit. Therefore, high uptime is a necessity for web-servers, and it is mostly the question of the underlying OS.

Thus, reliability has appeared as a differentiating factor, since it is an area where UNIX is traditionally very strong, and where NT has obtained a notoriously low reputation over the years. When NT Server crashes (a STOP error occurs), it displays a blue screen with hexadecimal memory addresses and module names. This screen has become infamous, and named the ‘Blue Screen of Death’. “Unfortunately, the Blue Screen of Death isn't rare. Microsoft has created a special web-based troubleshooter to help you decode the top 15 STOP error messages.” – argues an article from the well-known publisher, ZDNet. They were not the only ones to reach the conclusion that NT goes down frequently: “When we spoke to users they reported general protection faults and memory leaks which required regular rebooting of the NT system.” – as the Standish Group found out. Since there is no benchmark, or any standardized way to measure system reliability, we must rely on reports and user experiences. Of course, UNIX is also famous for its core dumps, which represent a security hole as well. However, the core dumps are usually caused by malicious programs or crackers, while Windows NT can crash under normal usage.

Naturally, a crash results in downtime. The estimated average downtime for Windows NT is 30 minutes per week, while UNIX systems usually stay up for weeks or months. The reasons for NT’s high downtime are various. Crashes could occur due to buggy drivers, memory leaks, or other inconsistencies in NT’s internals. Some analysts also argue that Windows NT is still an immature system, whose kernel has been written from scratch a few years ago. On the other hand, UNIX kernels have been continually developed for thirty years, and they have proved their reliability and stability since then.

Microsoft’s system library handling design can also result in DLL clashes, since DLLs are written and updated everywhere, from the \WinNT, \WinNT\System and Sytem32 directories to application directories. In the UNIX world, a more-or-less standard way of placing libraries exists: base OS libraries go to /lib and program libraries to /usr/lib. This even holds true across different flavors of UNIX, although most of them add some complexity to the situation. However, a specific library only occurs once in a UNIX system.

 

System Management

Moreover, crashes are not the only source of downtime. System maintenance and configuration can result in necessary reboots of the system as well, disconnecting existing users and blocking access to the web site until the server comes back up again. The two platforms differ here, too. While most configuration changes to a UNIX system don’t require rebooting, changes to Windows NT Server’s networking settings almost always require a reboot. “Any UNIX with loadable module support is therefore by nature more appropriate for a server environment because almost all configuration changes do not require system restarts. […] Even insignificant changes to a Windows NT configuration require or request a shutdown and reboot in order to make the changes take effect.” – states NC World Magazine. According to a survey carried out by ENTMag, an NT-centric firm, planned outages for Windows NT include maintenance, installation, backups and reconfiguration. Many of these tasks can be carried out online with a UNIX system. For example, AIX even supports an online OS upgrade.

Still, system maintenance seems to be a point where Windows NT has a very decent rating. Its GUI mimics the Windows 95 user interface, so it is familiar to most people and easy-to-use. UNIX systems also have graphical user interfaces (contrary to belief), which are also functional. It has to be noted, though, that it takes much more expertise to manage a UNIX server than to manage an NT box. Nevertheless, skills are really needed to manage NT as well: “It's very easy to undermanage it”. On the whole, NT is easier to manage, but UNIX is more powerful in expert hands.

Due to its text-based structure, UNIX systems can be completely managed remotely through any character-based session (e.g.: telnet). In addition, the X-Windows GUI follows a distributed client-server model, so GUI utilities can be accessed through the network as well. NT provides a different approach to remote management. Windows NT’s Server Manager and User Manager can be remotely accessed. The upcoming Microsoft Management Console provides access to components that support it (e.g.: IIS 4). These products allow access to many selected functions of the OS, and satisfy most remote management needs. Marginally, but UNIX’s approach is more powerful, since everything can be accessed under any circumstances. Eventually, Windows NT is easier to use, but UNIX’s management functions are more powerful.

 

Cost

Cost is not measured simply in terms of the cost of the software and the hardware (Table 3.), but also ongoing maintenance, additional software and upgrade costs have to be considered. In light of that, it can be said that NT’s main advantage is its cheapness in low-end systems. PC hardware is quite inexpensive, and a low-profile website could be operated by a single webmaster or maybe even by an in-house professional. The alternative to this solution is free UNIX, where software costs are lower, but an administrator will be necessary to hire. If considering all the additional software components needed to equip an NT server with services that are standard and out-of-the-box on UNIX systems (e.g.: e-mail), then actually even Solaris – not to mention open-source UNIX – costs less then Windows NT Server. Therefore, what UNIX wins in software price, it may lose in administration costs.

Hardware Cost OS Cost Cost of Hardware and OS Category
Dell PowerEdge 6300 4-way Xeon $43 569 NT $729 $44 298 High-end PC
Dell PowerEdge 6300 4-way Xeon $43 569 Linux $45 $43 614 High-end PC
Dell PowerEdge 6300 2-way Xeon $12 403 NT $729 $13 132 Midrange PC
Dell PowerEdge 6300 2-way Xeon $12 403 Linux $45 $12 448 Midrange PC
Dell PowerEdge 2300 PII-400 $3 804 NT $729 $4 533 Low-end PC
Dell PowerEdge 2300 PII-400 $3 804 Linux $45 $3 849 Low-end PC
Compaq ProLiant 800 6/400 $2 725 NT $729 $3 454 Low-end PC
Compaq ProLiant 800 6/400 $2 725 Linux $45 $2 770 Low-end PC
Compaq ProLiant 3000 PII-450 $6 096 NT $729 $6 825 Midrange PC
Compaq ProLiant 3000 PII-450 $6 096 Linux $45 $6 141 Midrange PC
IBM RS/6000 43P Model 140 200Mhz $5 425 AIX included $5 425 Low-end RISC
IBM RS/6000 F50 332Mhz $28 275 AIX included $28 275 Midrange RISC
IBM RS/6000 F50 4-way 332Mhz $47 955 AIX included $47 955 Midrange RISC
IBM RS/6000 H50 $28 575 AIX included $28 575 Midrange RISC
IBM RS/6000 S70 4-way $129 375 AIX included $129 375 High-end RISC
IBM RS/6000 S70 12-way $332 679 AIX included $332 679 High-end RISC
Digital AlphaServer 800 500Mhz $10 500 Digital Unix included $10 500 Low-end RISC
Digital AlphaServer 1200 533Mhz $19 000 Digital Unix included $19 000 Low-end RISC
Table 3. Prices of Configurations compared. See Appendix D for configuration details.

This is not necessarily the case in midrange or high-end systems. Mail service is typically required by high-profile websites, and a database server is inevitable to publish a large volume of data, or for transaction processing. With NT, it is advised to put mail and database servers on a separate machine. Thus, the total cost of such an NT solution will be comparable, if not higher than that of a RISC system. The price of three or four NT boxes is already comparable to a low-end or midrange RISC machine. Software license costs also rise, and more administrators will be needed to manage the multiple servers, while a UNIX server can be administered by a staff of one or two. In the end, UNIX is cheaper for sophisticated high-traffic solutions.

 

Real-World Examples

In practice, Windows NT can be configured to operate reliably. According to a WWW specialist of Hungary’s largest ISP, they have been operating plenty of Windows NT servers for half a year now without major problems. Great expertise is needed to configure the servers correctly, but the results are sufficiently stable machines. It has to be noted that their NT servers do not operate under stressful conditions – their utilization is only about 20-30% (on PII-300s, with 256MB of RAM). They also have a Sun Ultra Enterprise 450, which handles all the mail traffic, acts as a gateway, DNS server, hosts multiple websites, etc. This server is also reliable, but it is not crash-proof, either. Last time it went down due to a user’s buggy Perl script.

It has to be noted that Solaris is not known to be the most reliable OS, but rather IBM’s AIX. There are several places where AIX uptime has reached years. I myself manage an IBM RS/6000 43P Model 140, and there have been no problems with the OS in the last half-year.

Therefore, it can be said that under moderate conditions, anything will remain more-or-less stable, while a stable UNIX variant is preferred under heavy load.

 

Conclusion

Windows NT and UNIX together can satisfy the needs of most users. Low-traffic websites can be run on Windows NT, as well as on the inexpensive open-source UNIX boxes. These systems provide enough performance, reliability, manageability and cost-efficiency for the low-end user.

Websites that experience high traffic should employ a RISC-based commercial UNIX system solution. These are the only servers that can match the needs of a high-performance site. Windows NT does not provide enough scalability and also falls short of the standards of the higher market segment in terms of reliability.

Where UNIX and NT really compete is the moderate-traffic web-server field. Here, moderate scalability but high performance, sufficient management and reliability are the requirements. Although Windows NT is stretching its barriers to meet the demands, it can be used effectively with high-end PC servers. On the other hand, it is rather low and mid-range UNIX that can provide the performance at an acceptable cost for the moderate-traffic segment. The choice will depend on existing applications and where the in-house expertise lies.

Windows 2000 Server will address many of the problems that NT 4.0 faces. Microsoft promises scalability to 32 processors, better reliability, more powerful management, and a host of other features. In addition, Intel’s 64-bit CPUs, the IA-64 family is also expected to appear in the middle of the year 2000, reshaping the relation between operating systems and hardware architectures. Meanwhile, UNIX will develop, too. Not only on the RISC, but on the IA-64 platform as well. Therefore, the market of web-server operating systems will remain a strategic field of increased competition, hopefully resulting in the improvement of both operating systems, and thus benefiting the users.