As the first Linux systems leaned toward being primarily server operating systems, kernel features were not originally best focused on providing a comfortable desktop experience. Activities done on the desktop (such as moving windows around or launching applications) were not given priority over, say, system maintenance tasks that may have been kicked off to run in the background.
Several new features were added to the Linux 2.6 kernel that were specifically aimed at improving the experience of desktop users with Linux. Because some of these features still exhibit unreliable behavior, they have been disabled in Fedora Core 3. The following bullet items describe some of the desktop-related features in the 2.6 kernel and note those that are not yet enabled in Fedora Core 3:
Anticipatory scheduler — By anticipating what the user will want to do next, the kernel can look ahead, guess what the user might want next, and begin preparing to respond to that request. The anticipatory scheduler in the 2.6 kernel tries to anticipate read requests that it thinks processes will make next. It does this by maintining per- process statistics to help it guess if there will be another dependent read soon after one just requested. In that way, the kernel can wait before returning the requested information and do several similar reads one after the other. This can result in great performance improvements.
There are several tunable parameters associated with the anticipatory scheduler that are available to advanced users. Check out /sys/block/*/queue/iosched (where the asterisk is replaced by the name of the disk you are tuning, such as hda for your first hda hard disk). There should be tunable parameters available for your hard disks, floppy disks, and loop devices.
The anticipatory scheduler is currently disabled in Fedora Core 3.
Improved threading support — Native POSIX Thread Library (NPTL) can result in significantly improved desktop performance. Threads can improve performance by allowing small pieces of code to run independently, without incurring the overhead required to start and stop each piece of code as an independent process. Particular improvements have been seen in desktop performance and on multiprocessor systems.
Red Hat, Inc. sponsored the NPTL development, and back-ported this feature into the 2.4 kernel. So, Red Hat Linux 9 and Fedora Core (1 and 2) already had NPTL support built in, without having to upgrade to the full 2.6 kernel.
Preemptible kernel — Having a kernel that can be preempted (in other words, allow it to give attention to a user-level task while it is waiting on a kernel-level task) has the potential for significantly improving desktop performance. With kernel preemption enabled, a kernel activity that is taking a long time to complete will no longer keep all other activities from gaining access to the processor. This can result in actions that a desktop user expects to happen immediately (such as moving a window or opening a menu) to not be stopped by some background kernel activity. Likewise, applications that require smooth performance (such as audio and video playing) are more likely to not be interrupted by a demanding kernel process.
The preemptible kernel feature is not enabled in Fedora Core 3. The feature is still considered to be unstable.
More devices — For desktop users, there have been dramatic improvements to support for many of today’s popular external devices. These include USB, firewire (to some extent), PC cards, and Hot Plug devices, so you’ll have a better chance of getting your external modem, Webcam, digital camera, and other devices working properly with the 2.6 kernel. (See the “Improvements in Hardware Support” section later in this chapter.)
Multimedia enhancements — You should get better and more consistent performance with your sound system with the addition of the Advanced Linux Sound Architecture (ALSA) to the 2.6 kernel. For gaming, there is improved support for joysticks that includes analog joystick support in ALSA drivers and an I-Force joystick driver that supportes force feedback. Likewise, as mentioned earlier, general improvements to the kernel will make playback of multimedia content go more smoothly with the 2.6 kernel.