Does anyone know if there are any surviving examples of SVR2 for the PDP-11? Various SVR2 manuals still make mention of the assembler, linker, etc. and the pdp11 variable is present in machid(1)*. And on the note of the later years of the PDP-11, was there any hope for SVR3 on the PDP? I presume the introduction of demand paging was the end of things but I would be curious for anyone's recollections on the final years of System V on the PDP-11.
- Matt G.
P.S. *interesting little 3B5 side note, found as I was checking references that machid(1) in the "System V" branded manual from the initial System V commercial release mentions the pdp11, vax, and u3b machines, the latter being the 3B20S. However, the "Release 5.0" branded manuals also make mention of the u3b5 machine, the 3B5. The System V manuals are from January 1983 and the Release 5.0 manuals are June 1982. There isn't an earlier reference to cite as machid(1) was introduced in Release 5.0, at least from the literature I have available. The 4.x series ran on at least the PDP-11, VAX, and 3B20S computers at least, matching those listed in the System V manual. From what I have available initial 3B5 literature was distributed in the form of small binders a little different from the grey-on-black 1984 DEC Processor SVR2 binders, possibly right on the cusp of the split of p_man from u_man as this 3B5 User's Manual that I have contains sections 1-6 rather than just 1 and 6. They're dark grey with a large orange square in the middle (I believe I've sent a photograph of the manual before).
As a longtime user and lover of ed/ex/vi, I don't know much about emacs,
but lately I've been using it more (as it seems like any self-respecting
lisper, has to at least have a passing acquaintance with it). I recently
went off and got MACLISP running in ITS. As part of that exploration, I
used EMACS, but not just any old emacs, emacs in it's first incarnation
as a set of TECO macros. To me, it just seemed like EMACS. I won't bore
you with the details - imagine lots of control and escape sequences,
many of which are the same today as then. This was late 70's stuff.
My question for the group is - when did emacs arrive in unix and was it
a full fledged text editor when it came or was it sitting on top of some
other subssystem in unix? Was TECO ever on unix?
Will
> From: Clem Cole
> A new hire in 1976, Jeff Mitchell supposedly had a bet with Bill
> Strecker that he could implement an 11 on a single"hex high" CPU board
> if he got rid of the lights and switches. He ran out of room to
> implement seperate I/D, so it became an 11/40 class [and it has an
> 8008-1 that runs the front panel].
I don't know about the Strecker story, but the first PDP-11 CPU on a single
card (a hex card) was the KD11-D:
https://gunkies.org/wiki/KD11-D_CPU
of the -11/04. It didn't have _any_ memory management, though (or a front
panel; to get that, you had to use the KY"11-LB:
https://gunkies.org/wiki/KY11-LB_Programmer%27s_Console
which added another quad card). The first -11 CPU i) on a single card and
ii) with memory management was the FDF11-A:
https://gunkies.org/wiki/KDF11-A_CPU
The first -11 CPU i) on a single card and ii) with split I+D memory
management was the KDJ11-A.
> It was not until 11/44 that DEC was able to make a hex height
> implementation of the 11 that managed to cram a full 11/70 into that
> system.
I'm not sure what your point is here? The KD11-Z CPU of the -11/44:
https://gunkies.org/wiki/KD11-Z_CPU
was a _minimum_ of five hex boards; a little smaller than a KB11-B (15 hex
cards). Floating point was an extra card; CIS was 2 more.
> if you look at the link line of sys/run the 45 does not have -i
Split I+D for the kernel was not supported by the linker in V6; a combination
of 'sysfix' (a special post-processor, which took as input a relocatable
linked image) and code in m45.s was needed.
https://gunkies.org/wiki/Upgrading_UNIX_Sixth_Editionhttps://gunkies.org/wiki/UNIX_V6_memory_layout
The code in m45.s to handle split I+D in the kernel:
https://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/sys/conf/m45.s
starts at 'start:' and is adequately commented to tell you what it's doing
when it plays around with kernel memory.
> From: Will Senn
> with I/D, you can use 64k for I and 64k for D. Was that it, or were
> there other tricks to get even more allocated
I have this vague memory that someone (Berkeley, I think?) added support for
automatic code overlays in user processes. The programmer had to decide which
modules went in which overlays, but after that it was all automagic. There
was a 4xx code allocated to them.
I think the support for that (in e.g. the linker) was somehow involved with
the use of overlays in the kernel, but I don't know the details (nothing
after V6 is at all interesting to me).
> didn't the 11 max out at 256k)?
You need to distinguish between i) the amount of memory the machine could
handle, and ii) the amount of memory that running code could 'see' at any
instant. The latter was always either 64KB, or 64KB+64KB (with split I+D
turned on, on CPUs which supported it).
The former, it's complicated. Mostly, on UNIBUS only machines, it was 256KB.
(Although there was the Able ENABLE:
https://gunkies.org/wiki/Able_ENABLE
which added an Extended UNIBUS, and could take them up to 4MB.) The -11/70,
as mentioned, had a Main Memory Bus, and could handle up to 4MB. The -11/44
had an Extended UNIBUS, and could also handle up to 4MB (but only after the
MS11-P became available; there were only 4 main memory slots in the
backplane, and MS11-M cards were only 256KB.) On QBUS achines, after the
KB11-A (Revision A), which only suppported 256 KB, all later revisions and
CPUs could also handle up to 4MB.
Noel
not quite split i and d but i do have a memory of some code which could run in three parts as overlays.
this could have been through exec’ing the next overlay with an appropriate argv and a pipe or file of data, or, perhaps there was some kernel support for overlays in early unix.
anyone seen evidence of this?
sadly i cannot remember where i saw it, i want to say it was a versatex printer driver but i am pretty sure that is rubbish.
-Steve
> From: Will Senn
> Does unix (v7) know about the PDP-11 45's split I/D space through
> configuration or is it convention and programmer's responsibility to
> know and manage what's actually available?
There are two different cases: i) support of split I+D in the kernel, and
ii) support of split I+D in user processes. Both arrived with V6; the
V5 source:
https://minnie.tuhs.org/cgi-bin/utree.pl?file=V5/usr/sys/conf/mch.shttps://minnie.tuhs.org/cgi-bin/utree.pl?file=V5/usr/sys/ken/main.c
(former for kernel; later for users) shows no sign of it.
> From: Kenneth Goodwin <kennethgoodwin56(a)gmail.com>
> 1. I don't think the 11/45 had split I & d.
> But I could be wrong.
> That did not appear until the 11/70
You are wrong.
The chief differences between the KB11-A&-D of the -11/45 and the -B&-C of
the -11/70 were i) the latter had a cache, and ii) the latter used the 32-bit
wide Main Memory Bus, which also allowed up to 4 Mbytes of main memory.
Detail here:
https://gunkies.org/wiki/PDP-11/70
along with a couple of lesser differences.
> From: "Ronald Natalie"
> with only 8 segment registers combined for code, data, and stack
I think you meant for code, data, and user block.
> The 55 (just a tweaked 45)
The /50 and /55 had the identical KB11-A&-D of the /45; the difference was
that they came pre-configured with Fastbus memory.
> In addition the 23/24/J-11 and those derived processors did.
No; the F-11 processors did not support I&D, the J-11 did.
Noel
> And I think even V7 make supported what you described, as well as implicit rules for compiling .c into a .o or into a binary.
>
> Warner Losh
You're right, I just tried it out. Been avoiding that pattern for years because I swear some make implementation I used at one point was very unhappy with that, but if V7 does it, then whatever implementation that was is probably not what I want to be using anyway.
Also shows how little I've used specifics of BSD, I've never made a Makefile using bsd.prog.mk, although I have this desire for a write-once-build-everywhere Makefile that the preponderance of build systems that generate them imply is an exercise in futility...
On that note, one quirk I've found with the implicit .c.o rule on older UNIX, just tested on V7 and System III, is that they render:
cc -c $<
rather than
cc -c -o $@ $<
If you have an object list with objects in several different directories, it spits them all out in the CWD, causing problems if you have similarly named files in multiple directories, and then outright failing on the final compilation if it's something like $(CC) -o $(BIN) $(OBJS) because $(OBJS) is a string of object pathnames with the full nested path, not just the resulting *.o files.
Granted, I could be anti-patterning here for all I know, I haven't worked closely with a whole lot of Make-based projects that aren't my own. Maybe I just haven't read these darn papers I'm always hunting down enough.
- Matt G.
"Lessons learned" overlooked the Morris worm, which exploited not only
the unpardonable gets interface, but also the unpardonable back door
that Allman built into sendmail.
This reminds me of how I agonized over Mike Lesk's refusal to remove
remote execution from uucp. (Like Eric, Mike created the feature to
help fix the myriad trouble reports these communication facilities
stimulated.) It seemed irresponsible to distribute v7 with the feature
present, yet the rest of uucp provided an almost indispensable
service. The fig leaf for allowing uucp in the distribution was that
remote execution was described in the manual. If you didn't like it
you could delete or fix uucp. (Sendmail's Trojan horse was
undocumented, though visible in the code.)
Doug
Hi All,
I got some questions recently about getting v7 working, so I fired up
OBS to create a video walkthrough of the install process and first steps
(it's basically following my v7 note, but hey some folks dig video). The
video is totally amateur hour, but it was fun. I never get tired of
logging in as dmr, writing hello.c, running cc, running hello and watch
the magic of
hello, world
appear on "screen".
As a reminder - the note (and thus, the video) walks the user through
installing OpenSIMH (including pdp11), building a tape image, installing
to disk from tape, booting off the disk, building and using a DZ-11 as a
telnet listener on 16 lines, adding a user, running learn, and piddly
stuff like setting baud, delays, and such. Not a lot of hand-holding,
but some.
When I get around to it, I'll probably update the note to add additional
test environments (I'm pretty sure it works anywhere OpenSIMH does, but
some folks like to see there system or one kinda like it in the list of
tested systems). I'm running LMDE5 and Debian 12 Bookworm these days, so
I know they work there in addition to pretty much any Linux Mint, MX
Linux, FreeBSD, Mac OS, etc.
I'm still in awe of Hayle and Ritchie's Setting Up Unix - Seventh
Edition as the basis of my note - 44 y.o. and counting... for holding up
so well.
The blog:
https://decuser.github.io
The blog post:
https://decuser.github.io/unix/research-unix/v7/videos/2023/07/14/installin…
The note blog post:
https://decuser.github.io/unix/research-unix/v7/2022/10/28/installing-and-u…
Later,
Will
Good day all, I'm emailing to offer a duplicate UNIX document I picked up free of charge to whoever speaks for it first, I'll even cover the shipping. What I've got is a second copy of the Document Processing Guide shipped with the initial System V version, code 341-920, from 1983.
Now for the caveat: I ordered this second copy as it was in much rougher shape than the one I currently have. I intend to chop the spine off so I can get quality scans of the pages rather than having to deal with creasing the hell out of the binding on my other copy (unlike the manuals and some of the other guides, this one is a typical paperback glue binding.) Once I'm done with the scans I'm just going to put all of the pages in a binder (as they're already Bell-style 7-hole punched.) That to say, I'm not ready to ship it right now, just got it today, still need to do the scans.
As for contents, this contains the System V-era versions of the following papers (titles paraphrased):
- Advanced Editing on UNIX
- Sed
- NROFF/TROFF User's Manual
- TROFF Tutorial
- Tbl
- Eqn
- MM Macros Manual
- View Graphs and Slide Macros
Anywho, figured I'd see if anyone was interested in this after I'm done with it. Otherwise I'll just see if a library around here is interested.
- Matt G.