By Jonathan Corbet
April 23, 2008
That shiny new 2.6.25 kernel which was released on April 16 is now ancient
history; some 3500 changesets have been merged into the mainline git
repository since then. Some of the most significant user-visible changes
include:
- New drivers for Korina (IDT rc32434) Ethernet MACs,
SuperH MX-G and SH-MobileR2 CPUs,
Solution Engine SH7721 boards,
ARM YL9200, Kwikbyte KB9260, Olimex SAM9-L9260, and emQbit ECB_AT91
boards,
Digi ns921x processors,
the Nias Digital SMX crypto engines,
AMCC PPC460EX evaluation boards,
Emerson KSI8560 boards,
Wind River SBC8641D boards,
Logitech Rumblepad 2 force-feedback devices,
Renesas SH7760 I2C controllers, and
SuperH Mobile I2C controllers.
- The PCI subsystem now supports PCI Express Active State Power
Management, which can yield significant power savings on suitably
equipped hardware.
- There is a new security= boot parameter which allows the
specification of which security module to use if more than one are
available.
- Network address translation (NAT) is now supported for the SCTP,
DCCP, and UDP-Lite protocols. There is also netfilter connection
tracking support for DCCP.
- The network stack can now negotiate selective acknowledgments and window
scaling even when syncookies are in use.
- Another long series of network namespace patches has been merged,
continuing the long process of making all networking code
namespace-aware.
- Mesh networking support has been added to the mac80211 layer. It is
currently marked "broken," though, until various outstanding issues
are fixed.
- 4K stacks are now the default for the x86 architecture. This change
is controversial and could be reversed by the time the final release
happens.
- SELinux now supports "permissive types" which allow specific domains
to run as if SELinux were not present in the system at all.
- A number of enhancements have been made to the realtime group
scheduler, including multi-level groups, the ability to mix processes
and groups (and have them compete against each other for CPU time),
better SMP balancing, and more.
- Support for the running of SunOS and Solaris binaries has been
removed; it has long been unmaintained and did not work well.
- The kernel now has support for read-only bind mounts, which provide a
read-only view into an otherwise writable filesystem. This feature
(the implementation of which was more involved than one might think)
is intended for use in containers and other situations where even
processes running as root should not be able to modify certain
filesystems.
Changes visible to kernel developers include:
- At long last, support for the KGDB interactive debugger has been
added to the x86 architecture. There is a DocBook document in the
Documentation directory which provides an overview on how to use this
new facility.
- Page attribute table (PAT) support is also (again, at long last)
available for the x86 architecture. PATs allow for fine-grained
control of memory caching behavior with more flexibility than the
older MTRR feature. See Documentation/x86/pat.txt for more
information.
- Two new functions (inode_getsecid() and
ipc_getsecid()), added to support security modules and the
audit code, provide general access to security IDs associated with
inodes and IPC objects. A number of superblock-related LSM callbacks
now take a struct path pointer instead of struct
nameidata. There is also a new set of hooks providing
generic audit support in the security module framework.
- The now-unused ieee80211 software MAC layer has been removed; all of
the drivers which needed it have been converted to mac80211. Also
removed are the sk98lin network driver (in favor of skge) and bcm43xx
(replaced by b43 and b43legacy).
- The generic semaphores
patch has been merged. The semaphore code also has new
down_killable() and down_timeout() functions.
- The ata_port_operations structure used by libata drivers now
supports a simple sort of operation inheritance, making it easier to
write drivers which are "almost like" existing code, but with small
differences.
- A new function (ns_to_ktime()) converts a time value in
nanoseconds to ktime_t.
- The final users of struct class_device have been converted to
use struct device instead. If all goes well, the
class_device structure will be removed later in the 2.6.26
cycle.
- Greg Kroah-Hartman is no longer the PCI subsystem maintainer, having
passed that responsibility on to Jesse Barnes.
- The seq_file code now accepts a return value of SEQ_SKIP from
the show() callback; that value causes any accumulated output
from that call to be discarded.
Needless to say, this development series is still young and, as of this
writing, the merge window has over a week to run. So there will be a lot
more code going into the mainline before the shape of 2.6.26 becomes clear.
(
Log in to post comments)