[TUHS] quick question on PDP-11 addressing

Clem Cole via TUHS tuhs at tuhs.org
Tue May 5 03:04:36 AEST 2026


below.

On Mon, May 4, 2026 at 5:35 AM segaloco via TUHS <tuhs at tuhs.org> wrote:

> On Monday, May 4th, 2026 at 00:51, Arnold Robbins via TUHS <tuhs at tuhs.org
> <https://mail.google.com/mail/?view=cm&fs=1&tf=1&to=tuhs@tuhs.org>> wrote:
>
> > Jonathan Gray via TUHS <tuhs at tuhs.org
> <https://mail.google.com/mail/?view=cm&fs=1&tf=1&to=tuhs@tuhs.org>> wrote:
> >
> > > On Mon, May 04, 2026 at 02:19:59AM -0400, Phil Budne via TUHS wrote:
> > > > I wrote:
> > > > > CB (Columbus Bell) Unix, and SVR1 ran on 11's and supported shared
> > > > > memory segments.
> > > >
> > > > The sysv_pdp11.tgz I just found has has a library shmsys.c which
> > > > indicates SHMSYS was syscall 52, but it's a "nosys" entry in sysent.c
> > > > AND I've yet to spot the kernel support in the available CB Unix
> > > > listings...
> > >
> > > You may be looking for MAUS?
> > >
> > >
> https://www.tuhs.org/Archive/Distributions/USDL/CB_Unix/man/man2/maus.2.pdf
> > >
>
For folk playing at home, Jonathan is pointing to the10 PDF's that are
scans (but not OCRed) pr(1) listings of CB Unix 2.3  source code

https://www.tuhs.org/Archive/Distributions/USDL/CB_Unix/raw/SourceCode/

> > > maus.c cbunix4.pdf pp 64-66
> > > sysent.c cbunix6.pdf pp 50-52
> > >
> > >     1, &maus,                       /* 58 = set up MAUS segment reg */
> >
>
>
> MAUS AFAIK starts as a CB phenomenon in the late 70s, very PDP-11
> specific.

Right, to quote from page III "Acknowledgments" section on page III of
CB-UNIX *Programmer's Manual Edition 2.3 *  [
https://www.tuhs.org/Archive/Distributions/USDL/CB_Unix/raw/cbunix_intro.pdf
]

"The form of this manual follows that of the *UNIX Programmer's
Manual-Seventh Edition, Volume 1 *developed by M. D . Mcllroy. A large part
of the present manual's contents is descended from the *UNIX Programmer's
Manual-Sixth Edition* by K. Thompson and D. M. Ritchie (Bell Telephone
Laboratories, May 1975) and the *PWB/UNIX User's Manuals* by I. A. Dolotta,
R.C. Haight, and E. M. Piskorik, eds. (Bell Telephone Laboratories, May
1977). A special credit should also be given to the UNIX support effort of
department 3624; their support of UNIX helped make this manual possible.
The number of our colleagues who have contributed to UNIX and CB-UNIX
software and documentation is, by now, too large to list here, but the
usefulness and acceptance of UNIX and of CB-UNIX are true measures of their
collective success."



Now check the readme.txt file at the top of the CB_Unix TUHS archives area.
The reader learns that CB-UNIX

"was developed to address deficiencies inherent in Research Unix, notably
the lack of interprocess communication and file locking, considered
essential for a database management system. Several Bell System *operation
support system products* were based on CB/UNIX, such as the *Switching
Control Center System*. The primary innovations were power-fail restart,
line disciplines, terminal types, and IPC features similar to System V's
messages and shared memory."

Remember, this readme.txt file was written many years later. UNIX
3.0/System III was still in development, so the mention of System V is
intended to offer the reader a modern context to a historical fact.

