Your reference to sema(2) in CB-UNIX prompted me to go check the source and curiously,
that isn't in sysent.c:
(p. 50).
However, there is a sys5.c with some semaphore stuff in it. Not how the code gets from
the sigcall entry to that file, maybe there's a CB-specific syscall aggregator like
the sys3b systemcall for 3B20-specific stuff. It had never actually occurred to me that
the semaphores in SVR1 weren't the ones from CB-UNIX, I thought they just forklifted
all the IPC into 4.0 from CB. That then means the semaphores that carried through in
System V originated at least in UNIX/TS 4.0, but not by way of CB. Minor trivia, but
that's news to me. Maybe the sysV modification request logs can shed some light, I
remember seeing several IPC mentions in there.
- Matt G.
------- Original Message -------
On Friday, December 23rd, 2022 at 7:30 PM, Jonathan Gray <jsg(a)jsg.id.au> wrote:
On Thu, Dec 22, 2022 at 04:44:32PM -0500, Phil Budne
wrote:
Matt G wrote:
One area of immediate curiosity for me is the
init system, whether the pages suggest it is more in line with research (rc and ttys
files) or TS (inittab, runlevels).
The init (VII) page mentions /etc/rc and refers to ttys (V) which says the file
consists of lines with three characters (enable, tty name, getty arg)
getty (VII) describes behaviors for 0, -, 1, 2
The one interesting bit in section (II) is lock (system call 62.) that
implements semaphores with subfunctions lock/unlock/tlock, all of
which take a non-negative semaphore ID called a flag.
used by MERT:
https://www.tuhs.org/Archive/Documentation/Manuals/MERT_Release_0/Unix Programmer Manual
- UPM - White Tabs/System Calls - man2/lock.2.pdf
"The semaphores provided in the MERT/UNIX supervisor are identical to
those provided by the USG-UNIX Generic 3 system [8].
[8] Brandt, R. B., Implementation of Semaphores and Messages in UNIX,
MF-76-8234-076."
https://www.tuhs.org/Archive/Documentation/TechReports/Heinz_Tech_Memos/TM-…
"Make (a program for maintaining other programs) was launched at the
CSRC towards the end of the year and was immediately adopted by USG for
the next generic release (PG-1C300 issue 2). This was a snapshot of the
USG system at mod level 3.33 (January 1976) indicating at least three
distinct levels of evolution: the generic releases, major and minor USG
mod levels."
"Generic 3.0 was released in spring 1977 (delayed from January)."
Pirzada, A Statistical Examination of The Evolution of the UNIX System
"I do remember a conversation with Dennis about semaphores, though.
He mentioned that no less than five groups inside of Bell Labs had
hacked semaphores into the kernel. Each group did it differently."
Steve Johnson
https://minnie.tuhs.org/pipermail/tuhs/2017-February/009748.html
In CB-UNIX there was sema(2):
https://www.tuhs.org/Archive/Distributions/USDL/CB_Unix/cbunix_man2_04.pdf
In System V Release 1, semctl(2), semget(2), semop(2)
http://www.bitsavers.org/pdf/att/unix/System_V_Release_1/301-905_UNIX_Syste…
xenix creatsem(2), opensem(2), sigsem(2), waitsem(2)
http://www.bitsavers.org/pdf/intel/system3xx/xenix-286/174385-001_Overview_…