Threading is not as popular or useful on Linux and other Unix-like operating systems as it is on other systems. Threads became popular on operating systems that have high overhead for starting new processes. Starting a new process on Linux has fairly low overhead, so use of multiple cooperating processes is usually a simpler approach. (Raymond Chapter 7) Threaded applications are generally more complex and perform worse than those than use multiple cooperating processes to split up tasks. Having more options is never a bad thing, however, and some Linux programs do use threads to split up tasks and gain improved performance on multiprocessor systems. The new threading model should provide a significant performance boost for these types of applications, especially on multiprocessor servers, provided the applications are compatible with NPTL; it is not backwards compatible with LinuxThreads. The performance improvement is a strong incentive for authors of threaded applications to rewrite them to take advantage of the new threading model.
Linux 2.4 cannot address enough devices for certain applications involving large multiple device storage arrays. It can only support 256 major device types with 256 devices each, for a total of 65536 devices. Devices being split in to types, this means that Linux 2.4 can only connect to 256 SCSI disk drives at a time. A larger number of disks may be required for a server managing a large storage array. Linux 2.6 supports 4096 major devices with 1048576 minor devices each, for a total of 232, or over four billion devices. (Meredith19) it is unlikely that anyone will want to connect a single server to more than 1048576 SCSI disk drives at a time in the foreseeable future. The IO model is also improved with regard to large systems. Previously, Linux could only handle IO requests to block devices such as disk drives by breaking them up in to 512 byte sectors. 2.6 allows larger IO requests and larger sector sizes. The result is improved performance for applications involving large IO requests, such as databases. (Meredith 20) the maximum size of a block device has increased to 8 exabytes, though filesystems are limited to 16 terabytes, and nobody manufacturers an 8 exabyte disk drive.
IPSEC provides encryption for all network traffic over IP, regardless of application protocol. This makes any network effectively private. Modern servers need to be able to communicate over public networks securely. Previous attempts to secure communications involved adding support for encryption to individual applications. IPSEC provides a standard, uniform means of securing network traffic. Applications no longer need to support or even be aware of encryption to communicate securely. It is reasonably common that an application required by a user does not support encryption, but does transmit information that should not be accessible to anyone other than the intended recipient. IPSEC solves the problem, providing security for all network communication. Third-party support for IPSEC existed in Linux 2.4, but could not be assumed to exist on any Linux-based system. Linux 2.6 has native support for IPSEC. An important application on a server might be allowing remote access to a file share on a networked filesystem that does not have support for encryption.
Linux 2.6 supports most commonly used network filesystems. Microsoft's Common Internet File System and Network File System version 4 are new additions. Support for CIFS improves integration between new Linux servers and existing infrastructure based on Microsoft Windows. NFS version 4 will eventually replace the current standard NFS version 3 as the standard for sharing storage between Unix-like servers. Advanced network filesystems such as AFS and CodaFS give Linux the ability to handle a diverse set of storage requirements. Linux 2.6 also includes support for several other network filesystems, giving it the ability to share files with almost anything over a network.
Linux has become very popular as a server for smaller businesses and for simple tasks in larger ones. With the release of Linux 2.6, products based on Linux are likely to start replacing proprietary Unix in the corporate datacenter and expand their share of the server market at an increased pace. With all the filesystem options available on Linux, one can be found to match any set of requirements. When properly applied, the new security features in Linux 2.6 can contain the effects of security flaws to such a narrow scope that they are almost insignificant. The new scheduler ensures that little processor time is wasted allocating CPU time between a large number of tasks, and gives each CPU on multiprocessor servers the flexibility to schedule tasks for itself, reducing the likelihood that a CPU will sit idle while there is work to be done. The kernel is now preemtible, unlike older versions of Linux and most other operating systems, resulting in improved stability and reduced latency. The new threading library should greatly improve performance on multiprocessor machines for any large, monolithic application rewritten to take advantage of it. With the introduction of version 2.6, Linux can finally support enough devices to handle the largest storage arrays in use now and for the foreseeable future. IPSEC support means that any protocol can be used securely over any IP network. Support for a large number of networked filesystems means that Linux can integrate in to almost any network as a client, server or both. The future looks bright for Linux; Linux-based products will continue increasing their share of the server operating system market, while non-commercial compilations based on Linux will reduce the size of that market.
Deshpande, Asheem R. "Linux Kernel 2.6: the Future of Embedded Computing, Part I." Linux Journal. 26, Mar, 2004. http://www.linuxjournal.com/node/7477
Marshall, Pete. "With Scheduler improvements in Linux 2.6 -- is it ready for the data center?" CCR2. 2004. http://www-306.ibm.com/software/tivoli/features/ccr2/ccr2-2004-02/features-scheduler.html