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