Subject: Re: Syscall design in 1st Edition?

From: [email-masked]
Date: Tue, 6 Mar 2001 23:58:51 -0500

> Who was/were responsible for the choice of system calls for the PDP-7
 > version and the 1st Edition of UNIX? How was the choice made, what was
 > thrown out, etc etc. I'm still impressed how many of this original set of
 > system calls still exist, albeit in an evolved format.

Ken.  But the I/O scheme was sort of ancestral in that the open/close/read/write/seek
things were pretty much directly from Multics.  Of course the
basic idea of such operations was older, but the byte-buffer idea
was at least fairly fresh in Multics.  Its direct predecessor CTSS
was much more more block-oriented.

The place where real evolution (in system calls)  took place in the
PDP-7 system was with fork/exec.  This covered pretty well
in the Evolution paper on my homepage.  This was on the '7;
the other big early change (on transition to the PDP-11) was
the acquisition of file path names.  This is in the same paper as well.

 > Also, at least for 1st Edition, you chose to implement these as real
 > system calls (i.e with a SYS instruction, rather than a subroutine
 > call). Was this for a reason? The PDP-11/20 didn't have have a user/kernel
 > mode distinction, so again I'm impressed by the foresight. It's a pity
 > that the microcomputer OS designers didn't think so clearly.

Even on the PDP-7 system calls were done with some sort of
trap instruction, which I no longer remember.  The idea of having
a clear system vs user distinction (even if the hardware didn't help)
was another of the things that was absorbed, not only from Multics
but also from CTSS and (in Ken's case) presumably from the Berkeley
SDS 940 system.   These earlier systems did have a clear hardware
distinction, and even when our hardware didn't support it
nicely (particularly separation of address space), it seemed only
natural to do things this way--if for no other reason than that
it made it simpler to tweak and recompile the OS and the user
programs independently, with the system call numbers providing
the naming connection.

	Regards,
	Dennis