Thus, the first editions of CB-UNIX began as a set of changes to the first
Research Editions that ran on the 11/20 without an MMU that Ken had [the
DEC CSS group's KS-11]. Because it was running on an MMU-less PDP-11/20, I
will most likely date this as the Research First or Second editions.
CB-UNIX was developed for a product delivered to the Bell Operating
Companies called SCCS (Switching Control Center System) — which should not
be confused with Marc Rochkind's "Source Code Control System."

Dale DeJager was the supervisor of the team in Columbus, and he explains
what happened in a 1984 news message to net.unix [
https://groups.google.com/g/net.unix/c/-H9x36DMOBQ/m/P_G_s9SJBrgJ ] — note
the highlighting is mine:

... I was the supervisor of the group in Columbus for a number of years
that was responsible for the development of CB-UNIX. The system was
derived from
the UNIX operating system that was used in the SCCS (Switching Control
Center System), which incidentally was the first application of UNIX
outside of research. (UNIX was running on an 11/20, at the time, without
memory management and we deployed the first version of SCCS in New Jersey
Bell in New Brunswick, NJ.)

The SCCS version of UNIX had a number of unique features for the
times: semaphores
and line disciplines (in 1974!) for example. Hal Pearson was responsible
for semaphores, and Bill Snider for line disciplines.

Messages and shared memory were first added to CB-UNIX in about 1975 or 1976.
Shared memory was called MAUS (pronounced moss, standing for Multiple
Access User Space) and was derived from an earlier version done by R. J.
Purdue. CB-UNIX became rather widely accepted within BTL as a base for
turnkey Operations Systems--many of which have been described in the BSTJ.
Note that CB-UNIX was not a derivative of UNIX/RT, but of Version 6 and
Version 7. PWB UNIX† was also a derivative of Version 7. USG UNIX was
originally a derivative of Version 6 and 7 with some CB-UNIX facilities
added. Eventually, a decision was made to consolidate to two versions of
UNIX: UNIX/TS and UNIX/RT. RT was a derivative of MERT, and TS a derivative
of PWB UNIX. RT was to be used by Operations Systems, but was never too
widely accepted. Eventually, UNIX/TS was augmented to have many of the
features present in CB-UNIX (this was done by Roger Faulkner at Indian
Hill, BTL. This, in turn, became the base for UNIX 4.0, which was never
released externally. While this augmentation was going on, UNIX/TS was
being changed into UNIX 3.0 which was release externally as SYSTEM III.

In more recent history, CB-UNIX has been eliminated entirely in favor of UNIX
5.0. (one reason is because it never ran on anything other than the 11/70)

I once had a viewgraph with all this on it which I had great fun trying to
explain.


As Dale says here, the target system for CB-UNIX was an 11/70. My
understanding is that it wouldn't boot on a 40-class processor, but it
would run on a 45-class. By the time of the CB-UNIX release (2.3), Research
Seventh, as well as UNIX/TS from USG in Summit, had been released.


> Since shm is expected in future non-PDP-11 UNIX

Let me put that in context.  The Summit-based Unix Support Group was a
fairly recent creation [76-77 timeframe, I believe].  But the team, like
Dale's in Columbus and other Bell Labs sites, wrote programs in support of
the Bell Operating Companies.  Those teams had been relying on features
that CB-UNIX supported.

By the mid-late 70's, AT&T management realized that UNIX >>system<<
development was going on at many (they would determine, too many) BTL
sites.  This was the basis for USG in Summit (BTW — my experience at the
time is that it may have cut down a number of "kernel" hacks and hackers,
it was still very widespread for a reason I'll not mention here).   Dale
describes this as: "Eventually, a decision was made to consolidate to
two versions
of UNIX: UNIX/TS and UNIX/RT."

But to do that, features that were private to some internal teams, like
those from CB-UNIX, needed to be included in the standard versions, so that
"products" being developed in the different labs and *AT&T subcompanies
could run on the "common" system.*

So the "expectation" really was a "customer requirement" from the other
labs and the operating companies.  USG's target customer within the Bell
System had production code that needed to run.  If AT&T were to have a
"standard OS" for the Bell System, shared memory and several other CB-UNIX
features would have to be supported.




> , a separate, more portable solution was developed (I don't know the
> internal name) which supports all the future platforms, but isn't workable
> in PDP-11 UNIX.

I'm not so sure about the statement that the PDP-11 is unworkable, as it
has been the workhorse for the entire Bell System.  According to some of my
DEC colleagues, AT&T was not only the #1 customer for DEC but, for a long
time, continued to buy 11/70s instead of Vaxen.  As I understand it, AT&T's
taste for the 11/70 is one of the reasons DEC began developing the
single-chip F-11, T-11, and finally the J-11; along with the J-11-based
systems, the 11/73, 11/83, and 11/93 in 1984, 1985, and 1990.   However,
full production of AT&T's own BELLMAC-32, *a.k.a.*, 32100, started in 1982,
and by 1984, we see their 3B2, 3B5, and 3B15 systems that are built on
them.

I think support for newer versions of the operating system was just not
prioritized. That is to say, the need for spending effort on it by then was
not there. as much as by that time the 11/70 was being phased out as both a
development and operating company deployed system.



>  Between this and other factors, SVR2 is the last USG UNIX to touch the
> PDP-11 as far as prevailing literature is concerned.  For instance, I have
> the SVR2 System Release Description and it still mentions PDP-11/70
> compatibility.

SVR1 supported both Vax and PDP-11.  My memory was that the commercial
customers outside the Bell Systems could order either version.   A bit
later, SVR2 still supported the PDP-11 architecture, but it was its
transitional release (what DEC would have called 'legacy products').
The VAX-11/780
replaced the PDP-11 as the official "reference platform" (*a.k.a.,* porting
base) for this version, meaning all subsequent development and
optimizations were first implemented on the VAX before being ported to
other machines. By SVR3, the 3B2 was.



> That said, machid(1) as of SVR4 manuals lists pdp11 as a reportable
> target.  I've never confirmed whether this is simply a matter of aged
> documentation or if somewhere deep inside AT&T they kept SysV going on
> PDP-11 past SVR2.

It was a big enough company, particularly when you include the operating
companies.  So even after being split up, the PDP-11 was still a large
installed base within the former Bell System.  But the ROI on continued
support was clearly not there for USG's management.



> For the record, 3B20 and 3B21 UNIX was supported long after SysV went the
> SCO route in the from of UNIX/RTR.

That's only to point out that some of the 70s UNIX platforms do have
> continuity to the 90s, 2000s, and beyond, so who knows, maybe somewhere in
> BTL/Lucent there was some stripped out SVR4 running on a PDP-11/70.

I agree, see previous comment.


> Last confirmed date of USG UNIX issued for a PDP-11 falls in 1984 though.

Agreed.



> I have a Lucent training document on C in shipment currently, I'll see
> soon if it lends any credence to late-era PDP-11 support in the USG or BTL
> streams.  Given BTL moving to VAX-11 in the early 80s though, anything
> post-that e.g. Lucent it's may yield nothing useful in the PDP-11 longevity
> question.

I understand.

Clem

† Dale is referring to PWB 2.0 in this context.  The original PWB (a.k.a.
1.0) was a delta to Research Sixth.


More information about the TUHS mailing list