I've assembled some notes from old manuals and other sources
on the formats used for on-disk file systems through the
Seventh Edition:
http://www.cita.utoronto.ca/~norman/old-unix/old-fs.html
Additional notes, comments on style, and whatnot are welcome.
(It may be sensible to send anything in the last two categories
directly to me, rather than to the whole list.)
> From: Paul Guertin
> I teach math in college ... Sometimes, during an exam, a student who
> forgot to bring their calculator will ask if they can borrow mine I
> always say "sure, but you'll regret it" and hand them the calculator
> After wasting one or two minutes, they give it back
Maybe I'm being clueless/over-asking, but to me it's appalling that any
college student (at least all who have _any_ math requirement at all; not sure
how many that is) doesn't know how an RPN calculator works. It's not exactly
rocket science, and any reasonably intelligent high-schooler should get it
extremely quickly; just tell them it's just a representational thing, number
number operator instead of number operator number. I know it's not a key
intellectual skill, but it does seem to me to be part of comon intellectual
heritage that everyone should know, like musical scales or poetry
rhyming. Have you ever considered taking two minutes (literally!) to cover it
briefly, just 'someone tried to borrow my RPN calculator, here's the basic
idea of how they work'?
Noel
There is an interesting paper that Dennis Ritchie and Dave Presotto wrote, “Interprocess Communication in the Ninth Edition Unix System” (https://www.bell-labs.com/usr/dmr/www/ipcpaper.html <https://www.bell-labs.com/usr/dmr/www/ipcpaper.html>).
This appears to be an update of a paper that they wrote in 1985, “Interprocess Communication in the Eighth Edition Unix System”. This earlier paper is hard to find.
Anybody on this list who has it on hand?
The C in v7 is, canonically, the language described in K&R, right?
I must be doing something dumb.
I am getting Webb Miller’s “s” editor built there, and I am down to one function.
/* chop_arg - chop a function's argument to a maximum length */
static chop_arg(fcn, arg, maxlen)
int (*fcn)();
int maxlen;
char *arg;
{
char save;
save = arg[maxlen];
arg[maxlen] = '\0';
fcn(arg);
arg[maxlen] = save;
}
This doesn’t like the function pointer.
$ cc -c choparg.c
choparg.c:11: Call of non-function
So, uh, what is the obvious thing I am missing? How am I supposed to be passing function pointers in the C compiler that comes with v7?
Adam
I've forgotten who created stdio, USG or the research group. Can any of the
youthful BTL folks of the 1970's refresh my mind.
Given that stdio was invented and, in my opinion at the time, a reasonable
and usable standard interface to IO on Unix, I am curious why no standard
for networking was developed or proposed and discussed. Sockets just
defined a new and very quirky IO interface for Unix based systems.
Was any thought given to defining networking
using the
creat/open/read/write/close/mknod/link/unlink/chmod/chown
model of IO in UNIX?
Ed Bradford
--
Advice is judged by results, not by intentions.
Cicero
I was lucky enough to be in the room last year at VCF East when Ken
told the story of how the move from Berkeley to Bell Labs happened.
Ken's description of his interactions with the Bell recruiter was
entertaining and made clear that persistent effort was needed to get
him to come out to New Jersey and meet some of the people there.
Does anyone know who the recruiter was?
> Sorry, I typed that in haste without testing. I don’t have a 2.11 system to try it on. However, reading the source code, I did that wrong. The args go on the stack, not in line with the code.
> mov $6, -(sp)
> mov a, -(sp)
> mov $1,-(sp)
> sys 4
Without suggesting that every helpful post should be tested, I find the superb https://unix50.org web emulator excellent for such things.
Many thanks to the folks hosting & maintaining this great resource!
> From: Jacob Ritorto
> I wonder if the differences are written up somewhere. I did try to look
> for more documentation but came up short.
Sounds like a perfect topic for a CHWiki page. :-) E.g. this one:
http://gunkies.org/wiki/Unix_V6_internals
which I did as a bit of an addendum to Lions, to explain rsav, qsav and ssav, and
similar topics.
I noticed in the comparison of your two binary files that the instructions
looked the same, but the a.out headers had a difference, but I didn't remember
the fields in the a.out header enough to know what the differences meant.
I thought I remembered doing an a.out page there, but apparently not. I
thought about doing one now, but decided it wasn't worth it; I just needed to
spin up my V6 system and do 'man a.out'! :-)
Noel