|Which of the drivers were changed
Information about the changes to individual Linux kernel files can be found through the Git web frontend at Kernel.org – this, for example, allows users to find out whether there have been changes to the drivers used on their own systems. To do this, however, users need to know where in the Linux kernel's source code tree the driver files are located. For the heavily modular distribution kernels the modinfo program is often helpful when searching: [VERBATIM0] If a compiled module is, for example, located at [...]/kernel/drivers/net/e100.ko, its source code in the Linux source code archive can usually be found in a file with a similar name in the drivers/net/ directory – for example e100.c for the e100 driver for Intel 100 MBit networking hardware. Other modules like the e1000 driver for Intel's PCI Gigabit LAN chips, on the other hand, have a whole directory to themselves. If the approximate location of the driver source code is known, users can navigate to the respective source code files in the tree view of the Git web interface and can then retrieve an overview of the latest file or directory changes via the history link. In the network driver directory, changes to the driver code of e100 (drivers/net/e100.c) and e1000 (drivers/net/e1000/), for example, can be displayed and examined in this way.
Audio and Video Systems
The audio driver in 2.6.28 roughly corresponds to the Alsa driver version 1.0.18, but includes some extra, mostly minor improvements. The changes incorporated into the main development branch include a new userspace interface, used by applications to detect which audio input or output devices are connected to which audio jacks (Jack Sensing). Also new is the snd-usb-us122l driver for the Tascam US-122L USB Audio/MIDI Interface; the snd-virtuoso driver can now also handle the Asus Xonar HDAV1.3 and the Xonar HDAV1.3 Deluxe.
There is also added or improved support for the AC97 and HD audio codecs by various vendors – for example for AD1882A and AD1980 by Analog Devices, ALC662 and 663 by Realtek, as well as VT1708S and VT1702 by VIA. As in almost every new kernel version, the developers extended the whitelists for the automatic application of specific hardware workarounds. This allows drivers to automatically apply the special treatment for audio codecs, required with many PCs, notebooks and mainboards, for more types of hardware than before – in 2.6.28, this includes the Dell Studio 15, the HP Compaq 6730s and the Medion MD96630. The kernel developers have, however, removed the hal2 OSS driver. OSS emulation in the Alsa soundcore model is now optional, which allows alternative implementations – like the as yet experimental OSS proxy, which is based on the equally experimental CUSE (character devices in user space) (see also the article on LWN.net).
More than 500 of the commits in the main development branch for 2.6.28 alter the code in the Video 4 Linux/DVB subsystem, offering several new drivers and numerous improvements (1, 2, 3, 4, 5) – for example a gspca driver for the ALi M5602 chip and a major update for the t613 gspca driver. The kernel hackers replaced the driver for the Terratec Cinergy T2. Also new is the Gspca driver for the ALi M5602 webcam usb bridge.
Improvements under the hood
As in Linux 2.6.27, the development team has once again eliminated numerous calls to the Big Kernel Lock (BKL), used for safeguarding critical code regions during multiprocessor operation, or transferred them from the driver subsystem to the drivers themselves. The kernel coders have also pushed forward with consolidation of the directories and source code files for support for x86-32 and x86-64 systems, which started in Linux 2.6.24. This time around, this ongoing process has included various areas of code relating to IRQ management. This should result in further convergence of the behaviour of the 32 and 64 bit kernels, which previously differed somewhat in the way they dealt with IRQ configuration.
The developers have made improvements to the Linux TX multiqueue implementation ("multiqueue networking"), which was introduced in 2.6.27 and have added a "PRIO based multiqueue packet scheduler". Additions to the main development tree include the Phonet Stack (documentation), introduced by Nokia developers, and transparent Ethernet bridging over GRE tunnels from Herbert Xu. Jan Engelhardt has also introduced a number of wide-ranging revisions in the netfilter field, as a result of which Ebtables support is now based on Xtables. After five years of not working, the netfilter infrastructure, once more, properly supports transparent proxy support with the developers saying ("Proper transparent proxy support in netfilter. We sort of lost this feature 5 or so years ago, but hey better late than never to get it back :-)").
We haven't mentioned some of the changes introduced by Intel developer Arjan van de Ven to speed up hardware initialisation and booting (see 1, 2, 3, 4). Van de Ven used these, and several other changes rejected by Linus Torvalds, on a netbook that only required five seconds for starting Linux, in a demonstration at the Linux Plumbers Conference. With the majority of systems, however, Linux 2.6.28 will start up only marginally faster, despite the fastboot patches, as the popular mainstream distributions waste most of their time initialising userspace services and loading the log-in manager and desktop environment. Those who want to analyse the required kernel initialisation time for optimisation regardless, now have access to a new tracing infrastructure specifically designed for this purpose.