I’m re-reading Brian Kernighan’s book on Early Unix (‘Unix: A History & Memoir’)
and he mentions the (on disk) documentation that came with Unix - something that made it stand out, even for some decades.
Doug McIlroy has commented on v2-v3 (1972-73?) being an extremely productive year for Ken & Dennis.
But as well, they wrote papers and man pages, probably more.
I’ve never heard anyone mention keyboard skills with the people of the CSRC - doesn’t anyone know?
There’s at least one Internet meme that highly productive coders necessarily have good keyboard skills,
which leads to also producing documentation or, at least, not avoiding it entirely, as often happens commercially.
Underlying this is something I once caught as a random comment:
The commonality of skills between Writing & Coding.
Does anyone has any good refs for this crossover?
Is it a real effect or a biased view.
That great programmers are also “good writers”:
takes time & focus, clarity of vision, deliberate intent and many revisions, chopping away the cruft that’s isn’t “the thing” and “polishing”, not rushing it out the door.
Ken is famous for his brevity and succinct statements.
Not sure if that’s a personal preference, a mastered skill or “economy in everything”.
A Research UNIX Reader: Annotated Excerpts from the Programmer's Manual, 1971-1986
CC (v2 page 52)
V2 saw a burst of languages:
a new TMG,
a B that worked in both core-resident and software-paged versions,
the completion of Fortran IV (Thompson and Ritchie), and
Ritchie's first C, conceived as B with data types.
In that furiously productive year Thompson and Ritchie together
wrote and debugged about
100,000 lines of production code.
Programming's Dirtiest Little Secret
Wednesday, September 10, 2008
It's just simple arithmetic. If you spend more time hammering out code, then in order to keep up, you need to spend less time doing something else.
But when it comes to programming, there are only so many things you can sacrifice!
You can cut down on your documentation.
You can cut down on commenting your code.
You can cut down on email conversations and
participation in online discussions, preferring group discussions and hallway conversations.
And... well, that's about it.
So guess what non-touch-typists sacrifice?
All of it, man.
They sacrifice all of it.
Touch typists can spot an illtyperate programmer from a mile away.
They don't even have to be in the same room.
For starters, non-typists are almost invisible.
They don't leave a footprint in our online community.
Steve Jenkin, IT Systems and Design
0412 786 915 (+61 412 786 915)
PO Box 38, Kippax ACT 2615, AUSTRALIA
The discussion about the 3B2 triggered another question in my head: what were the earliest multi-processor versions of Unix and how did they relate?
My current understanding is that the earliest one is a dual-CPU VAX system with a modified 4BSD done at Purdue. This would have been late 1981, early 1982. I think one CPU was acting as master and had exclusive kernel access, the other CPU would only run user mode code.
Then I understand that Keith Kelleman spent a lot of effort to make Unix run on the 3B2 in a SMP setup, essentially going through the source and finding all critical sections and surrounding those with spinlocks. This would be around 1983, and became part of SVr3. I suppose that the “spl()” calls only protected critical sections that were shared between the main thread and interrupt sequences, so that a manual review was necessary to consider each kernel data structure for parallel access issues in the case of 2 CPU’s.
Any other notable work in this area prior to 1985?
How was the SMP implementation in SVr3 judged back in its day?
This reminds me of how I agonized over Mike Lesk's refusal to remove
remote execution from uucp.
Uux, the remote-execution mechanism I remember from uucp, had
rather better utility than the famous Sendmail back-door: it
was how uucp carried mail, by sending a file to be handed to
mailer on the remote system. It was clearly dangerous if
the remote site accepted any command, but as shipped in V7
only a short list of remote commands was allowed: mail rmail
lpr opr fsend fget. (As uucp was used to carry other things
like netnews, the list was later extended by individual sites,
and eventually moved to a file so reconfiguration needn't
Not the safest of mechanisms, but at least in V7 it had a use
other than Mike fixing your system for you.
Is there some additional history here? e.g. was the list of
permitted commands added after arguments about safety, or
some magic command that let Mike in removed? Or was there a
different remote-execution back door I don't remember and don't
see in a quick look at uuxqt.c?
"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.)
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
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,
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
The blog post:
The note blog post:
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
- NROFF/TROFF User's Manual
- TROFF Tutorial
- 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.
Hello, I received in the mail today a USOC listing from the NY Bell division listing various standardized service codes in 1982. I wasn't particularly expecting to see anything relevant to UNIX in there, but flipping through the pages, it did have me curious on one point. Prior to divestiture, one of the conditions placed on Bell was that they could not support UNIX. Sure, tapes could find their way to individuals for service costs or under particular agreements, but this provision of "service" seemed to be right out and not allowed under their then-terms. This is presumably why there is nothing resembling UNIX in this manual, nor can I find anything implying 3B20(D/S) services.
So after 1983 when the cat is out of the bag and AT&T begins aggressive marketing, what sorts of "services" were they then providing to UNIX customers that they couldn't before? One item I've got that further complicates my understanding, a class listing from Western Electric Corporate Education from July, 1983. Did offering classes like this not constitute "support", or was there a little window between 1982 and 1984 where AT&T could start their true marketing and support in earnest while still not being absolutely complete with the divestiture of the Western Electric business? In any case, if WECo was out the door as part of the legal settlement, it does strike me as a bit odd they'd put any work into spinning up the WECo Corporate Education machine on this for the space of just part of a year in 1983, only to then rebrand it all for ATTIS when Jan 1st passes. An additional time-frame indicator is while this foldout does list WECo, it is devoid of Bell system logos, consistent with the date as that was one of the conditions that started to take effect that summer.
Anywho, I'm sure some of the general information what services they provided in addition to licensing and distributing for UNIX license holders lives in documentation out there, so I'll be reading up too, but figured it'd be good to ask if nothing else to figure out what was going on in the early 80s, because that WECo training document certainly has me a bit curious on the timeframe vs what they could and couldn't do throughout the Bell System breakup years.
- Matt G.
Note, I intend to do a proper scan on glass with this after I get through some IBM stuff I'm working on, so don't worry, I don't intend these photos to be historical record.
This is perhaps the first significant document I wrote at Amdahl. Although
undated, I believe this was written in August 1979, after I had attended a
2 week class at IBM Chicago about VM//370(CP) internals and performance.
The paper makes reference to V7 UNIX being "on order", so this is when the
V6 UNIX system was in use. IIRC, V7 UNIX was released in Nov. of 1979.
Huge thanks to my friend Karl D. for hanging on to this for 44 years.