Windows NT Magazine: Linux and the Enterprise

“Linux currently has several major limitations that prevent it
from being a contender in any arena other than the small-server

“Whereas Windows NT and all leading commercial operating systems
(OSs) implement kernel-mode threads, Linux does not. The Linux
scheduler does not divide CPU time among threads but among
processes. Each process in Linux has an implied execution state
that, on other UNIX variants, is the equivalent of a thread. Thus,
a Linux process is similar to a process on other UNIX versions that
has exactly one thread and cannot create more.”

“Linux’s omission of kernel-mode threads seriously affects
application developers’ ability to write software that takes
maximum advantage of a CPU. Linux application developers must use
user-mode threads.”

“Another limitation of the Linux kernel is that the scheduler
cannot preempt the kernel, as can the scheduler in most modern UNIX
variants and in NT. Because Linux’s kernel is not preemptible, it
is not as responsive to high-priority processes as other OS kernels

“Finally, the Linux kernel is not reentrant, which means that
only one processor in a multiprocessor Linux system can execute
kernel code at a time. This limitation is perhaps the biggest
impediment to Linux’s scalability on multiprocessors, because Linux
serializes all its kernel services on a multiprocessor, making them
run as if they were on a uniprocessor.”

“None but the most CPU-intensive Linux applications will scale
past one CPU, which makes Linux unacceptable as a multiprocessor
OS, and therefore as an enterprise-class OS.”