In detail
The new Linux features so far discussed in this article are only a selection of the most important changes - the proverbial tip of an iceberg which consists of thousands of patches in the main development branch of every new Linux version. We'll describe many further more or less significant changes briefly in the following section. The brief descriptions are linked to the respective changesets of the source code Linus Torvalds maintains in a Git depot at kernel.org. Much more additional information can be found at the links; you can also access the patches themselves there, which are a good source of information even if you don't know much about programming, since they usually contain comments and sometimes also documentation changes.
Architecture code:
- Blackfin: ADSP-BF52x support
- Code for Intel IOMMU
- powernow-k8 extensions for the pstates of the new AMD processors
- x86-64 EFI support: frame buffer driver, documentation
- Improved sys_time() performance
VFS and file systems:
- posix capabilities (more information)
- CIFS: ACL support (several commits, for example this one) and named pipes (1, 2)
- readahead: interleaved reads
- JFFS2: LZO compression
ACPI:
Input:
- Key codes for euro and dollar keys
- alps (ALPS touch pads): [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dac4ae0daa1be36ab015973ed9e9dc04a2684395]
PCI/USB subsystem:
- Documentation for USB power management
- PCI domain support
- "pci=noaer" deactivates PCIe advanced error reporting
IDE subsystem (old parallel ATA drivers as well as individual serial ATA controllers):
- /sys/bus/ide/devices/*/{model,firmware,serial}
- ide_platform (generic IDE drivers, for example for compact flash cards in TrueIDE mode) included for the first time
- atiixp (ATI southbridges): support for SB700 southbridge
- Removal of "idex=dma" kernel parameter, Addition of hdx="nodma"
- ACPI support for IDE power-on/off
libata (parallel and serial ATA):
- PATA cable detection via ACPI
- Freescale 3.0Gbps SATA controller support
- Corrections for Marvell 7042
- hptiop (Highpoint SATA controllers): new firmware interface, support for new hardware
- sata_nv (SATA controllers in Nvidia chipsets): NCQ support for MCP51/MCP55/MCP61
- pata_cs5536 (AMD Geode companion chip): included for the first time
- pata_acpi (PATA ACPI drivers): included for the first time
- ahci: support for Nvidia MCP79 (1, 2)
SCSI:
- aic7xxx (Adapterc controllers): add suspend/resume support
- arcmsr (Areca SATA controllers): support for ARC1200/1201/1202
Networking:
- MAC80211 (WLAN subsystem) setting transmission power, LED support
- Generic large receive offload for TCP
- forcedeth (MACs in Nvidia mainboard chipsets): MCP77 and MCP79 support
- phylib (used by various drivers, this code contains PHY information): support for Marvell 88E1240
- sky2 (Marvell Gigabit MACs): 88E8042 and 88E8072 support
- hostap_cs (Intersil Prism2-based 802.11 WLAN): support for Telekom T-Sinus 111card
- p54usb (Prism54 USB WLAN hardware): support for Linksys WUSB54AG
- uli526x (MACs in ULi chipsets): suspend and resume routines
- dl2k (Sundance/Tamarack TC902x Gigabit Ethernet adapter): included for the first time
- ip1000a (IP1000 Gigabit Ethernet cards): included for the first time
- tehuti (Tehuti Networks 10G Ethernet): included for the first time
- tg3 (Broadcom Gigabit chips): various improvements, support for 5784, 5764, 5723, 5761 chips
- pcnet32 (AMD MACs): suspend and resume support
Audio:
- snd-emu10k1 (Creative EMU10K1 chips used, for example, in various models of Soundblaster Live): support for ADAT and SPDIF as well as for E-Mu 1616 PCI, 1616M PCI, 0404 PCI and E-Mu Notebooks sound hardware
- snd-hda-intel (audio support for mainboard chipsets by various manufacturers) Nvidia MCP79 support
- Asus P701 EEEPC support
Graphics:
V4l/DVB:
- dtt200u (USB DVB-T hardware): support for Miglia TVMini USB DVB-T
- dibX000X (DiBcom demodulators): substantial changes, DiB7070 support
- cx23885 (Connexant CX23885/CX23887): included for the first time
- saa7134 (TV cards by various vendors): suspend and resume support
Hardware monitoring:
- Moving watchdog components
- fschmd (Fujitsu-Siemens (FSC) chips): included for the first time
- coretemp (Intel Core 2 microarchitecture): support for Celeron 4xx
- adt7470 (ADT7470 chips by Analog Devices): included for the first time
- ipmi_si: support for IPMI 0.9
- it8712f_wdt (IT8212F watchdog driver): included for the first time
- i5k_amb (FB-DIMM temperature sensor for Intel 5000 mainboard chipsets): included for the first time
- f71882fg (Fintek F71882FG and F71883FG): included for the first time
- f75375s (Fintek F75375S/SP and F75373.): included for the first time
- dme1737: support for SMSC SCH3112, SCH3114, and SCH3116 chips
Miscellaneous:
- /sys/module/name/notes
- CodingStyle: longer lines allowed
- Extension of crashkernel kernel parameter (x86-32, x86-64, documentation)
- Linux Kernel Marker (documentation)
- audit: watching subtrees
- per device dirty threshold
A similar summary of the changes in 2.6.24 is maintained by the Kernel Newbies wiki. The new Linux version's entire collection of changes is listed in the detailed Changelog and the Git web interface. The latter allows users to navigate the complete directory tree of the Linux kernel as well as display the source code and its development history. You can, for example, retrace recent changes to individual drivers or kernel segments, for example those to the ahci driver, the ext4 file system, the kernel parameter documentation or the list of feature removals. (thl/c't)