The purpose of this page is tracking and explaining the features added in every release, just like the [http://wiki.dragonflybsd.org/index.php/DragonFly_Status Dragonfly people did]. It'd be nice if kernel hackers would spend some minutes adding their stuff here. The one place where you can find a comparable changelog are the fabulous LWN kernel articles: http://lwn.net/Kernel/ (without those we wouldn't be able to cover many old 2.6.x releases), or the [http://lwn.net/Articles/driver-porting/ driver porting guide] - but there's no reason why the kernel community shouldn't embrace and extend those efforts ;) FORMAT * Name of the new feature/description of the change, including a small explanation if possible * If its a feature and the feature has some web page add a link to it * If there's a paper (OLS!) or an article add a link to it. Or write one ;) * If there's a interesting mail (benchmarks, announcements if there's no web page, etc) about it in the mailing list, get a link in one of the list's archives and add the link here * Add commit's link if possible (search them [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=log here)] TODO: * Import relevant data from [http://www.codemonkey.org.uk/post-halloween-2.5.txt davej's post halloween document] or remainig stuff from [http://kernelnewbies.org/status/latest.html Kernelnewbies status] * Find links to corresponding changesets (!!) * Keep track of what gets changed 2.6.14 '''STILL NOT RELEASED!!''': * Suspend support for CIFS filesystem [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ede1327ea4ca8019ec6df24b3e837def091c26b8 (commit)] * PPTP protocol support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=926b50f92a30090da2c1a8675de954c2d9b09732 (commit)] * [http://fuse.sourceforge.net/ FUSE]: FUSE allows to implement a fully functional filesystem in a userspace program * [http://v9fs.sourceforge.net/ 9P support]: Linux port of the famous [http://www.cs.bell-labs.com/sys/doc/9.html Plan9]'s [http://plan9.bell-labs.com/sys/man/5/INDEX.html 9P protocol] * ipw2100 and ipw2200 wireless drivers * [http://hostap.epitest.fi/ HostAP]: Adds support to work as "Wireless Access Point" * [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.Extensions.html Wireless extensions] API update * Four-level page table support for the ppc64 architecture * [http://lwn.net/Articles/149756/ DCCP]: "Datagram Congestion Control Protocol". Datagram protocol (like UDP), but with a congestion control mechanism. Currently a [http://www.icir.org/kohler/dcp/draft-ietf-dccp-spec-11.txt RFC draft] * [http://relayfs.sourceforge.net/ RelayFS]: "Basically relayfs is just a bunch of per-cpu kernel buffers that can be efficiently written into from kernel code. These buffers are represented as files which can be mmap'ed and directly read from in user space. The purpose of this setup is to provide the simplest possible mechanism allowing potentially large amounts of data to be logged in the kernel and 'relayed' to user space." 2.6.13: * x86 now uses the generic PCI bus setup code for assigning unassigned resources * [http://lwn.net/Articles/104343/ inotify] * Support for the Xtensa architecture: [http://www.tensilica.com/products/xtensa_architecture.htm 32-bit architecture] used in embedded devices * [http://lwn.net/Articles/108595/ kexec and kdump]: Kexec allows users to load a new kernel from another running kernel. By preserving the memory contents in a crash scenario, kexec allows to implement kdump. Kdump is able to get a memory dump of the previous kernel, and be used as a debugging tool. * [http://lwn.net/Articles/135472/ Execute-in-place support]: Traditionally, programs are loaded from disk to memory to be executed. However, the current wave of embedded devices store programs in a ROM/flash chip. XIP allows the kernel executing programs directly from that ROM, without being copied to RAM (saving RAM space), and bypassing the page cache/io scheduler layers (since they're not needed). * [http://lwn.net/Articles/145973/ build-time configurable clock interrupt frequency]: * [http://lwn.net/Articles/143474/ Improved CFQ IO scheduler]: With support for I/O priorities * Voluntary preemption patches * Removal of the devfs configuration option 2.6.12: * [http://lwn.net/Articles/140164/ API changes] * New driver for the "trusted computing" (TPM) crap^Wchip * [http://www.superh.com/products/shyway.htm SuperHyway bus support] * Multilevel security implementation for SELinux * [http://lwn.net/Articles/124703/ device mapper multipath support] * [http://lwn.net/Articles/121845/ Address space randomization] * Restore the Philips webcam driver * I/O barrier support for serial ATA drives * [http://lwn.net/Articles/134460/ "resource limits"] * [http://lwn.net/Articles/127936/ cpusets] * Remove IPV6 "experimental" status * Hot-pluggable parallel ports * Block I/O barrier rewrite (enables full barrier support on serial ATA drives) 2.6.11: * [http://lwn.net/Articles/117749/ Conversion to 4-level page tables] * [http://lwn.net/Articles/112531/ Infiniband support] * Support for Extended Attributes in the body of large inode in ext3: saves space and improves performance in some cases * Fujitsu FR-V CPU arch implementation * SATA support for Intel ICH7 * [http://lwn.net/Articles/115405/ DebugFS] * [http://lwn.net/Articles/118750/ New Pipe implementation] * [http://lwn.net/Articles/102253/ "Big Kernel Sempahore"] 2.6.10: * [http://lwn.net/Articles/109505 Reworking of spin lock initialization] * Big Kernel Lock preemption * IRQ subsystem code rework * Removal of the "BIO walking" helper functions * [http://lwn.net/Articles/107314/ generic circular buffer type] * Ext3 block reservation and online resizing patches * [http://lwn.net/Articles/69523/ sysfs backing store] * [http://lwn.net/Articles/103183/ I/O space write barriers] * On-the-fly switchable I/O schedulers * BSD secure levels module * kernel events notification mechanism * In-kernel cryptographic key management * DVD+RW and CDRW packet writing support 2.6.9: * [http://lwn.net/Articles/96621 Token-based thrashing control] * Support of block I/O barrier * m32r architecture support * Allow unprivileged processes to lock small amounts of memory in RAM * Tunable "max sectors" limit for block I/O requests (can help latency reduction) * New prctl() option allowing programs to change their name (PR_GET_NAME) * AMD dual-core support * [http://lwn.net/Articles/97537/ Out-of-line spinlocks] * Support for POSIX's waitid() * Shared memory scalability improvements * [http://lwn.net/Articles/91829/ "flex mmap" user-space memory layout] * Change in TCP ICMP source quench behavior * [http://www.linux-usb.org/gadget/h2-otg.html USB "on the go" support] * New USB storage driver * Support for more than eight partitions on BSD-labeled disks * Ethtool support in the loopback driver * [http://lwn.net/Articles/101215/ NETIF_F_LLTX interface] * Removal of the ancient "busmouse" driver * Infrastructure for cluster-wide file locking * DRM subsystem cleanups * more filesystem conversions to the new symbolic link resolution code (which will eventually allow an increase in the maximum link depth) * "fake NUMA" mode for x86-64 testing * Small-footprint tmpfs implementation * Support for scheduler profiling (seeing where context switches come from) * Automatic TCP window scaling calculation * Removal of the Philips webcam driver * Some VFS interface improvements * Executable support in hugetlb mappings * The Whirlpool digest algorithm * Removal of the very last suser() call 2.6.8: * support for 64-bit Super-H hardware * Removal of the PC9800 subarchitecture (lack of mainteinance) * x86 no-execute support, asynchronous I/O support for USB gadgets * [http://lwn.net/Articles/91959/ reworked symbolic link lookup implementation] * New "CPU mask" implementation * RCU performance improvements * Support for new Apple PowerBooks * New wait_event_interruptible_exclusive() macro * Support for the O_NOATIME flag in the open() call * Sysfs knobs for tuning the CFQ I/O scheduler * Mirroring and snapshot targets for the device mapper * Reiserfs data=journal support * Preemptible kernel support for the PPC64 architecture * "Khazad" crypto algorithm * [http://lwn.net/Articles/98379/ Added permissions checking on raw SCSI commands from user space] * Removal of the fcntl() file operations method * New internal infrastructure for handling file positioning and seekability * Support for the O_NOATIME flag in the open() call * Removal of the (non-functional) "fastroute" networking option * TEA and XTEA crypto algorithms 2.6.7: * [http://lwn.net/Articles/80911/ Scheduling Domains] * [http://lwn.net/Articles/83633/ Filtered Wakeups] * Ability to re-enable interrupts while waiting in spin_lock_irqsave() (for all architectures now) * msleep() function for millisecond-scale waits * [http://lwn.net/Articles/84836/ del_singleshot_timer()]: Deleting timers quickly * shrink "dentry" structure * Removal of the Intermezzo filesystem (lack of mainteinance) * Support for quotas and external attributes in reiserfs * Removal of IDE tagged command queueing support (never worked well) * new API for NUMA systems 2.6.6: * [http://lwn.net/Articles/80472/ full object-based reverse-mapping scheme and removal of the per-page PTE chains] * Network packet timestamping optimization * [http://www.geocities.com/wronski12/posix_ipc/index.html POSIX message queues] * Message queues for the x86_64 and s390 architectures * fsync() and fdatasync() speed improvements to ext2/3 * [http://lwn.net/Articles/77190/ addition of the fcntl() method to the file_operations structure] * [http://lwn.net/Articles/65437/ "Laptop Mode"] * 4KB kernel stacks option for the i386 architecture * Non-executable stack support for several architectures * Reiserfs updates: data=ordered support, space preallocation, laptop mode support * IPv6 support in SELinux * [http://lwn.net/Articles/79326/ The lightweight auditing framework] * A mechanism which allows block drivers to respond to queries about the congestion state of their queues * [http://lwn.net/Articles/75233/ "per-device unplugging patch"] * CFQ scheduler * External module support * Generic snapshot support code for filesystems (taken from XFS) 2.6.5: * [http://lwn.net/Articles/75944 Netpoll infrastructure] * [http://lwn.net/Articles/75920 New "kref" reference counting mechanism] 2.6.4: * HFS rewrite * Support for the Intel "ia32e" arch * UTF-8 tty mode * Dynamic PTY allocation (up to a million PTY devices) * Sysfs support for SCSI tapes and bluetooth devices * [ARC4 crypto module Support for large numbers of groups] * [http://lwn.net/Articles/65178/ Generic kernel thread infrastructure] * Groundwork for the hotplug CPU code * ARC4 crypto module 2.6.3: * Removal of the USB scanner code: moved support to userspace (libusb) * [http://lwn.net/Articles/69402/ New DMA pool abstraction] * "context mount" support for SELinux 2.6.2: * New Qlogic SCSI driver 2.6.1: * [http://lwn.net/Articles/44135/ Message Signaled Interrupt support] * Extensible Firmware Interface (EFI) support. 2.6.0: 2.6.0-test9: * [http://lwn.net/Articles/44243/ libata driver architecture] 2.6.0-test6: * [http://marc.theaimsgroup.com/?l=linux-kernel&m=104344596912094&w=2 32-bit dev_t] * Direct I/O support for reiserfs 2.6.0-test3: * [http://www.nsa.gov/selinux/index.html SELinux] 2.6.0-test1: * [http://www.linuxvirtualserver.org/ Linux Virtual Server layer] 2.5.75: * [http://marc.theaimsgroup.com/?l=linux-mm&m=104529418208788&w=2 Anticipatory Scheduler] * "kblockd" kernel threads * "nointegrity" JFS mount option 2.5.74: 2.5.73: 2.5.72: 2.5.71: * [http://marc.theaimsgroup.com/?l=linux-kernel&m=104981044405395&w=2 Switch the IDE I/O layers to taskfile] 2.5.70: * [http://www.linux-usb.org/gadget USB gadget support] 2.5.69: * [http://lwn.net/Articles/29555/ New interrupt handling API] * Runtime barrier instruction patching: Allows optimal performance on different processors without the need to ship multiple kernels 2.5.68: * Merging s390 and s390x into a single architecture * Generation of hotplug events from kobject registration 2.5.67: 2.5.66: 2.5.65: * [http://www.kerneltrap.org/node.php?id=603 Desktop Interactivity Improvements] 2.5.64: 2.5.63: * [http://high-res-timers.sourceforge.net/ POSIX timers] 2.5.62: * [http://lse.sourceforge.net/locking/dcache/dcache_lock.html Avoid dcache_lock while path walking] 2.5.61: 2.5.60: * New modversions implementation * 64-bit jiffies 2.5.59: * [http://home.arcor.de/efocht/sched/ NUMA aware scheduler extensions] 2.5.68: 2.5.57: * [http://www.zipworld.com.au/~akpm/linux/schedlat.html Remove long-held locks for low scheduling latency] 2.5.56: 2.5.55: 2.5.54: * [http://secure.netroedge.com/~lm78/ Add lm-sensors drivers for hardware health monitoring] * Support for AGP 3.0 2.5.53: * "sysenter" support 2.5.52: 2.5.51: * [http://linuxconsole.sourceforge.net/ Rewrite of the console layer] * Compatibility syscall layer 2.5.50: 2.5.49: 2.5.48: * [http://lists.insecure.org/lists/linux-kernel/2002/Oct/6214.html In-kernel module loader] 2.5.47: * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0204.1/0429.html Zerocopy NFS] 2.5.46: * [http://www.xmailserver.org/linux-patches/nio-improve.html Better I/O performance with epoll] * Per-cpu hot & cold page lists * [http://lists.insecure.org/lists/linux-kernel/2002/Oct/7027.html MMU-less processor support (ucLinux)] * [http://marc.theaimsgroup.com/?l=linux-kernel&m=101095500820185&w=2 Replace initrd by initramfs] * Extended Attributes and ACLs for ext2/ext3 2.5.45: * [http://www.xs4all.nl/~zippel/lc/ New Linux configuration system: kconfig] * [http://samba.org/~jamesm/crypto/ CryptoAPI] * [ftp://ftp.linux-ipv6.org/pub/usagi/patch/ipsec/ IPSEC] * [http://www.linuxtv.org/dvb/ Digital Video Broadcasting (DVB) layer] * [http://www.sistina.com/products_lvm.htm Device mapper for Logical Volume Manager (LVM2)] 2.5.44: * New sysfs filesystem (formerly known as driverfs) * Plug'N Play Layer Rewrite * [http://lwn.net/Articles/9042/ x86 BIOS Enhanced Disk Device (EDD) polling] 2.5.43: * [http://www.psc.edu/general/filesys/afs/ Andrew File System (AFS) support] * [http://oprofile.sourceforge.net/ OProfile, a low-overhead profiler] * [http://lse.sourceforge.net/locking Read-Copy Update (RCU) Mutual Exclusion] * [http://www.citi.umich.edu/projects/nfsv4/ Add support for NFS v4] * Remove kiobufs 2.5.42: * [http://marc.theaimsgroup.com/?l=linux-kernel&m=103298446916066&w=2 ext2/ext3 large directory support: HTree index] * [http://us1.samba.org/samba/Linux_CIFS_client.html Add new CIFS (Common Internet File System)] * [http://www.gelato.unsw.edu.au/ Remove the 2TB block device limit] * Improved i2o (Intelligent Input/Ouput) layer 2.5.41: 2.5.40: * [http://lse.sourceforge.net/numa Parallelizing page replacement] * [http://lse.sourceforge.net/numa NUMA topology support * [http://www.brodo.de/cpufreq/ Add support for CPU clock/voltage scaling] 2.5.39: * New IO scheduler ("deadline") 2.5.38: 2.5.37: * [http://users.pandora.be/bart.de.schuymer/ebtables/ Ethernet bridge tables support] * Remove the global tasklist 2.5.36: * Hugepage support * [http://oss.sgi.com/projects/xfs/ XFS filesystem from SGI] 2.5.35: * Serial ATA support * [http://user-mode-linux.sourceforge.net/index.html Add User-Mode Linux (UML)] 2.5.34: * POSIX threading support for signals * [http://lse.sourceforge.net/numa discontigmem support (ia32)] 2.5.33: * TCP segmentation offload * [http://www.sf.net/projects/lksctp SCTP (Stream Control Transmission Protocol)] 2.5.32: * [http://people.redhat.com/drepper/nptl-design.pdf Improved POSIX threading support] * [http://freshmeat.net/projects/linux-aio/ Asynchronous IO (aio) support] * Porting all input devices over to input API * New MTRR (Memory Type Range Register) driver 2.5.31: * Support insane number of processes * Disk description cleanups * Remove incomplete SPX network stack 2.5.30: * Remove khttpd 2.5.29: * Strict address space accounting * [http://lsm.immunix.org/ Add Linux Security Module (LSM)] * [http://people.redhat.com/mingo/tls-patches/ Thread-Local Storage (TLS) support] 2.5.28: * Remove the "Big IRQ lock" * Serial driver restructure 2.5.27: * [http://surriel.com/patches/ New VM with reverse mappings] 2.5.26: * Direct pagecache <-> BIO disk I/O 2.5.25: * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0207.0/0741.html Faster internal kernel clock frequency] * Unified naming for disk devices 2.5.24: 2.5.23: * [http://www.kernel.org/pub/linux/kernel/people/rusty/patches/Hotcpu/ Hotplug CPU support] * [http://bazar.conectiva.com.br/~acme/patches/wip More complete IEEE 802.2 stack] 2.5.22: 2.5.21: 2.5.20: 2.5.19: 2.5.18: * [http://falcon.sch.bme.hu/~seasons/linux/swsusp.html Software suspend (to disk & RAM)] * ->getattr() ->setattr() ->permission() changes 2.5.17: * Move ISDN4Linux to CAPI based interface * [http://marc.theaimsgroup.com/?l=linux-fsdevel&m=101586205801483&w=2 New quota system supporting plugins] 2.5.16: 2.5.15: 2.5.14: * Bluetooth support (no longer experimental!) * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0204.1/1250.html Support for IDE TCQ (Tagged Command Queueing)] 2.5.13: 2.5.12: * Rewrite of the buffer layer 2.5.11: * Rewrite of the framebuffer layer * [http://www.ussg.iu.edu/hypermail/linux/kernel/0204.3/0129.html Fast walk dcache] * [http://linux-ntfs.sourceforge.net/ Replace old NTFS driver with NTFS TNG driver] 2.5.10: 2.5.9: * Smarter IRQ balancing 2.5.8: * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0204.1/0215.html Radix-tree pagecache] * [http://www.kernel.org/pub/linux/kernel/people/rml/cpu-affinity Syscall interface for CPU task affinity] 2.5.7: * [http://sourceforge.net/projects/acpi/ ACPI (Advanced Configuration & Power Interface)] * [ftp://robur.slu.se/pub/Linux/net-development/NAPI/ NAPI network interrupt mitigation] * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0203.0/0884.html Futexes (Fast Lightweight Userspace Semaphores] * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0203.0/0335.html Video for Linux (V4L) redesign] * [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html New driver API for Wireless Extensions] 2.5.6: * [http://www.hojdpunkten.ac.se/054/samba/ http://www.hojdpunkten.ac.se/054/samba/] * [http://www.cs.helsinki.fi/linux/linux-kernel/2002-01/0438.html HDLC (High-level Data Link Control) update] * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0202.2/0920.html per_cpu infrastructure] * [http://www-124.ibm.com/jfs/ Add JFS (Journaling FileSystem from IBM)] * Killing kdev_t for block devices 2.5.5: * [http://linuxppc64.org/ New architecture: PowerPC 64-bit (ppc64)] * [http://www.x86-64.org/ New architecture: AMD 64-bit (x86-64)] * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0202.2/0297.html Pagetables in highmem support] * [http://www.alsa-project.org/ Add ALSA (Advanced Linux Sound Architecture] 2.5.4: * [http://www-124.ibm.com/developerworks/oss/pthreads/ Support for Next Generation POSIX Threading] * [ftp://ftp.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/ Add preempt kernel option] * Per network protocol slabcache & sock.h * [http://marc.theaimsgroup.com/?l=linux-kernel&m=100942323913586&w=2 Per filesystem slabcache & fs.h] 2.5.3: * [http://kernel.org/pub/linux/kernel/people/mochel/doc/ New driver model & unified device tree] * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0109.3/1341.html PnP BIOS driver] * [http://www.geocrawler.com/mail/msg.php3?msg_id=7686796&list=35 Generic Extended Attribute support] * [http://marc.theaimsgroup.com/?l=linux-kernel&m=101077476005939&w=2 Support reiserfs external journal] * [http://marc.theaimsgroup.com/?l=linux-kernel&m=101121711408999&w=2 IDE layer update] * [http://www.uwsg.iu.edu/hypermail/linux/kernel/0202.0/0260.html Untangle sched.h & fs.h include dependancies] * [http://www.geocrawler.com/lists/3/Linux/35/100/7642826/ Break Configure.help into multiple files] 2.5.2: * [http://marc.theaimsgroup.com/?l=linux-kernel&m=100992347220716&w=2 New kernel device structure (kdev_t)] * [http://people.redhat.com/mingo/O(1)-scheduler/ O(1) scheduler for improved scalability] * [http://marc.theaimsgroup.com/?l=linux-fsdevel&m=98307457705210&w=2 Filesystem per-process namespaces, late-boot cleanups] * [http://www.linux-usb.org/usb2.html Initial support for USB 2.0] 2.5.1: * Rewrite of the block IO (bio) layer