Kernel wishlist, 1996-12-20

Kernel wishlist, 1996-12-20

Post by Thomas Koen » Sat, 21 Dec 1996 04:00:00



                           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 »

 
 
 

Kernel wishlist, 1996-12-20

Post by Byron Fab » Sun, 22 Dec 1996 04:00:00


I didn't find the kitchen sink.

Byron

Thomas Koenig (i...@fg70.rz.uni-karlsruhe.de) wrote:

:
:                            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
...

read more »