High Performance ServersThe abstractions provided by general-purpose operating systems are a poor match to the needs of high performance servers (e.g., HTTP, NFS, FTP, etc.). As a result, software overheads and inefficient use of resources prevent these servers from delivering the full performance of the underlying hardware (in particular, the network and disks). By developing high-level abstractions that better fit the computing model of server applications, we hope to realize significant performance improvements with no increase in development complexity or reduction in portability.
The first server built using our new abstractions is a HTTP server called Cheetah. We have observed order of magnitude increases in small document throughput on the same hardware when comparing Cheetah running on an exokernel to Harvest or NCSA running on general-purpose OSs (Ultrix when the platform is a MIPS box and OpenBSD when the platform is an x86 box). Large document throughput increases by a factor of four.
Some information about our progress is available in section 7.3 of our 1997 SOSP paper on exokernels. Also, John Jannotti's Masters thesis illustrates how the exokernel support needed for our server abstractions can be put into a conventional operating system (linux, in his experiments).