Wishlist for Linux 2.2.0
Here's what people on linux-kernel and comp.os.linux.development.system
have been suggesting. Some items are rather hotly debated. I'd like
to thank everybody who offered suggestions and corrections to this
list.
I will post this list infrequently to the linux-kernel mailing list
and to comp.os.linux.development.system.
I'm also listing who's working on what, if I know about it. If you
want to drop me a line with additional info, I'll put it in. This
might be your E-Mail address, or the URL for a patch that people may
try out. It might be a good idea to talk to the people who've
already done something before you start a project :-)
Also, please be aware that not everything listed here necessarily is
a good idea. I'm no judge of what should to into the kernel and what
shouldn't.
I am also maintaining this list as a [1]web page.
This list is structured roughly along the main subdirectories of the
Linux kernel.
Documentation
* Moving of all the relevent README files into the Documention
directory
arch
* Make the system embeddable (see the [2]Linux 8086 project)
* HP-PA port
drivers
Generic things
* 32-bit or 64-bit minor/major device numbers
* revoke() system call (make sure nobody holds this device open)
* Drivers being able to throw away their init code once complete
(put the init code somewhere else?)
* Integrated PCMCIA support
Block devices and SCSI
* Support for more RAID levels
* Exclusive open mechanism for raw disks (<Andries.Brou...@cwi.nl>,
Grant Guenther <gr...@gear.torque.net>)
* physical/logical volume manager, shrinkable/extensible file
systems (like AIX)
* Modularization of ide.c and ide-cd.c
* Adaption of all CD-ROM drivers to generic interface
* SCSI device numbers should include drive IDs, not be consecutively
numbered (possibly like the SCSI devices in SysV)
* Caching a slow block device on a fast one (look at the [3]BCCF
project )
* SCSI-spindown patch (via idle)
* Networked raw devices (Linus clusters?)
Serial, parallel and console
* parallel port sound input driver
* Microchannel support
* Being able to run more than one parallel device at the same time
(zip drive, printer, ...) (<gr...@gear.torque.net>)
* Full support for EPP/ECP modes in the parallel port disk drivers
(possibly including PLIP) (EPP is almost done; contact
<pfeif...@cs.nmsu.edu>)
* Localtalk drivers, for the Appletalk stack
* Opening serial lines or changing the baud rate without raising any
modem control lines (DTR, RTS)
* Setting the interrupt trigger level for 16650s from the command
line
* Registering/unregistering transfer functions for the loop device
* Get a PPS (Pulse per second) signal from the serial port (Harald
Koenig's [4]k-dcf patch).
* Handle SAK and Ctrl-Alt-Del in raw keyboard mode (see Markus
Gutschke's <guts...@uni-muenster.de> [5]SAK patch)
* Better support for Plug'n Play cards (see [6]RedHat's web pages)
* Individual scrollback for each console
* Being able to use DOS drivers (Interface to dosemu?)
* Full integration of the sound driver
* Noblink patch
New drivers
* PC speaker patch
* Uniform pointing device support (contact
<vojt...@atrey.karlin.mff.cuni.cz>)
* Mouse support for non-console terminals
* Make up a standardized frame grabber interface (VFG-layer)
* Better scanner support (TWAIN interface?)
fs
New filesystem types
* hfs filesystem (Paul H. Hargrove <hargr...@sccm.stanford.edu>,
[7]HFS project.
* userfs filesystem
* [8]NTFS filesystem (works read-only)
* [9]CODA (distributed file system) port
* Joliet CD-Rom extensions (in Alpha; see the [10]Joliet project
* VFAT-UMSDOS
* [11]FAT32 driver
* Read-write UFS file system support (Jared Mauch,
<ja...@wolverine.hq.cic.net>)
* Being able to mount DriveSpace volumes under Linux
* NETBios
Existing systems
* Making atime a configurable option (per file system?) (Already
done, <ty...@mit.edu>)
* Different NFS stuff <o...@monad.swb.de>'s [12]Linux NFS probject :
+ Swap files over NFS
+ NFS write clustering/coalescing/biod
+ NFS V3 (RFC 1813)
+ In-kernel nfsd
+ Secure NFS
+ lockd
+ statd
* [13]Journaling file system
* Access Control Lists and other security enhancements (POSIX.6
things, optional)
* Generic "mount one file system on top of another" option (e.g.
read from CD, write to HD); shadow filesystem.
* support 64-bit file size, according to the [14]Large File / File
System Support suggestion
* Opening a file by device/inode (for root only)
* A union file system
* Making mandatory locking a mount option (done;
<a...@lysaker.kvaerner.no>)
* Disable link() and rename() if the file if sticky bit is set on
the directory and user is not owner (symmetry with remove())
* Environment variables as part of symbolic links (may cause
security problems with interruptible paths)
* Change removable media without mount/umount (Stephen Tweedie's
[15]supermount patch)
* [16]File-level compression in EXT2 (in user space?)
* Transparent automounter (without symlinks, based on loopback,
maybe?)
* tmpfs, like Solaris
* Undelete command and/or versioned file system
* Turn on the ext2fs secure deletion feature
include
* Being able to compile from sources mounted read-only (Michael
Chastain <m...@duracef.shout.net>)
* Cleaning up the header files so that everything not needed in
userland goes into #ifdef __KERNEL__ (Michael Chastain
<m...@duracef.shout.net>)
* Putting constants / declarations that are only needed in a single
directory into that directory, and reserve include/linux for
global interfaces (Michael Chastain's <m...@duracef.shout.net>
[17]CDROM patches)
* Global min/max functions
init
* Allowing the video mode code at bootup to be optional
* Making the boot messages more configurable (see [18]Thomas
Quinot's work), for example assigning different colors to
different message levels, or leaving out some messages altogether.
* Making 80 chars the maximum line length during boot (optional)
* Cleanup of boot parameter syntax for insmod and lilo/loadlin
* Increasing the maximum length of boot parameters for all loaders
* [19]Serial console support
* Get memory size using INT 15h, see the [20]documentation about the
interface
* Memory test at bootup
* Booting from a RAID device (within limitations)
ipc
* POSIX.1b (aka POSIX.4) stuff (see [21]A Vision for Linux 2.2 --
POSIX.1b Compatibility and Real-Time Support by Markus Kuhn for a
good summary):
+ Improved signals (more signals, additional data, queued
signals, signal priorities)
+ Improved IPC (strings as shared memory names, semaphores)
+ Synchronous I/O
+ Better timers
+ Asynchronous I/O (possibly by using clone())
+ Better interrupt latency
kernel
* Minimalistic video code to make Linux more "aware" of the current
state (see the [22]GGI project)
* Update the kernel PLL to the current xntpd specs
* More flexible configuration through sysctl()
* General per-user resources (CPU, IP, memory quotas)
* Making all sorts of statistics available via /proc (for tools like
HP-UX Glance, or for putting into logfiles for later analysis)
* Making /proc/?stat a memory-mappable file with a "round" size for
faster access
* SIGSYS for i386
* Ethernet load balancing, for high-performance switches ([23]
BEOWULF project)
* Optional core file versioning (core.pid, for example).
* More informative error messages for bad memory (the infamous
SIG11)
* Long uids and gids
* System call auditing (for real paranoids)
* signal stacks (done, not yet included;
<msm...@quix.robins.af.mil>)
* Finer-locked permissions for specific tasks
* Ability to change the scheduler at runtime, via loading a module
* Fully debugging a running kernel on Intel (can be done remotely
via the [24]gdbstuff package)
* Clearup of error messages
* Being able to prevent other users from seeing processes (option to
/proc)
* Allowing tasks in kernel mode to be preemted if they ask for it
* Allowing the kernel to use swappable memory
* Long-term stabilization of the module ABI
* FPU - based memcpy for Pentium / Pentium Pro
* Cx (for suitable x) security validation
* APM for non-laptops
* Allow process run by normal users to lock a few pages into memory
(limitable).
* Get the dumpable flag of a process
* Guaranteed stream throughput (for example, reserve 300 kB/sec for
reading a file from disk)
* MMX - based TCP checksumming code (possible)?
* Better support for non-intel x86 processors (Cyrix, ...)
([25]done; see here)
mm
* Deal with "out of VM" situations more gracefully
* real swapping (instead of paging) so multiple high memory usage
jobs can run concurrently
* Preemptive paging (copy pages to swap when the system is idle)
* Swap out page tables
* Shared pool of zero pages for processes
* Shared Memory-mapping of /dev/zero or a working MAP_ANONYMOUS
*
...
read more »