Hello all,
I asked this question in a different thread but it may have been bogged
down in other discussion so I figured it was worth asking again.
What was the hardware configuration of the 11/45 that Research used to
implement early UNIX? This would be circa late 1972/earlty 1973. I have
found numerous references to it being an early production 11/45, and I
assume that it had an RK05, but I cannot find any details about things like
memory size and other peripherals.
Since the only extant sources are for V1, which was as I understand only
run on a singular 11/20, and V5 by which time UNIX had spread it doesn't
seem possible to infer a hardware configuration from existing code.
-Henry
> From: Henry Bent
> What was the hardware configuration of the 11/45 that Research used to
> implement early UNIX? .. I have found numerous references to it being
> an early production 11/45, and I assume that it had an RK05, but I
> cannot find any details about things like memory size and other
> peripherals.
A good source is the Ken+Dennis picture:
https://www.bell-labs.com/usr/dmr/www/picture.html
and the caption which Dennis wrote for it.
The image is not quite definitive, because there are two machines in that
bank of racks: a PDP-11/20, and a PDP-11/45 (mostly hidden behind the
right-hand Teletype), and it's not possible to say which of the two machines
the various peripherals are attached to.
But it seems to have had two RK03's (and an RK11 somewhere to drive them) and
an RF11 (no idea how many RS11 drives it had at that point),; a TU56 (and a
TC11 somewhere to drive that), and a PC05 (with PC11 controller boards).
(There are pages for all these things here:
https://gunkies.org/wiki/Category:UNIBUS_Peripherals
which include links to the DEC documentation on them.)
I'm doing more searching, through documents I recall having additional
crumbs; let me go ahead and send this, and there will be a lengthy addendum
shortly.
Noel
All, way back when, Dennis sent me some DECtape images to look after. I've
put some of them in the Unix Archive (the s1 and s2 tapes) as they contained
Unix source code or binaries. The others I kept aside as they didn't contain
Unix code, or they were potentially sensitive.
Anyway, Angelo Papenhoff asked for any old tapes from the Labs that might
contain fragments of B source code or B binaries. I passed the extra tapes
on to him, and he has found some very interesting nuggets from the time
period when B -> NB -> C.
So, to help provide the context around Angelo's work, I've decided to put
all the tapes that Dennis gave me here:
https://www.tuhs.org/Archive/Applications/Dennis_Tapes/
Cheers, Warren
> Reading through [1], there are documents offered by AT&T for the "Level II COBOL" system, which some further research indicates is a product from Convergent (same folks as the UNIX PC.) There's also the LPI-COBOL which appears to be a Language Processor Inc. product.
Ryan-McFarland comes to mind: in my recollection they were the leading Cobol on small machines in the early 80’s. Ryan-McFarland’s predecessor company Digitek was contracted to do the PL/I compiler for Multics, but failed. It seems they later did Bell Labs PL/I (says https://en.wikipedia.org/wiki/Digitek) I think they did a Unix version of their Cobol in the mid/late 80’s as well.
A few years ago I tried to find out more about RM-Cobol as it existed in the late 70’s and early 80’s, but with little success. As a product it survived till the present day under the ownership of Micro-Focus and most web mentions are for more recent versions.
It would seem to me that compilers on machines with small memories and word sizes in the 60’s, 70’s and even 80’s tended to compile to a virtual machine / intermediate code -- sometimes with the option to compile to native from there. Think BCPL and o-code, Pascal and p-code, the Amsterdam Compiler Kit and m-code, the Microsoft “revenue bomb” p-code C compiler, etc. According to the above Wikipedia article RM-Cobol used the same approach. I did once see the source for another 80’s Cobol compiler and it compiled to a virtual machine with 60-bit words.
By the way, I loved the recent posts on B and NB. THUS at its best!
Reading through [1], there are documents offered by AT&T for the "Level II COBOL" system, which some further research indicates is a product from Convergent (same folks as the UNIX PC.) There's also the LPI-COBOL which appears to be a Language Processor Inc. product.
Are these the earliest AT&T endorsed COBOL solutions for UNIX or were there other efforts either promoted by Bell or even perhaps developed locally that were in any use before this version? Or otherwise is there any other family of ubiquitous UNIX COBOL tools that was in use in the 70s and early 80s, before the timeframe of this document?
Additionally is anyone aware of any surviving code or binaries of either of these or other, earlier efforts at COBOL on UNIX? I have no goal for this information in mind yet, but just gathering details at this point. Thanks all!
- Matt G.
[1] - http://bitsavers.org/pdf/att/000-111_ATT_Documentation_Guide_Nov87.pdf
So there's been quite a bit of talk about B recently (mostly from my
side) and right now I feel that I've reach an interesting enough
milestone to warrant a separate thread for this here.
First of all, I want to stress that this is still WIP,
but everything can be found here now:
https://github.com/aap/b/tree/master/unix1_bdir
In this repo you will find the following:
- bc and ba that can build themselves
(I've included .s files so everything can be bootstrapped
easily).
- libb and bilib in source form from object/library and binary files of
the s2 tape
- brt1 and brt2 restored from binary files of the s2 tape
- olibb, obilib and obrt1, older versions of the above
- a version of ba that does not generate threaded code but an
interpreted code more like the pdp-7 code.
ken told me such a thing existed at one point and indeed it is
the only way to fit the compiler into 8kb/4kw
- an implementation of this interpreted code. With this bc and ba
fit into 8kb
Note I have only tested this under apout so far. The version I used [1]
needed two tweaks, but see my README.
With this I was able to build the recently reversed B programs [2] and
produce exact matches to the originals (modulo assembler differences).
In that process I found a few mistakes I made, now the programs are
exact.
I want to thank everyone who was of help in this endeavour in one way or
another:
Ken Thompson, Phil Budne, Robert Swierczek, Steve Johnson, Warren Toomey
What's left to do now is to actually run this under UNIX v1 proper,
preferably even on a real machine. I've been too lazy for that so far.
Also there are inaccuracies and unknowns in the compiler and assembler.
Right now the intermediate code is a binary code that's easy to generate
and to parse, but if I understood ken correctly the intermediate code
was more like something the PDP-7 assembler could deal with.
I'm also rather unsure how to handle the conditional ?: operator. The
printf.o file shows that it produces labels that are in line with all
the other labels. Now the C compiler uses labels starting at L10000
for the ones generated in the second pass. So it *feels* like the
conditional should be generated by bc directly and not by ba but this
leads to other problems, which I won't go into detail now.
Finally the code should probably be a bit closer to the C compiler than
it currently is.
Cheers,
Angelo
[1] https://github.com/philbudne/pdp11-B/tree/pb/tools/apout
[2] http://squoze.net/B/programs/
> From: Diomidis Spinellis <dds(a)aueb.gr>
> I seem to recall reading that the power of Unix stems from the wise
> choice of a few design principles rather than the endless accumulation
> of special cases. However, I cannot find where this is stated.
I think you're thinking of something in the CACM paper:
https://www.bell-labs.com/usr/dmr/www/cacm.html
"The success of Unix lies not so much in new inventions but rather in the
full exploitation of a carefully selected set of fertile ideas"
Noel
I seem to recall reading that the power of Unix stems from the wise
choice of a few design principles rather than the endless accumulation
of special cases. However, I cannot find where this is stated. I tried
a Google web and a Google Scholar search using the terms "unix endless
accumulation special cases", and I also asked ChatGPT for a publication
associated with this phrase. I also searched for "special" in
D.M.Ritchie's "The Evolution of the Unix Time-sharing System" and "The
UNIX Time-sharing System A Retrospective". (Amazingly, both have
several parts that still highly relevant.)
Can anyone help? Am I misremembering something?
Howdy folks, I just wanted to pass on word that there is currently a stack of 1983 System V documents on eBay, here's a link to the User's Manual: https://www.ebay.com/itm/225659365754
The same seller has these documents available in their shop (as well as a bunch of other old computing documents and magazines):
- User's Manual
- Administrator's Manual
- Error Message Manual
- Operator's Guide
- Graphics Guide
- Transition Aids
- Release Description
So not the whole lot, but a nice spread nonetheless. I've already got all of these and they're already all scanned in some fashion or another, or I'd have scooped em up already.
Anywho, figured that might pique folks' curiosity. The pricing is very agreeable might I add, sometimes I see single volumes from this set going for over $100.
- Matt G.