---------- Forwarded message ----------
From: Clem Cole <clemc(a)ccc.com>
Date: Sat, Jan 23, 2016 at 3:00 PM
Subject: Re: [TUHS] Missing Documents for use with the Unix Time-Sharing
System, Sixth Edition
To: Will Senn <will.senn(a)gmail.com>
below....
On Sat, Jan 23, 2016 at 12:58 PM, Will Senn <will.senn(a)gmail.com> wrote:
> All,
>
> The Unix Sixth edition programmer's manual and other documents for use
> with Unix time-sharing system are available online, in html and postscript
> form from Wolfgang Helbig's site:
>
> http://wwwlehre.dhbw-stuttgart.de/~helbig/os/v6/doc/index.html
>
> There are papers some missing from the "Documents for use with the Unix
> Time-Sharing System":
>
Hmm - these should be with the v6 distribution - some of them are coming
with later editions... and except for updates to said system will be go'nuf
That said you are asking about the versions from v6. I do not seem to
have hardcopies easy to find. I'll keep looking there is some stuff in my
attic.
> RATFOR - A Preprocessor for Rational Fortran
> NROFF User's Manual
> A Manual for Tmg Compiler-writing Language
>
This is the doc that you might not find in other places, as I think tmg
stopped being distributed at some point. Doug as one of the authors I
believe may know the story.
> On the Security of UNIX
> The M6 Macro Processor
>
I think you mean m4 not m6
> A System for Typesetting Mathematics
> DC - An Interactive Desk Calculator
> BC - An Arbitrary Precision Desk-Calculator Language
> The Portable C Library (on UNIX)
> UNIX Summary
>
> Some of these are more interesting to me than others, but I tend towards
> shiny objects, so there is no telling when they will be of critical
> interest in the future. I have done quite a bit of searching for the NROFF
> document and the portable C library document and while I have found related
> works, I haven't come across the originals for sixth edition. Do any of
> y'all know where any or all of these documents are archived in their
> original/reproduced form?
Warren's V6 seems have many of them in:
http://www.tuhs.org/Archive/PDP-11/Distributions/research/Dennis_v6/v6doc.t…
> From: Will Senn
> I have cdb .. How do I exit it. %, CTRL-C, CTRL-D, CTRL-Z, Break,
> CTRL-Break, and so on just result in a ? being displayed.
CTL-D (EOF on input) works for me? Or maybe the version I have (it was a
binary only that came off the Shoppa disks, IIRC) is slightly different from
the one you have, and that only works in this version (which has a number of
extensions).
I don't think I ever found any other way to exit it. Although looking at the
code, it seems like probably the only way is to generate a 'quit with core
dump' interrupt - I forget what character that is in standard V6.
Noel
All,
The Unix Sixth edition programmer's manual and other documents for use
with Unix time-sharing system are available online, in html and
postscript form from Wolfgang Helbig's site:
http://wwwlehre.dhbw-stuttgart.de/~helbig/os/v6/doc/index.html
There are papers some missing from the "Documents for use with the Unix
Time-Sharing System":
RATFOR - A Preprocessor for Rational Fortran
NROFF User's Manual
A Manual for Tmg Compiler-writing Language
On the Security of UNIX
The M6 Macro Processor
A System for Typesetting Mathematics
DC - An Interactive Desk Calculator
BC - An Arbitrary Precision Desk-Calculator Language
The Portable C Library (on UNIX)
UNIX Summary
Some of these are more interesting to me than others, but I tend towards
shiny objects, so there is no telling when they will be of critical
interest in the future. I have done quite a bit of searching for the
NROFF document and the portable C library document and while I have
found related works, I haven't come across the originals for sixth
edition. Do any of y'all know where any or all of these documents are
archived in their original/reproduced form?
Regards,
Will
> From: Will Senn
> How did folks debug assembly routines in Unix v6, back in the day?
There are three different questions here, although you may not realize it:
- How did folks debug assembly routines in user programs in Unix v6
- How did folks debug assembly routines in the kernel in Unix v6
- How did folks debug assembly routines in PDP-11 standalone code created
with Unix v6
I did all three, and I used different methods for each.
For user code, there was no source-level debugger, so debugging C programs
and debugging code written in assembler were the same thing. I used 'adb'
(which is, stricly speaking, slightly post-V6 - our system at MIT was
actually sort of an early PWB clone), but V6 itself provides 'db' (and also,
IIRC, 'cdb'); all three are very similar.
For standalone code (in my case, a packet switch that ran on PDP-11's), I
used a version of DDT that was linked in with the rest of the code. The
original version was one in MACRO-11 which I inherited from Jim Mathis at
SRI, but I eventually re-wrote it in portable C, and it was used on the 68K,
uVax and 29K.
For kernel assembler code... I can't remember what I did! Although I wrote a
fair amount of it (I modified m45.s very extensively, to work with the Able
ENABLE card), so I must have done _something_, but I have no idea what. In
theory I could have linked DDT in with the kernel, but I don't think I ever
did so?
Recently I was debugging some kernel code (the splice() system call we were
discussing here), and I debugged it using... printf()'s! It was written in C,
but I don't really differentiate between debugging C code, and assembler.
> 2. No map file created by ld.
LD normally includes a symbol table in the output file, which 'nm' can dump.
> 3. No debugger that I can find.
See above.
> My workarounds include using OD to view the generated machine code
Use db/cdb/adb if you want to look at compiled code. Also, for 'cc', use the
-S flag.
Noel
All,
I'm finally returning to my study of v6 after digging a bit further into
assembly language and "other" pdp-11 operating systems. I even managed
to get hello, world working in assembly in v6 and interestingly enough,
I actually see how it works... for the most part :). Mini-note here:
http://decuser.blogspot.com/2016/01/hello-world-in-assembly-on-research.html
My question for y'all today is as follows (asked previously with a much
larger gap in understanding):
How did folks debug assembly routines in Unix v6, back in the day?
I realize that most folks didn't do assembly, but some did and I'm
curious what their approach might have been.
After having worked with RT-11 for a bit, I can see how I might develop
using RT-11 and then "port" a program across, but that seems less than
ideal. Here is my short list of missing features as I see them:
1. No listing file/cross reference list created by as.
2. No map file created by ld.
3. No debugger that I can find.
4. This is not a missing feature, but it deserves inclusion in the list,
the command as has possibly the most terse error messages I have ever
seen - B 12? Really? Thankfully, the awesome man command comes to the
rescue with the list of error codes.
My workarounds include using OD to view the generated machine code and
adding mesg calls.
Thoughts?
Will
All, I asked Peter Salus if there is an electronic version of his great
book "A Quarter Century of Unix". There isn't one, so I scanned my book
in. Peter has given TUHS the right to distribute the scanned version.
I've just added a link to the PDF of the scan here:
http://wiki.tuhs.org/doku.php?id=publications:quarter_century_of_unix
But, if you can, buy the paper version as well!
Many thanks to Peter for his generosity.
Cheers, Warren
Hoi.
Yesterday, I came across the file Berkeley_Unix_History.pdf on
my disk. It contains scanned articles of UNIX Review January 1985,
October 1985 and January 1986. Searching the web brought up this
online location for the file:
http://simson.net/ref/free_software/Berkeley_Unix_History.pdf
I read the articles for the first time and had a great time doing
so. Especially the ``Berkeley Underground'' article was pure fun!
Here, have some impression:
We modified the kernel to
support asynchronous I/O, distri-
buted files, security traces, "real-
time" interrupts for subprocess
multitasking, limited screen
editing, and various new system
calls. We wrote compilers, ass-
emblers, linkers, disassemblers,
database utilities, cryptographic
utilities, tutorial help systems,
games, and screen-oriented ver-
sions of standard utilities. User
friendly utilities for new users that
avoided accidental file deletion,
libraries to support common
operations on data structures
such as lists, strings, trees, sym-
bol tables, and libraries to perform
arbitrary precision arithmetic and
symbolic mathematics were other
contributions. We suggested im-
provements to many system calls
and to most utilities. We offered to
fix the option flags so that the dif-
ferent utilities were consistent
with one another.
To Us, nothing was sacred,
and We saw a great deal in UNIX
that could stand improvement.
Much of what We implemented, or
asked to be allowed to implement,
is now a part of System V and 4.2
BSD; others of our innovations are
still missing from all versions of
UNIX. Despite these accom-
plishments, it seemed that
whenever We asked The Powers
That Be to install Our software
and make it available to the rest of
the system's users, We were
greeted with stony silence.
Unfortunately, the scan is not complete as some pages are
missing. For example, page 43 (the title page of the mentioned
article) is among them.
Does anyone know where to get the full articles?
meillo
> From: Ronald Natalie
> a new GADS (Gateway Architecture and Data Structures) under Dave
> Mills's leadership would form which I attended until they morphed it
> into the IETF
To give a bit more detail, GADS was not producing needed stuff as fast as was
needed, so it was split into InArc and InEng, with Dave running InArc and
Corrigan (initially, Gross later) in charge.
Noel
It has been updated again:
The origin of the name cron is from the Greek word for time, χρόνος (chronos).[2][3] (Ken Thompson, author of cron, has confirmed this in a private communication with Brian Kernighan.)
So it would appear that if enough people bang on enough keyboards on the Wikipedia site, things can change.
David