For no good reason, I've been wondering about the early history of C
compilers that were not derived from Ritchie, Johnson, and Snyder at Bell.
Especially for x86. Anyone have tales?
Were any of those compilers ever used to port UNIX?
Perspective from a friend...
Warner
---------- Forwarded message ---------
From: Poul-Henning Kamp <phk(a)phk.freebsd.dk>
Date: Mon, Mar 11, 2024 at 2:24 AM
Subject: non-Bell C compiler
To: <imp(a)freebsd.org>
I noticed the "non-bell C" thread on TUHS and can add a data point
from datamuseum.dk:
The Danish Company "Christian Rovsing A/S" evidently had a C-compiler
for their CR80 mini computer, and my guess is that they created it
in order to qualify for DoD contracts in the POSIX regime.
Example C source:
https://datamuseum.dk/aa//cr80/80/802c73092.html
Listing file from the compiler:
https://datamuseum.dk/aa//cr80/ef/ef65339dc.html
Listing file from the assembler:
http://datamuseum.dk/aa/cr80/32/32ef5456f.html
Listing from the linker:
https://datamuseum.dk/aa//cr80/17/170304129.html
So far we have not spotted the actual compiler anywhere
in the media we have read.
Mention of C being used for project delivery:
http://datamuseum.dk/aa/cr80/1c/1c0b47f0e.html
And btw: That one is from a CDC disc-pack which a father+son
team has read by building a SMD-USB converter.
That project may be interesting in the TUHS domain as well:
https://github.com/Datamuseum-DK/pico-smd-controller
--
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
phk(a)FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
I've been using some variant of Linux (currently Debian 12) as my
primary OS for daily activities (email, web, programming, photo
editing, etc.) for the past twenty years or so. Prior to that it was
FreeBSD for nearly ten years after short stints with Minix and Linux
when they first came out. At the time (early/mid 90's), I was working
for Bell Labs and had a ready supply of SCSI drives salvaged from
retired equipment. I bought a Seagate ST-01A ISA SCSI controller for
whatever 386/486 I owned at the time and installed Slackware floppy by
floppy.
When I upgraded to a Pentium PC for home, Micron P90 I think, I
installed a PCI SCSI controller (Tekram DC-390 equipped with an
NCR53c8xx chip) to make use of my stash of drives. Under Linux it was
never entirely stable. I asked on Usenet and someone suggested trying
the other SCSI driver. This was the ncr driver that had been ported
from FreeBSD. My stability problems went away and I decided to take a
closer look at FreeBSD. It reminded me of SunOS from the good old pre-
System V era along with the version of Unix I had used in grad school
in the late 70's/early 80's so I switched.
I eventually reverted back to Linux because it was clear that the user
community was getting much larger, I was using it professionally at
work and there was just a larger range of applications available.
Lately, I find myself getting tired of the bloat and how big and messy
and complicated it has all gotten. Thinking of looking for something
simpler and was just wondering what do other old timers use for their
primary home computing needs?
Jeff
Because I sometimes use ArcMap, I run Windows. Cygwin plus the sam editor
make me feel at home. The main signs of Microsoft are the desktop, Bing,
File Explorer and Task Manager.
Hello everyone, I reach out in my time of need regarding a potential source of DMERT materials. I've recently come into possession of a hard disk unit from a 5ESS switch, presumably the 5ESS-2000 variant, part UN 375G:
https://i.imgur.com/yQzY5Hs.jpeg
The actual disk itself appears to be a Ultra320 SCSI disk, which I unfortunately do not have the tools to do anything with myself. After looking into various solutions, I'm not getting the warm fuzzies about finding the necessary hardware on my first shot, these sorts of hardware specifics are not my strong suit. The story I got is it is from a working system, so could possibly have artifacts, but at the same time, I've already sunk a little over $1,000 into getting this, I'm hesitant to drop more on hardware I'm not 100% confident is correct for the job.
Does anyone have any recommendations, whether a service, hardware, anything, that I could use to try and get at what is on this disk? Even if it's just sending it off to someone along with enough storage for them to make me a dd image of the thing, I just feel so close yet so far on finally figuring out if I've managed to land a copy of DMERT.
Thanks in advance for any advice, I'm really hoping that the end of this story is I find DMERT artifacts to get archived and preserved, that would be such a satisfying conclusion to all this 3B20/5ESS study as of late. I wish I had the resources to see the rest through myself but this is getting into an area I have quite a bit of trepidation regarding. What I don't want to do is inadvertently damage something by getting it wrong.
- Matt G.
[image: unnamed.png]
CCA EMACS? That's a name I have not heard in a long time ...
I forgot if I'm not allowed to load images, sorry if I just made a mistake.
Normally I wouldn't cross the beams like this but a comment thread John
Nagle posted on this HN story is well written and for me was a great read.
https://news.ycombinator.com/item?id=39630457
On Wednesday, March 6th, 2024 at 3:55 PM, Ken Thompson <kenbob(a)gmail.com> wrote:
> On Wed, Mar 6, 2024 at 1:45 PM segaloco via TUHS <tuhs(a)tuhs.org> wrote:
>
> > On Wednesday, March 6th, 2024 at 11:53 AM, Douglas McIlroy <douglas.mcilroy(a)dartmouth.edu> wrote:
> >
> > > After Multics, I ran interference to keep our once-burned higher management from frowning too much on further operating-system research.
> > >
> > > Doug
> >
> > This alone is an all-too-valuable skill that contributes to the cultural success of countless projects. Great ideas can too often die on the vine when the upper echelons have quite different opinions of where time and effort should be placed, and I am glad that in my own career I likewise work with understanding immediate supervisors and business analysts that go to bat for our needs and concerns. The importance of a supportive workplace culture in which work is genuinely valued and defended cannot be understated.
> >
> > - Matt G.
>
> unix was written in c, c was written in b, b was written in tmg,and doug wrote tmg. it is all his fault.
>
>
Ken, your modesty is showing :)
I feel the same way about big things I'm working on in my day job. No matter how much folks try to laud me as our architect, nothing I did would exist without what my supervisor years and years ago handed me to start with before he moved on to greener pastures. Invention will always be a group effort, I'm just so glad this particular group effort (re: UNIX) has and continues to have the impact that it does.
A former manager (and respected colleague) would often say "I'm rubber, you're glue, what you bounce off me sticks to you." and it took me a little bit to appreciate what I thought he meant, but even longer to realize that saying encompassed the good as well.
- Matt G.
P.S. Hey Dave, I Bcc'd you, discussions with folks here often remind me of your good advice and management. Hope you're well, would love to hear from you if you see this!
Just to bring it full circle, after a bit of discussion it looks like what Henry is working with is the initial System V release for PDP-11/70, not some fabled PDP-11 SVR2, so the documentation I linked as well as some material on squoze.net concerning System V in SimH all apply directly. Subject adjusted accordingly.
- Matt G.
On Wednesday, March 6th, 2024 at 1:55 PM, Henry Bent <henry.r.bent(a)gmail.com> wrote:
> On Wed, 6 Mar 2024 at 16:51, segaloco <segaloco(a)protonmail.com> wrote:
>
>> On Wednesday, March 6th, 2024 at 1:16 PM, Henry Bent <henry.r.bent(a)gmail.com> wrote:
>>
>>> Hello all,
>>>
>>> I have a distribution of SVR2 on the PDP-11 that I have managed to get booting into the initial root dump, but it is not clear to me how to proceed from there to format a /usr filesystem and setup for multi-user.
>>>
>>> ...
>>>
>>> I haven't managed to find any installation manuals or the like on Bitsavers, and I can't even manage to find a listing in the source of the expected disk partitions/sizes. I feel very much like I am stumbling in the dark here and would appreciate any pointers to how to proceed. Thanks!
>>>
>>> -Henry
>>
>> First off I didn't know SVR2 made it to the PDP-11, I thought they cut it off after the initial System V release, is what you have AT&T or some derivative version?
>>
>> Second, this is the setup instructions for DEC processors for the initial release of System V which included the PDP-11/70: https://archive.org/details/unix-system-administrators-guide-5-0/04%20Setti…
>>
>> Additionally, here is the Operator's Guide which details bootstrapping the system among other things: https://archive.org/details/unix-system-operators-guide-release-5-0/mode/2up
>>
>> While not SVR2, hopefully the differences are minimal enough that you can use those. Good luck!
>>
>> Also regarding finding more documentation, sadly AT&T stripped out the /usr/doc materials with System V, so these critical pieces of documentation actually can't be found in a typical system distribution, rather, you had to get the paper copies. I'm not aware of any discovery of TROFF sources for any of this stuff past System III, I do have it on my long-term list to eventually synthesize copies of said documents from available scans so they can be more easily diff'd, but my current focus is much, much earlier.
>
> Thank you, this is a wonderful starting point. I often forget that sometimes archive.org will have documentation that is not duplicated in other sources, so this is a welcome reminder. I'll read through all of this and report back.
>
> -Henry
Hello all,
I have a distribution of SVR2 on the PDP-11 that I have managed to get
booting into the initial root dump, but it is not clear to me how to
proceed from there to format a /usr filesystem and setup for multi-user.
The root dump boots on a simulated 11/70 with an RP06:
--
sim> boot rp
#0=unixgdtm
UNIX/sysV: unixgdtm
real mem = 3145728 bytes
avail mem = 3068864 bytes
INIT: SINGLE USER MODE
--
I'm mostly a BSD person but I'm familiar enough with some later SysV
systems. That being said, the initialization procedure here is completely
foreign to me. I have cpio files for the entire system and I know in
theory how to extract them, but I'm stuck at the basics of creating /usr,
setting up /etc and the like. I have a fully extracted filesystem from the
cpio files that I can browse but I can't find enough information in the
manpages. I haven't managed to find any installation manuals or the like
on Bitsavers, and I can't even manage to find a listing in the source of
the expected disk partitions/sizes. I feel very much like I am stumbling
in the dark here and would appreciate any pointers to how to proceed.
Thanks!
-Henry
> When Rudd, Doug, Ken, Dennis, *et al* start to develop UNIX
Although I jumped into Unix as soon as it was born, I was not one of those
who "start[ed] to develop it".
Doug
> From: Douglas McIlroy <douglas.mcilroy(a)dartmouth.edu>
> Although I jumped into Unix as soon as it was born, I was not one of
> those who "start[ed] to develop it".
http://doc.cat-v.org/unix/pipes/
Dennis wrote that "UNIX is a very conservative system. Only a handful of its
ideas are genuinely new." (And quite right he was, too!) Among the ones that
are new, pipes, although less important now than they used to be, were a major
part of the constellation of things that drove its adoption, early on. And I
can't see how pushing pipes was not "developing UNIX"! I'm afraid you'll just
have to live with it! :-)
Noel
Hi All,
I was wondering, what were the best early sources of information for
regexes and why did folks need to know them to use unix? In my recent
explorations, I have needed to have a better understanding of them, so
I'm digging in... awk's my most recent thing and it's deeply associated
with them, so here we are. I went to the bookshelf to find something
appropriate and as usual, I've traced to primary sources to some extent.
I started with Mastering Regular Expressions by Friedl, and I won't
knock it (it's one of the bestsellers in our field), but it's much to
long for my personal taste and it's not quite as systematic as I would
like (the author himself notes that his interests are less technical
than authors preceding him on the subject). So, back to the shelves...
Bourne's, The Unix Environment, and Kernighan & Pike's, The Unix
Programming Evironment both talk about them in the context of grep, ed,
sed, and awk. Going further back, the Unix Programmer's Manual v7 - ed,
grep, sed, awk...
After digging around it seems like folks needed regexes for ed, grep,
sed and awk... and any other utility that leveraged the wonderful nature
of these handy expressions. Fine. Where did folks go learn them? Was
there a particularly good (succinct and accurate) source of information
that folks kept handy? I'm imagining (based on what I've seen) that
someone might cut out the ed discussion or the grep pages of the manual
and tape them to their monitors, but maybe I'm stooopid and they didn't
need no stinkin' memory device for regexes - surely they're intuitive
enough that even a simpleton could pick them up after seeing a few
examples... but if that were really the case, Friedl's book would have
been a flop and it wasn't :). So seriously, if you remember that far
back - what was the definitive source of your regex knowledge and what
were the first motivators for learning them?
Thanks,
Will
I hope everyone's having a lovely tail end of whichever season is gracing your
hemisphere. Had some surprise snow this morning up in the NW corner of the US,
hoping it bodes well for a mild summer.
I'm curious, is anyone aware of any attempts to revise John Lions's UNIX
Commentary for versions beyond the Sixth Edition? Having finished my
disassembly of the classic video game Dragon Quest this past year, I'm now doing
some planning for a similar work and have considered practicing the art a little
by doing some diffing of V6 and V7 and feeling out the process by putting down
some revisions, that way I've got some of the flow and kinks worked out before I
start on my own "Commentary on Dragon Quest" manuscript. I'd hate to double up
on something someone else has already done though, so if V7 for instance has
gotten this treatment, then perhaps focusing on PWB or the CB-UNIX kernel would
minimize the potential rehashing.
Also if anyone has any thoughts, suggestions, etc. from their own experiences
working up very detailed source-level documentation of a large software product,
I'd certainly be interested, as I know this is going to turn into quite the
sprawling undertaking once I really get going, especially if I try and work in
the differences between the Japanese and U.S. releases (of which there are many.)
- Matt G.
> From: Bakul Shah
> Use of "flag" for this purpose seems strange. "option" makes more sense.
People on this list seem to forget that there were computers before UNIX.
The _syntax_ of "-f" probably predates any UNIX; Multics used it extensively.
See the "Introduction to Multics", MAC-TR-123, January 1974 (a little after
UNIX V1, but I expect I could probably track it back further in time, if I
cared to put in the effort); pg. 3-24.
Interestingly, I looked though the CTSS manual, and CTSS did not seem to use
this syntax for flag arguments: see, e.g., the SAVE command (section AH.3.03).
The _name_ "flag" came in early on UNIX. (Multics called them "arguments";
see above, pg. 3-27, top line.) We can see this happen - see:
http://squoze.net/UNIX/v1man/man1/du
which calls the "-a" and "-s" "arguments"; but in:
http://squoze.net/UNIX/v1man/man1/ld
"-s", "-u", etc are called "flag arguments".
Long enough ago that certainty about the etymology/rationale is probably now
lost.
Noel
Hello,
A great article on the floppy disk.
https://www.abortretry.fail/p/the-floppy-disk
--
Boyd Gerber <gerberb(a)zenez.com> 801 849-0213
ZENEZ 1042 East Fort Union #135, Midvale Utah 84047
> why did AT&T refer to "flags" as "keyletters" in its SysV documentation?
Bureaucracies beget bureaucratese--polysyllabic obfuscation, witness
APPLICATION USAGE in place of BUGS.
One might argue that replacing "flag" by "option", thus doubling the number
of syllables, was a small step in that direction. In fact it was a
deliberate attempt to discard jargon in favor of normal English usage.
Doug
> Al Kossow wrote:
>
> > there are emulators that can still run it, along with its small library of tools and applications. “NOS/MT was left in an arrested state” as John puts it.
>
> URL?
>
> I've never heard of a surviving copy
Your best start is here: http://www.powertrancortex.com
The UK Powertran Cortex was quite close to the Marinchip M9900 in capabilities and John’s software was ported to it. The website has an emulator and disk images for most of the user land and “MDEX” -- a simple executive that John wrote to bootstrap his software stack. This material survived in the hands of a few Powertran Cortex enthusiasts. They also had disks for NOS/MT (binaries + sysgen), but those were found after that website was made 10+ years ago.
The Powertran Cortex design was also used to build an industrial control computer, the PP95. The UK company behind that did most of the porting work and had a complete M9900 system to do the work on. In 2018 the inventory of that company was found in a garage including that M9900 system. Also more disk images and manuals, including the NOS/MT User Manual. The disks included a few that contained reconstituted (partial) source code for NOS/MT. With a little help from John, I was able to reconstitute the remainder of the source code. All this is not online.
I will contact you off list to see how this can be best preserved.
Paul
Earlier this year two well known computer scientists passed away.
On New Year’s Day it was Niklaus Wirth aged 90. A month later it was John Walker aged 75. Both have some indirect links to Unix.
For Wirth the link is that a few sources claim that Plan 9 and the Go language are in part influenced by the design ideas of Oberon, the language and the OS. Maybe others on this list know more about those influences.
For Walker, the link is via the company that he was running as a side-business before he got underway with AutoCAD: https://www.fourmilab.ch/documents/marinchip/
In that business he was selling a 16-bit system for the S-100 bus, based around the TI9900 CPU (which from a programmer perspective is quite similar to a PDP11). For that system he wrote a Unix-like operating system around 1978-1980, called NOS/MT. He had never worked with Unix, but had spelled the BSTJ issues about it. It was fully written in assembler.
The design was rather unique, maybe inspired by Heinz Lycklama’s “Satellite Processor” paper in BSTJ 57-6. It has a central microkernel that handles message exchange, process scheduling and memory management. Each system call is a message. However, the system call message is then passed on to a privileged “fat kernel” process that handles it. The idea was to provide multiprocessor and network transparency: the microkernel could decide to run processes on other boards in the same rack or on remote systems over a network. Also the kernel processes could be remote. Hence its name “Network Operating System / Multitasking” or “NOS/MT”.
The system calls are pretty similar to Unix. The file system is implemented very similar to Unix (with i-nodes etc.), with some notable differences (there are file locking primitives and formatting a disk is a system call). File handles are not shareable, so special treatment for stdin/out/err is hardcoded. Scheduling and memory management are totally different -- unsurprising as in both cases it reflects the underlying hardware.
Just as NOS/MT was getting into a usable state, John decided to pivot to packaged software including a precursor of what would become the AutoCAD package. What was there worked and saw some use in the UK and Denmark in the 1980’s -- there are emulators that can still run it, along with its small library of tools and applications. “NOS/MT was left in an arrested state” as John puts it. I guess it will remain one of those many “what if” things in computer history.
Just recollecting old memories: why did AT&T refer to "flags" as
"keyletters" in its SysV documentation? Some sort of denial of
Ed5/6/7/BSD's very existence?
The one good they did was the TTY driver...
-- Dave, who used to work for a SysVile shop
All, while I'm reminiscing about Minnie's history, I just noticed that we
have hit 30,000 postings on the combined TUHS/PUPS mailing list.
===
In the spirit of early Unix, does that mean the message number
has wrapped back to low numbers, skipping those occupied by
messages still running, like process IDs?
Norman Wilson
(temporarily thousands of km from)
Toronto ON
On Wed Feb 23 16:33, 1994, I turned on the web service on my machine
"minnie", originally minnie.cs.adfa.edu.au, now minnie.tuhs.org (aka
www.tuhs.org) The web service has been running continuously for thirty
years, except for occasional downtimes and hardware/software upgrades.
I think this makes minnie one of the longest running web services
still in existence :-)
For your enjoyment, I've restored a snapshot of the web site from
around mid-1994. It is visible at https://minnie.tuhs.org/94Web/
Some hyperlinks are broken.
## Web Logs
The web logs show me testing the service locally on Feb 23 1994,
with the first international web fetches on Feb 26:
```
sparcserve.cs.adfa.oz.au [Wed Feb 23 16:33:13 1994] GET / HTTP/1.0
sparcserve.cs.adfa.oz.au [Wed Feb 23 16:33:18 1994] GET /BSD.html HTTP/1.0
sparcserve.cs.adfa.oz.au [Wed Feb 23 16:33:20 1994] GET /Images/demon1.gif HTTP/1.0
...
estcs1.estec.esa.nl [Sat Feb 26 01:48:21 1994] GET /BSD-info/BSD.html HTTP/1.0
estcs1.estec.esa.nl [Sat Feb 26 01:48:30 1994] GET /BSD-info/Images/demon1.gif HTTP/1.0
estcs1.estec.esa.nl [Sat Feb 26 01:49:46 1994] GET /BSD-info/cdrom.html HTTP/1.0
shazam.cs.iastate.edu [Sat Feb 26 06:31:20 1994] GET /BSD-info/BSD.html HTTP/1.0
shazam.cs.iastate.edu [Sat Feb 26 06:31:24 1994] GET /BSD-info/Images/demon1.gif HTTP/1.0
dem0nmac.mgh.harvard.edu [Sat Feb 26 06:32:04 1994] GET /BSD-info/BSD.html HTTP/1.0
dem0nmac.mgh.harvard.edu [Sat Feb 26 06:32:10 1994] GET /BSD-info/Images/demon1.gif HTTP/1.0
```
## Minnie to This Point
Minnie originally started life in May 1991 as an FTP server running KA9Q NOS
on an IBM XT with a 30M RLL disk, see https://minnie.tuhs.org/minannounce.txt
By February 1994 Minnie was running FreeBSD 1.0e on a 386DX25 with 500M
of disk space, 8M of RAM and a 10Base2 network connection. I'd received a copy
of the BSDisc Vol.1 No.1 in December 1993. According to the date on the file
`RELNOTES.FreeBSD` on the CD, FreeBSD 1.0e was released on Oct 28 1993.
## The Web Server
I'd gone to a summer conference in Canberra in mid-February 1994 (see
pg. 29 of https://www.tuhs.org/Archive/Documentation/AUUGN/AUUGN-V15.1.pdf
and https://minnie.tuhs.org/94Web/Canberra-AUUG/cauugs94.html, 10am)
and I'd seen the Mosaic web browser in action. With FreeBSD running on
minnie, it seemed like a good idea to set up a web server on her.
NCSA HTTPd server v1.1 had been released at the end of Jan 1994, see
http://1997.webhistory.org/www.lists/www-talk.1994q1/0282.html
It was the obvious choice to be the web server on minnie.
## Minnie from Then to Now
You can read more about minnie's history and her hardware/software
evolution here: https://minnie.tuhs.org/minnie.html
I obtained the "tuhs.org" domain in May 2000 and switched minnie's
domain name from "minnie.cs.adfa.edu.au" to "minnie.tuhs.org".
Cheers!
Warren
P.S. I couldn't wait until Friday to post this :-)
To expand on Branden's observation that translating from one member of the
roff family to another is hard, I note that the final output usually
presents a text in a shape that has been fine-tuned for appearance. In
grammatic terms it might best be presented in transformational terms a la
Chomsky: a basic text with a fairly simple grammar tweaked by
pretty-printing transforms.
Translation involves parsing input into an AST according to one grammar and
unparsing to generate output according to another. Chomsky's work uses
transformational grammars primarily for generation. I'm not aware of any
implementation of the inverse: parsing according to a transformational
grammar. Certainly no practical tools exist for doing so.
Unfortunately, one doesn't consciously write roff according to the model I
have outlined. This means that parsing it is more like parsing a natural
language than a strictly defined programming language. So, the absence of
formal tools is exacerbated. Roff scripts, like everyday English, are
written according to an intuitive--and occasionally ad hoc--grammar that
varies both with authors and with time. And seventy years of hard work has
not yet fully automated the parsing of English.
Doug