The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: wkt@tuhs.org (Warren Toomey)
Subject: [TUHS] 1st Edition UNIX syscalls
Date: Sun, 18 May 2008 17:58:20 +1000	[thread overview]
Message-ID: <20080518075820.GA75584@minnie.tuhs.org> (raw)

Working with the 1st Edition UNIX code has been a blast. I just thought I'd
quickly summarise the features of the 1st Edition. It's quite amazing the
system that had been written by the end of 1971:

- a multitasking system with up to 16 processes
- multiple users
- a hierachical filesystem, with empty directories used as mountpoints
- read/write file protection for user/other (no group), plus the
  execute and set-userid bits
- i-nodes, and filenames separated from i-nodes, allowing hard links
- device files

Just as interesting is the fact that, out of the 33 system calls in 1st
Edition UNIX, only one has disappeared completely from modern UNIXes;
four have merged into signal(), and a few have morphed into other syscalls:

V1_RELE    0    /* release the CPU, i.e. pre-empt this process */
V1_EXIT    1    exit()
V1_FORK    2    fork()
V1_READ    3    read()
V1_WRITE   4    write()
V1_OPEN    5    open()
V1_CLOSE   6    close()
V1_WAIT    7    wait()
V1_CREAT   8    open(path, O_CREAT | O_TRUNC | O_WRONLY, mode);
V1_LINK    9    link()
V1_UNLINK  10   unlink()
V1_EXEC    11   exec()
V1_CHDIR   12   chdir()
V1_TIME    13   gettimeofday()
V1_MKDIR   14   mkdir()
V1_CHMOD   15   chmod()
V1_CHOWN   16   chown()
V1_BREAK   17   brk()
V1_STAT    18   stat()
V1_SEEK    19   lseek()
V1_TELL    20   lseek(fd, 0, SEEK_CUR);
V1_MOUNT   21   mount()
V1_UMOUNT  22   umount()
V1_SETUID  23   setuid()
V1_GETUID  24   getuid()
V1_STIME   25   settimeofday()
V1_QUIT    26   signal(SIGQUIT,...)
V1_INTR    27   signal(SIGINT,...)
V1_FSTAT   28   fstat()
V1_CEMT    29   signal(SIGEMT,...)
V1_SMDATE  30   utimes()
V1_STTY    31   fcntl(), tcsetattr()
V1_GTTY    32   fcntl(), tcgetattr()
V1_ILGINS  33   signal(SIGILL,...)

The fact that we are still using these system calls today speaks volumes
for the original design.

Cheers,
	Warren



             reply	other threads:[~2008-05-18  7:58 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-18  7:58 Warren Toomey [this message]
2008-05-29 11:15 ` Warren Toomey

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080518075820.GA75584@minnie.tuhs.org \
    --to=wkt@tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).