Greetings,
What's the canonical source for patches to 2.9BSD and 2.11BSD?
I see we have 2.11BSD patch 469 dated last month in the archive. Where does
it come from? Has anybody climbed the hill to import all the patches into a
git repo? I've found some mirrors, but moe.2bsd.org has been down for me
for ages... How does Warren keep things up to date?
I also have a (maybe faulty) memory of a similar series of patches to
2.9BSD because it was the last BSD to support non-split I&D space machines.
yet a quick google search turns up nothing other than a set of patches
dated August 1985 (also in our archive) and some changes for variants of
hardware (pro, mscp). Is that it?
Warner
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.)
> Did roff do all of what troff and nroff did?
No way. Ossanna deserves all the praise you give him. Roff extended
runoff in various ways:
relative numeric operators, e.g. .in +8
tabbing (left, right and centered)
underlining
tripartite headers and footers
arabic and roman page numbering
adjustable head and foot margins
automatic hyphenation, thanks to Molly Wagner
footnotes
merge patterns for change marks, column separators, etc.
various special requests: .ne, .ti, .tr, .po, .op (odd page)
But roff did NOT have conditionals, traps, special characters,
environments, or arbitrary motion control. Crucially (and ironically,
because I was Mr. Macro), it did not have anything like macros,
strings and diversions until after Joe pioneered them in nroff.
So there was a gaping disparity: nroff was Turing complete, roff
wasn't. Roff merely added features to runoff; nroff leapt into a
different universe.
-----------------------
The features listed above are in the January 1971 manual for BCPL
roff, which is probably the anonymous reference cited in the November
1971 v1 manual. The v1 manual lists Osanna, Ken and Dennis as authors
of the Unix implementation. I believe Ossanna is named because he
added line-numbering--and maybe more--to entice the patent department
to switch to roff.
BCPL roff allowed all four arithmetic operators in contexts like .ls
*3. Only + and - were allowed in nroff. Eventually both BCPL roff and
nroff got number registers (defined by different commands); I don't
recall which came first. BCPL roff also got a weak macro facility,
definitely after nroff.
Doug
> From: Bakul Shah
> My guess is *not* storing a path instead of a ptr to the inode was done
> to save on memory.
More probably speed; those old disks were not fast, and on a PDP-11, disk
caches were so small that converting the path to the current directory to its
in memory inode could take a bunch of disk reads.
> Every inode has a linkcount so detecting when the last conn. is severed
> not a problem.
Depends; if a directory _has_ to be empty before it can be deleted, maybe; but
if not, no. (Consider if /a/b/c/d exists, and /a/b is removed; the tree
underneath it has to be walked and the components deleted. That could take a
while...) In the general case (e.g. without the restriction to a tree), it's
basically the same problem as garbage collection in LISP.
Noel
Hello,
I’m looking for photographs of university computer labs from 1985 until 1995, particularly labs full of unix workstations, of course. Does anyone here have photos like that in their collection?
I’m also thinking of reaching out to university archivists, but I don’t have any direct connections to any.
Thanks much!
- Alex
I have a copy of a spiral-bound booklet with yellow covers called "The C
Programmer's Reference" by Morris I. Bolsky of the Systems Training
Center, AT&T Bell Laboratories, (C) 1985. A curious little snapshot of
1980s pre-ANSI C.
I posted a picture of the front cover (with table of contents) at
https://twitter.com/fanf/status/1475407500946157570
I think I rescued it from the office clear-out in 2013 when Cambridge
University Computing Service moved out of the old city-centre offices. I
probably picked it up from a stack of old books that were to be chucked;
wherever I found it, I can't remember who it belonged to. And now I no
longer work for the University, it has come home with me.
Tony.
--
f.anthony.n.finch <dot(a)dotat.at> https://dotat.at/
Southwest Forties, Cromarty, Forth, Tyne, Dogger: Southerly or
southeasterly, backing easterly or northeasterly later, 4 to 6,
becoming variable 3 for a time in Cromarty and Forth. Moderate,
occasionally rough at first in southwest Forties, Cromarty and Dogger.
Rain or showers, fog patches developing. Moderate or good,
occasionally very poor.
I enabled user accounting on my v7 instance and I noticed it "growing
without bound" and while this is noted as a possibility in the ac(1) man
page, I was pretty sure the original authors didn't mean 30k a second. I
scratched my head and thought for a while and then started experimenting
to see what the heck was going on. I removed /usr/adm/wtmp (which I had
created to enable accounting in the first place) and the little red disk
write arrow on my mac went away, but not the little green disk read
arrow... hmm. Something was keeping my v7 instance very busy reading
disk, that was for sure. I went through a few (dozens) more tests and
experiments, reread a bunch of man pages, Ritchie's v7 install note, and
thought some more and here's what I came up with...
If you modify your system to add dci lines and you enable some ttys in
/etc/ttys and you enable user accounting. Then, the next time you boot
into a kernel that doesn't have dci support, init or some other process
will try and fail to read the enabled ttys, log something in
/usr/adm/wtmp, if it exists, and then loop (very quickly), over and over
and over. If you aren't paying attention, this will hardly be noticeable
on modern hardware running simh, but I'm guessing this would have been
disastrous, back in the day.
The simple solution is to boot w/dci enabled when you have ttys enabled,
and only boot w/o dci enabled when you have disabled the ttys.
I'm guessing that this wasn't really ever an issue, back in the day, as
folks prolly didn't just yank their dci's and reboot a different kernel?
But, such are the joys of simulation.
Anyhow, if this doesn't sound like a very likely or reasonable analysis
of what was happening, I'd appreciate your letting me know, or if you've
experienced something like it before, it'd be great to know that I'm not
alone in this silliness.
Will
I'm pretty sure that I asked about learn ages back, but I couldn't find
any reference to it in the archives. So, I thought I would close the
possibly imaginary loop on it. Cuz, I figured it out, and it may prove
useful to others or with my track record, even myself in the future :).
Learn works fine in v7. It just needs to be properly installed. The
command is there already, so you may not need to follow all of the steps
below, but it doesn't hurt:
I did this as root, but it could possibly be done as another user, I'm
not sure.
cd /usr/src/cmd/learn
make
make lessons
make play; make log
That's it. make will complain about missing files that it tries to
delete, but these can be safely ignored, since make then creates them
anyway.
Here's the result run as a normal user:
$ learn
These are the available courses -
files
editor
morefiles
macros
eqn
C
If you want more information about the courses,
or if you have never used 'learn' before,
type 'return'; otherwise type the name of
the course you want, followed by 'return'.
macros
If you were in the middle of this subject
and want to start where you left off, type
the last lesson number the computer printed.
To start at the beginning, just hit return.
This script deals with the use of the "-ms" macro
package to produce Bell Laboratories style documents.
Before trying it, you should be familiar with the
editor. To test that, please enter the file
typed below, exactly as is, into file "decl". Then
type "ready".
.PP
When in the course of human events, it becomes
necessary for one people to dissolve the political bands which have
connected them with another, and to assume among the
powers of the earth the separate and equal station to which
the laws of Nature and of Nature's God entitle them, a decent
respect to the opinions of mankind requires that they should
declare the causes which impel them to the separation.
$ ed decl
?decl
a
.PP
When in the course of human events, it becomes
necessary for one people to dissolve the political bands which have
connected them with another, and to assume among the
powers of the earth the separate and equal station to which
the laws of Nature and of Nature's God entitle them, a decent
respect to the opinions of mankind requires that they should
declare the causes which impel them to the separation.
.
w
410
q
$ ready
Good. Lesson 1.1a (1)
When you have some document typed in "-ms" style,
you run it off on your terminal by saying:
nroff -ms file
where "file" is the name of the file it is on. For example,
the file "decl" in this directory is in a suitable format
for running off this way. Do so. Then type "ready".
$
Interrupt.
Want to go on? n
Bye.
$
Pretty slick, really, once you realize that the $ prompt isn't really
your shell, it's a shell within learn. Also, there's no learn manpage
although there is a document in vol2 of the programmer's manual that
describes the program. I couldn't figure out the canonical way to exit,
so I just CTRL-DELETE on my mac, which I figure it CTRL-BREAK (^C?).
That seems to work.
Oh, and according to /usr/src/cmd/learn/README, if you have any trouble:
Please report problems, bad lessons, etc., to
Brian Kernighan, MH 6021, 2C-518, or
Mike Lesk, MH 6377, 2C-572. Thanks.
Enjoy, and happy New Year, folks!
Will
> Joy’s original 2BSD tape will give you UCB Pascal.
While I agree with Kernighan that Pascal is not my favorite
programming language, UCB Pascal is my favorite compiler because of
its spectacularly good syntax diagnostics. The diagnostics are
automatically generated, so they have a completely consistent style
and never go down rabbit holes trying to explain an error.
The UCB trick is to report the exact spot where LR parsing chokes and
suggest a canonical alternate token that allows progress. This simple
strategy is startlingly effective; the compiler taught me Pascal in an
evening.
It occurred to me that Pascal would be a suitable language in which to
express a certain algorithm. Having skimmed the Pascal report a year
or more earlier, I knew it was a pretty typical language, so I grabbed
a sample program from somewhere and plowed ahead. I made mistake after
mistake, but every diagnostic was instantly suggestive. By the end of
the session I had a polished working program. In due time it was
accepted for publication.
Doug
I'm tooling around doing my annual dive into operating systems ancient
and not-so-ancient and I've gotten back around to v7 because it has a
working f77 in baseline. The 3b2 has f77 as an installable package but
it crashes and burns with read statements like: read *,var - in both
sysvr2 and sysvr3. After consulting with the fortran expert, I'm gonna
chalk it up to "man there's a lot of backstory to these seemingly simple
issues" and just work with v7... in full disclosure f77 also seems to
work fine on 211bsd, but that's too new for today's dive :).
Anyhow, I ran through my install notes from back in 2017 and did a few
updates on them to update urls (would everyone just go ahead and move to
https already?), fix some clunky examples, fix some typos, and update to
a more recent host environment (although some would argue that Mojave is
out of date - just give me a drop in replacement for Adobe Acrobat Pro X
(a 32 bit app) that doesn't phone home every 5 minutes and I'll move to
Monterey). Version 1.7 of the doc is posted on the blog:
https://decuser.blogspot.com/
Anyway, now I'm ready to add stuff to my shiny new v7 instance and
document the additions. So, on to the question of the hour... I did some
looking around and couldn't easily locate any v7 software archives for
additional software that will run on v7 (not the distros, which are
adequately hosted in the Unix Archive). Stuff like pascal, fortran iv,
fortran 90, basic, lisp and the ilk. Do y'all know of any good caches?
Later,
Will