]> git.neil.brown.name Git - history.git/commit
[PATCH] Linux-0.96-pre (April 21, 1992) 0.96pre
authorLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:09:03 +0000 (15:09 -0500)
committerLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:09:03 +0000 (15:09 -0500)
commitd1e6fdb230ed063aad217775231eae225149a43a
tree45777965d5f58e4cc2ad93abc18622c53d43e21a
parent6f8473c79860686bd2784e7df87fff8ae3886866
[PATCH] Linux-0.96-pre (April 21, 1992)

More VFS layer work: remove more special cases, and take advantage of
the virtual VFS functions (close and select).  Add fchown/fchgrp and
[f]truncate.

Orest Zborowski shows up, and works on porting X11 to X.  This needs a
lot of infrastructure support: ioperm() for user-mode IO port access,
and SVR style virtual terminal ioctl's to make porting easier.  Perhaps
more importantly, the mmap() system call shows up, even if it right now
is limited only to a direct /dev/mem remapping.

[Original changelog below]

- truncate/ftruncate/fchmod/fchown system calls

        note that there aren't any library functions for these, so they
        aren't very useful yet...

        [f]truncate needed a change in the logic of the internal
        truncate VFS call - anybody that has any nonstandard filesystem
        probably needs to look it up.

- io-bitmap syscalls giving root-processes access to selected io ports
  from user space.  There is a "ioperm()" system call that lets the
  process select which ports it wants to enable/disable (all ports
  disabled as default) as well as a (standard sysv?) ioctl interface
  that X uses.

        again, no library stubs, but it allows things like reading and
        setting the cmos clock without using /dev/port, as well as
        control over the VGA registers...

- mmap for /dev/mem

        more things needed for X...

- the signal-handling fixes needed for gdb

        These aren't yet complete: serial lines still send signals under
        interrupts that can result in problems (ie ptrace doesn't
        correctly get them), but that's pretty unlikely (and will be
        fixed in the final 0.96).  Breakpoints should work etc..

- multiple shared libraries

        Up to 6 simultaneous shared libraries/process: the patches were
        originally by pmacdona, but they were heavily changed by me, and
        I think they work in a more natural manner now.  One user-level
        change is that the libraries are now checked for read and
        execute permissions for safety-reasons.

