Some ideas for the kernel wishlist

marekm@i17linuxb.ists.pwr.wroc.pl
Fri, 3 Apr 1998 23:33:59 +0200 (CEST)


Here are some random ideas, please consider adding them to the
wishlist (http://www.cs.uml.edu/~acahalan/linux/wishlist.html).
Thanks!

- more open() flags:
O_NOATIME (documented in the libc manual as a GNU extension,
more fine grained than mount -o noatime)
O_DSYNC, O_RSYNC (Single UNIX Spec version 2 aka Unix98,
trivial initial implementation - treat them like O_SYNC, but
add the new constants to the system header files for possible
future "real" implementation)
- change device numbers for IDE CD-ROMs so that they are
different than those of IDE hard disks (after all, they are
completely different devices which just happen to share the
same hardware interface) for consistency with SCSI devices
(where disk and cdrom with the same SCSI ID are different -
as they should), and to avoid fdisk -l trying to read the
partition table from a CD-ROM or (worse) empty CD-ROM drive.
- support for IDE CD-R/CD-RW writers (if they are standard
like other IDE devices and unlike SCSI CD writers - are they?)
- fat32 filesystem support (patches are available, but are not
in the standard kernel as of 2.1.90, and not on the wishlist),
and umsdos-like hack on top of that too
- not strictly kernel related, but since the device list is
part of the kernel distributions: encourage the use of
subdirectories under /dev, at least for any new devices which
use many minor numbers - the /dev directory is getting so big
these days... /dev/somedevice255 -> /dev/somedevice/255
- "real" /dev/fd/n devices like on some other systems where,
if the file descriptor n is open, these two system calls
have the same effect:
fd = open("/dev/fd/n", mode);
fd = dup(n);
(mode is ignored, EBADF if file descriptor n is not open;
note that the /dev/fd -> /proc/self/fd symlink is not
exactly the same). This can be useful to allow reasonably
safe implementation of setuid scripts (open the script
and pass /dev/fd/n as the script name to the interpreter).
(of course the interpreter itself must be written with
security in mind, and it should be optional via sysctl)
- make HZ tunable (sysctl?) for finer grained process switching
on fast CPUs (where it could be increased from the default
of 100 without adding too much clock interrupt overhead)
- make the kernel code segment read only if possible (some
architectures unfortunately need self modifying code) to
catch bugs where bad pointers can damage the kernel code
and cause various subtle and unrelated bugs to appear
- free memory used by the FPU emulator code at kernel startup
(like driver initialization code) if the emulator is not
used (for Linux distributions, so that the same kernel
image works on a 386 or 486SX but doesn't waste ~45K on
real CPUs).
- big DMA buffers (ftape etc.) - there is a patch (for 2.0.30
but should be easy to adapt to current kernels) that causes
kmalloc to swap out more pages instead of failing if memory
is fragmented - inefficient, but a slower kmalloc that works
is probably better than one that fails very quickly :-).
(note that this patch doesn't change anything for the most
common and most time critical case of allocating <= 1 page).
ftp://ftp.ists.pwr.wroc.pl/pub/linux/patches/linux-2.0.30-alloc-patch
- update the location of fixed NCSA telnet (DOS) clients in
Documentation/net/ncsa-telnet - ftp.upe.ac.za no longer
seems to exist, and someone should upload the files from
ftp://ftp.ists.pwr.wroc.pl/pub/msdos/ somewhere else
"just in case" (this is now the only copy that I know of,
and I no longer run that machine, so I can't guarantee that
these files will stay there, and some better connected ftp
site would be good, too...).

Thanks,

Marek

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu