From: i...@fg70.rz.uni-karlsruhe.de (Thomas Koenig)
Subject: Kernel wishlist, 1996-12-20
Date: 1996/12/20
Message-ID: <59evir$q98@fg70.rz.uni-karlsruhe.de>
X-Deja-AN: 205176778
content-type: text/plain; charset=iso-8859-1
organization: =?ISO-8859-1?Q?Universit=E4t_Karlsruhe_(TH),_Germany_?=
mime-version: 1.0
reply-to: Thomas.Koe...@ciw.uni-karlsruhe.de
newsgroups: comp.os.linux.development.system



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
* Better memory management to get large continous DMA buffers
(contact <ja...@purplet.demon.co.uk>)
* Better kmalloc debugging; making kmalloc of other sizes (multiple
of 16) allocatable (almost done; <ja...@purplet.demon.co.uk>)
* Cleaner code for swap files (FAT now supports bmap())
* Using the PPro's 36-bit virtual addresses
* As an alternative to NFS swapping, a dedicated swap protocol

net

* PPP support for Appletalk (<b...@pht.com>'s [26]project)
* ACLs for inet ports (allow port 53 set to owner 'dns', for
example)
* Per-user IP accounting <airl...@skynet.ul.ie>
* Limiting TCP bandwidth (Done; Alan Cox <alan....@linux.org>'s
[27]shaper project)
* per user accounting and firewalling
* STREAMS support (possibly in userspace)
* Add support for the KIP protocol (in user space?)
* Secure RPC (for NFS, for example)
* Faster firewalling and routing, either with machine code via
module, or a lex-like table. (Is this faster?)
* Routing based on firewalling - like context
* /proc/net counters in 64 bit

References

1. http://www.uni-karlsruhe.de/~ig25/kernel-wishlist.html
2. http://www.uk.linux.org/Linux8086.html
3. http://satsuma.sys.uea.ac.uk/~ben/third.html
4. ftp://sol.wohnheim.uni-ulm.de/pub/linux/misc/dcf77-info-1.1.tar.gz
5. http://www.ccs.neu.edu/home/albert/SAK.patch.gz
6. http://www.redhat.com/linux-info/pnp/
7. http://www-sccm.stanford.edu/~hargrove/HFS/
8. http://www.informatik.hu-berlin.de/~loewis/ntfs/
9. http://www-cgi.cs.cmu.edu/afs/cs/project/coda/Web/coda.html
10. ftp://www-plateau.cs.berkeley.edu/pub/multimedia/linux/joliet/
11. http://www-plateau.cs.berkeley.edu/people/chaffee/fat32.html
12. ftp://fb0429.mathematik.th-darmstadt.de/pub/linux/okir/dontuse/
13. http://lucien.blight.com/~c-cook/prof/lfs/
14. http://www.sas.com/standards/large.file
15. ftp://linux.dcs.ed.ac.uk/pub/linux/supermount/
16. http://netspace.net.au/~reiter/e2compr.html
17. ftp://ftp.shout.net/pub/users/mec/
18. http://web.fdn.fr/~tquinot/linux-default-loglevel.html
19. ftp://ftp.cistron.nl/pub/os/linux/kernel/patches/v2.0/
linux-2.0.20-serial-cons-kmon.diff
20. http://www.uruk.org/grub/mem64mb.html
21. ftp://ftp.informatik.uni-erlangen.de/local/cip/mskuhn/misc/linux-posix.1b
22. http://synergy.caltech.edu/~ggi/
23. http://cesdis.gsfc.nasa.gov/linux-web/beowulf/beowulf.html
24. ftp://ftp.gcom.com/pub/linux/src/gdbstub/
25. http://www.ecsnet.com/
26. http://gandalf.pht.com/~brad/atalk/
27. ftp://shadow.cabi.net/pub/Linux/shaper-alpha-15.tar.gz

From: i...@fg70.rz.uni-karlsruhe.de (Thomas Koenig)
Subject: Kernel 2.2.0 wishlist
Date: 1996/10/01
Message-ID: <52r6bg$78v@fg70.rz.uni-karlsruhe.de>
X-Deja-AN: 186555712
distribution: local
organization: Mail -> News Gateway
reply-to: Thomas.Koe...@ciw.uni-karlsruhe.de
newsgroups: linux.dev.kernel


Wishlist for Linux 2.2.0

Now that Linux 2.1 is out, it's time for another round of Request For
Features.

Here's what people on linux-kernel have been suggesting, in no
particular order. Some items are rather hotly debated.

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

First, user-visible things:
* Modularization of ide.c and ide-cd.c
* Minimalistic video code to make Linux more "aware" of the current
state
* Making the boot process less verbose as an option
* Colorizing the boot-up display (as an option, some people can't
stand colors :-)
* Making 80 chars the maximum line length during boot (optional)
* Shared Memory - mapping of /dev/zero or a working MAP_ANONYMOUS
* Make the system embeddable (see the [1]Linux 8086 project 
* [2]Journaling file system 
* Access Control Lists and other security enhancements (POSIX.6
things)
* Full Threads support using clone()
* Queued signals and other POSIX.1b (aka POSIX.4) stuff (see [3]A
Vision for Linux 2.2 -- POSIX.1b Compatibility and Real-Time
Support by Markus Kuhn for a good summary)
* signal stacks
* Undelete command and/or versioned file system
* Turn on the ext2fs secure deletion feature
* 32-bit or 64-bit minor/major device numbers
* STREAMS support (possibly in userspace)
* IPv6 (in progress)
* General per-user resources (CPU, IP, memory quotas)
* Limiting TCP bandwidth (Alan Cox
<iia...@lusers.are.not.humans.org>) see [4]the shaper project
* per user accounting and firewalling
* System call auditing (for real paranoids)
* Making atime a configurable option (per file system?)
* Moving of all the relevent README files into the Documention
directory
* Localtalk support for the Appletalk stack
* Allowing the video mode code at bootup to be optional
* Being able to run a parallel zip drive and a printer at the same
time (Grant Guenther, gr...@gear.torque.net)
* Ability to change the scheduler at runtime, via loading a module
* SCSI device numbers should include drive IDs, not be consecutively
numbered
* Microchannel support
* More flexible configuration through sysctl
* Integrated PCMCIA support
* hfs filesystem (Paul H. Hargrove <hargr...@sccm.stanford.edu>,
[5]http://www-sccm.stanford.edu/~hargrove/HFS/.
* userfs and NTFS filesystems
* physical/logical volume manager (like AIX)
* PC speaker patch
* parallel port sound input driver
* real swapping (instead of paging) so multiple high memory usage
jobs can run concurrently
* Preemptive paging
* A union file system
* Deal with "out of VM" situations more gracefully
* revoke() system call (make sure nobody holds this device open)
* Swap files over NFS
* 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
* Fully debugging a running kernel on Intel
* Support for more RAID levels
* Making mandatory locking a mount option
* Add support for the KIP protocol
* NFS write clustering/coalescing/biod (Linus)
* NFS V3 (RFC 1813)
* Caching a slow block device on a fast one (loot at the [6]BCCF
project )
* Handle SAK and Ctrl-Alt-Del in raw keyboard mode (see Markus
Gutschke's <guts...@uni-muenster.de> [7]SAK patch)
* Secure RPC (for NFS, for example)
* Allow process run by normal users to lock a few pages into memory
* Get the dumpable flag of a process
* Being able to prevent other users from seeing processes (option to
/proc)
* Better support for Plug'n Play cards (see [8]RedHat's web pages)
* Guaranteed stream throughput (for example, reserve 300 kB/sec for
reading a file from disk)
* Paging binaries run off CD-ROM and NFS to local swap
* Uniform pointing device support.
* Environment variables as part of symbolic links (may cause
security problems with interruptible paths)
* Generic "mount one file system on top of another" option
* Get memory size using INT 15h, see the [9]documentation about the
interface
* Update the kernel PLL to the current xntpd specs
* support 64-bit file size, according to the [10]Large File / File
System Support suggestion
* Read-write UFS file system support (Jared Mauch,
<ja...@wolverine.hq.cic.net>)
* Serial console support
* Exclusive open mechanism for raw disks (<Andries.Brou...@cwi.nl>,
Grant Guenther <gr...@gear.torque.net>)
* Full support for EPP/ECP modes in the parallel port disk drivers
* Cleanup of boot parameter syntax for insmod and lilo/loadlin
* Change removable media withour mount/umount (Stephen Tweedie's
[11]supermount patch)
* Get a PPS (Pulse per second) signal from the serial port (Harald
Koenig's [12]k-dcf patch).
* Make up a standardized frame grabber interface (VFG - layer)
* File - level compression in EXT2
* Noblink patch
* PC speaker sound patch
* Being able to mount DriveSpace volumes under Linux
* Shrinkable / extensible file system and logical volume manager

Second, internal kernel stuff:
* Adaption of all CD-ROM drivers to generic interface
* Drivers being able to throw away their init. code once complete
* Global min/max functions
* Faster dep (qdep, for example)
* Being able to compile from sources mounted read-only
* Better kmalloc debugging
* Cleaner code for swap files (FAT now supports bmap())
* Cleaning up the header files so that everything not needed in
userland goes into #ifdef __KERNEL__ (Michael Chastain
<m...@duracef.shout.net>)
* Better memory management to get large continous DMA buffers
* Remapping the kernel to a higher virtual address
(<Linus.Torva...@cs.Helsinki.fi>)

References

1. http://www.linux.org.uk/Linux8086.html
2. http://lucien.blight.com/~c-cook/prof/lfs/
3. ftp://ftp.informatik.uni-erlangen.de/local/cip/mskuhn/misc/linux-posix.1b
4. ftp://shadow.cabi.net/pub/Linux/shaper-alpha-15.tar.gz
5. http://www-sccm.stanford.edu/~hargrove/HFS/
6. http://satsuma.sys.uea.ac.uk/~ben/third.html
7. http://www.ccs.neu.edu/home/albert/SAK.patch.gz
8. http://www.redhat.com/pnp/
9. http://www.uruk.org/grub/mem64mb.html
10. http://www.sas.com/standards/large.file
11. ftp://linux.dcs.ed.ac.uk/pub/linux/supermount/
12. ftp://sol.wohnheim.uni-ulm.de/pub/linux/misc/dcf77-info-1.1.tar.gz

From: a...@lxorguk.ukuu.org.uk (Alan Cox)
Subject: Re: Kernel 2.2.0 wishlist
Date: 1996/10/09
Message-ID: <53hahr$j6h@lightning.swansea.linux.org.uk>#1/1
X-Deja-AN: 188557063
distribution: local
references: <52r6bg$78v@fg70.rz.uni-karlsruhe.de>
x-submitted-via: n...@ratatosk.yggdrasil.com (linux.* gateway)
x-hdr-sender: a...@lxorguk.ukuu.org.uk 
organization: UKUU - Free UK UUCP
x-env-sender: a...@lxorguk.ukuu.org.uk
newsgroups: linux.dev.kernel


In article <52r6bg$...@fg70.rz.uni-karlsruhe.de>,
Thomas Koenig <Thomas.Koe...@ciw.uni-karlsruhe.de> wrote:
> * Limiting TCP bandwidth (Alan Cox
> <iia...@lusers.are.not.humans.org>) see [4]the shaper project

Done.. and lusers.are.not.humans needs to move as the host it points to is
no more. Once 2.0.x is stable I'll send Linus a patch to drop the shaper in

> * Making atime a configurable option (per file system?)

Already a patch for this. Goes with needing a bigger directory cache

> * Localtalk support for the Appletalk stack
Thats been there for ages, we just have zero drivers for localtalk

> * Being able to run a parallel zip drive and a printer at the same
> time (Grant Guenther, gr...@gear.torque.net)
and a quickcam and a parallel port tape drive and..

> * Microchannel support
Just wants merging - and it would be good to merge this BEFORE 2.1.x
disappears off radically. Its been waiting to merge since about 0.99.5

> * Add support for the KIP protocol

KIP is a user space problem unless you want to drag a vast amount of cack
into kernel space. 

> * NFS write clustering/coalescing/biod (Linus)
[Olaf surely]

> * Secure RPC (for NFS, for example)
[Alexey was doing some good stuff on this]

> 1. http://www.linux.org.uk/Linux8086.html
www.uk.linux.org please - the other domain dies soon

Alan

-- 
UKUU free UUCP Project Swansea | Alan Cox, <alan....@linux.org>
+44 1792 422028 (Cabletel) | Custom Linux Software Projects.
Sonix 33.6K 24x7 | Linux Consultancy. Linux Networking.
Free mail/news feeds for almost all--------------------------------------