- cleaned up special files.

        read/write/ioctl no longer has special-case code: it is all
        handled with tables to functions.  This will mean that the SCSI
        patches won't patch in quite cleanly into 0.96: you'll need to
        add the code that sets up the functions.

        Again: device drivers and vfs-filesystem hackers need to look
        into the changes, although they are pretty logical (earlier
        versions just didn't implement all the vfs-routines)

        Note that the vfs-code for select is still not used: select is
        hardcoded for the devices it supports right now.

- ptrace() has a new interface

        as gdb for versions < 0.95c don't work on the new version, and
        gdb won't work very well at all on 0.95c[+], there was no reason
        not to break ptrace.  Thus 0.96 has a new calling convention for
        ptrace, and the old ptrace library function no longer works.
        I'm including the new ptrace library function at the end of this
        post.

- mount() takes 4 arguments, and checks that only the super-user can
  mount/umount things.

        Happily this shouldn't break any old binaries.

- some general cleanups
181 files changed:
.version
Makefile
boot/bootsect.S
boot/setup.S
fs/Makefile
fs/buffer.c
fs/exec.c
fs/ext/Makefile [deleted file]
fs/ext/bitmap.c [deleted file]
fs/ext/blkdev.c [deleted file]
fs/ext/chrdev.c [deleted file]
fs/ext/dir.c [deleted file]
fs/ext/fifo.c [deleted file]
fs/ext/file.c [deleted file]
fs/ext/freelists.c [deleted file]
fs/ext/inode.c [deleted file]
fs/ext/namei.c [deleted file]
fs/ext/symlink.c [deleted file]
fs/ext/truncate.c [deleted file]
fs/fcntl.c
fs/fifo.c [deleted file]
fs/inode.c
fs/ioctl.c
fs/minix/Makefile
fs/minix/bitmap.c
fs/minix/blkdev.c [deleted file]
fs/minix/chrdev.c [deleted file]
fs/minix/dir.c [deleted file]
fs/minix/fifo.c [deleted file]
fs/minix/file.c [deleted file]
fs/minix/file_dev.c [new file with mode: 0644]
fs/minix/inode.c
fs/minix/minix_op.c [new file with mode: 0644]
fs/minix/namei.c
fs/minix/symlink.c [deleted file]
fs/minix/truncate.c
fs/msdos/Makefile [deleted file]
fs/msdos/dir.c [deleted file]
fs/msdos/fat.c [deleted file]
fs/msdos/file.c [deleted file]
fs/msdos/inode.c [deleted file]
fs/msdos/misc.c [deleted file]
fs/msdos/namei.c [deleted file]
fs/namei.c
fs/open.c
fs/pipe.c
fs/read_write.c
fs/select.c
fs/stat.c
fs/super.c
include/a.out.h
include/asm/io.h
include/asm/irq.h [deleted file]
include/asm/memory.h
include/asm/segment.h
include/asm/system.h
include/fcntl.h [new file with mode: 0644]
include/linux/config.dist.h [deleted file]
include/linux/config.h
include/linux/config.site.h [deleted file]
include/linux/config_rel.h
include/linux/config_ver.h
include/linux/ext_fs.h [deleted file]
include/linux/fcntl.h [deleted file]
include/linux/fd.h [deleted file]
include/linux/fdreg.h
include/linux/fs.h
include/linux/hdreg.h
include/linux/kernel.h
include/linux/limits.h [deleted file]
include/linux/lp.h
include/linux/math_emu.h
include/linux/minix_fs.h
include/linux/mm.h
include/linux/mouse.h [deleted file]
include/linux/msdos_fs.h [deleted file]
include/linux/sched.h
include/linux/stat.h [deleted file]
include/linux/string.h
include/linux/sys.h
include/linux/timer.h
include/linux/tty.h
include/linux/unistd.h [deleted file]
include/linux/utsname.h [deleted file]
include/linux/wait.h [deleted file]
include/signal.h
include/stddef.h
include/sys/dirent.h
include/sys/ptrace.h
include/sys/resource.h
include/sys/socket.h [deleted file]
include/sys/stat.h [new file with mode: 0644]
include/sys/time.h
include/sys/types.h
include/sys/un.h [deleted file]
include/sys/user.h [deleted file]
include/sys/utsname.h [new file with mode: 0644]
include/termios.h
include/time.h
include/unistd.h
include/utime.h
init/main.c
kernel/Makefile
kernel/asm.s
kernel/blk_drv/Makefile
kernel/blk_drv/blk.h
kernel/blk_drv/floppy.c
kernel/blk_drv/hd.c
kernel/blk_drv/ll_rw_blk.c
kernel/blk_drv/ramdisk.c
kernel/blk_drv/scsi/Makefile [deleted file]
kernel/blk_drv/scsi/aha1542.c [deleted file]
kernel/blk_drv/scsi/aha1542.h [deleted file]
kernel/blk_drv/scsi/config.in [deleted file]
kernel/blk_drv/scsi/hosts.c [deleted file]
kernel/blk_drv/scsi/hosts.h [deleted file]
kernel/blk_drv/scsi/scsi.c [deleted file]
kernel/blk_drv/scsi/scsi.h [deleted file]
kernel/blk_drv/scsi/scsi_ioctl.c [deleted file]
kernel/blk_drv/scsi/scsi_ioctl.h [deleted file]
kernel/blk_drv/scsi/sd.c [deleted file]
kernel/blk_drv/scsi/sd.h [deleted file]
kernel/blk_drv/scsi/sd_ioctl.c [deleted file]
kernel/blk_drv/scsi/seagate.c [deleted file]
kernel/blk_drv/scsi/seagate.h [deleted file]
kernel/blk_drv/scsi/st.c [deleted file]
kernel/blk_drv/scsi/st.h [deleted file]
kernel/blk_drv/scsi/st_ioctl.c [deleted file]
kernel/blk_drv/scsi/ultrastor.c [deleted file]
kernel/blk_drv/scsi/ultrastor.h [deleted file]
kernel/chr_drv/Makefile
kernel/chr_drv/console.c
kernel/chr_drv/keyboard.S [new file with mode: 0644]
kernel/chr_drv/keyboard.c [deleted file]
kernel/chr_drv/lp.c
kernel/chr_drv/mem.c
kernel/chr_drv/mouse.c [deleted file]
kernel/chr_drv/pty.c
kernel/chr_drv/rs_io.s [new file with mode: 0644]
kernel/chr_drv/serial.c
kernel/chr_drv/tty_io.c
kernel/chr_drv/tty_ioctl.c
kernel/chr_drv/vt.c
kernel/chr_drv/vt_kern.h
kernel/exit.c
kernel/fork.c
kernel/ioport.c
kernel/irq.c [deleted file]
kernel/itimer.c [deleted file]
kernel/math/Makefile
kernel/math/ea.c
kernel/math/emulate.c
kernel/math/error.c
kernel/math/sqrt.c [deleted file]
kernel/printk.c
kernel/ptrace.c
kernel/sched.c
kernel/signal.c
kernel/sys.c
kernel/sys_call.S
kernel/traps.c
lib/Makefile
lib/_exit.c
lib/close.c
lib/dup.c
lib/execve.c
lib/itimer.c [deleted file]
lib/open.c
lib/setsid.c
lib/wait.c
lib/write.c
mm/Makefile
mm/memory.c
mm/mmap.c
mm/swap.c
net/Makefile [deleted file]
net/kern_sock.h [deleted file]
net/socket.c [deleted file]
net/socketcall.h [deleted file]
net/unix.c [deleted file]
tools/build.c