On SCO UNIX 3.2V4 you indeed have local virtual consoles moving from one to
another using the function keys. Worked from F1 to F12, but how often you
could login would depend on your license. Of course all still character
based, and depending on your TERM setting.
--
The more I learn the better I understand I know nothing.
Hi!
I have an updated Unix 2.0v2 package running under the current Vax-780 sim.
It has been tuned up with missing packages and some new ones. Like automatic
startup with date/time setting, running fsck at boot and properly shutting
down
ALL processes at shutdown allowing for a "clean" shutdown thereby avoiding
fsck issues at the next boot.
Also there is a virtual tape so you can do backups..
My question is can THIS version access an IP address? And if so, how.
If there is any interest I could package it up into a tar file for others.
Thanks,
Ken
--
WWL 📚
Hello folks, posing a question here that will help with some timelining.
So System III, according to everything I've read, was commercially issued in 1982. However, PWB 3.0 was issued internally in 1980, two years prior. This isn't that surprising, give USL some time to work it up for commercial-readiness.
Where I'm curious is if there was a similar gap for the public release of PWB, given that was earlier on and pre-support and such. Was there a particular "public release" date for PWB 1.0 or would it have just been whenever folks started getting tapes out of Bell? I know it shows up in a price sheet floating around from say 1983 or 1984 among the likes of V7, 32V, System III, and System V also for sale, but would anything that early have had a formal "ship date" indicating a day they cut the master to copy tapes from or was it more of a contact Bell, someone will cut you a tape of whatever we've got right now?
Also, was PWB held as something that would be "marketable" from the get-go, or was it more of a happy accident that it wound up in the right place in the right time to become the commercial line? One would think USG Generic would be the one they'd shoot for being the "base" to build on, but everything I'm finding in my study of System III lately is pointing to a much more PWB-ish lineage with random borrowings from CB, PY, HO, IH, among others.
- Matt G.
There was such a tool, psroff (same name as, but no shared code with the
Adobe version) that read either C/A/T or ditroff output and produced
postcript. It was in volume 24 of comp.sources.unix. There were also
multiple patches to it.
It dates from 1991.
segaloco, you were looking for this? Contact me privately if you can't
find it.
Arnold
> From: "Ronald Natalie"
> Multilevel breaks are as bad as goto with regard to structure violation.
In a way, you are right. There isn't really much difference between:
for (mumble) {
for (foobar) {
do some stuff
break-2;
}
}
and:
for (mumble) {
for (foobar) {
do some stuff
goto all_loops_done;
}
}
all_loops_done:
The former is basically just 'syntactic sugar' for the latter.
I think the point is that goto's aren't necessarily _always_ bad, in and of
themselves; it's _how_, _where_ and _why_ one uses them. If one uses goto's
in a _structured_ way (oxymoronic as that sounds), to get around things that
are lacking in the language's flow-control, they're probably fine.
Then, of course, one gets into the usual shrubbery of 'but suppose someone
uses them in a way that's _not_ structured?' There's no fixing stupid, is my
response. Nested 'if/then/else' can be used to write comletely
incomprehensible code (I have an amusing story about that) - but that's not
an argument against nested 'if/then/else'.
As I've said before, the best sculpting tools in the world won't make a great
sculptor out of a ham-handed bozo.
Noel
> From: Warner Losh
> for breaking out of multiple levels of while/for loops.
Yeah, multi-level 'breaks' were one of the things I really missed in C.
The other was BCPL's 'VALOF/RESULTIS'. Back before C compilers got good
enough to do inline substitutions of small procedures (making macros with
arguments less useful), it would have been nice to have, for macros that
wanted to return something. Instead, one had to stand on one's head and use a
'(cond ? ret1 : ret2 )' of some form.
Noel
> From: Ralph Corderoy
> if you say above that most people are unfamiliar with them due to their
> use of goto then that's probably wrong
I didn't say that. I was just astonished that in a long thread about handling
exceptional conditions, nobody had mentioned . . . exceptions. Clearly, either
unfamiliarity (perhaps because not many laguages provide them - as you point
out, Go does not), or not top of mind.
Noel
I have successfully got System V running on a PDP11 sim.
I have been trying to add serial lines like on Version 7 but
have had no success.
What would be necessary under System V on a sim to do so.
I have already tried the SIMH group but no working answers.
If direct telnet is a better way please let me know.
Thanks
Ken
--
WWL 📚
Ca. 1981, if memory serves, having even small numbers of TCP connections
was not common.
I was told at some point that Sun used UDP for NFS for that reason. It was
a reasonably big deal when we started to move to TCP for NFS ca 1990 (my
memory of the date -- I know I did it on my own for SunOS as an experiment
when I worked at the SRC -- it seemed to come into general use about that
time).
What kind of numbers for TCP connections would be reasonable in 1980, 90,
2000, 2010?
I sort of think I know, but I sort of think I'm probably wrong.
So I decided to keep the momentum and have just finished the first pass of a Fifth Edition manual restoration based on the same process I used for 3B20 4.1:
https://gitlab.com/segaloco/v5man
There were a few pages missing from the extant PDF scan, at least as far as pages that were in both V4 and V6 sources, so those are handled by seeing how V5 source of the few programs compares to V6. I'll note which pages required this in a second pass.
I've set my sights on V1 and V2 next, using V3's extant roff sources as a starting point, so more to come.
- Matt G.
From reading a lot of papers on the origins of TCP I can confirm that people appear to have been thinking in terms of a dozen connections per machine, maybe half that on 16-bit hardware, around 1980. Maybe their expectations for PDP-10’s were higher, I have not looked into that much.
> From: Tom Lyon <pugs78(a)gmail.com>
> Sun chose UDP for NFS at a point when few if any people believed TCP could
> go fast.
> I remember (early 80s) being told that one couldn't use TCP/IP in LANs
> because they were WAN protocols. In the late 80s, WAN people were saying
> you couldn't use TCP/IP because they were LAN protocols.
I’m not disputing the above, but there was a lot of focus on making TCP go fast enough for LAN usage in 1981-1984. For example see this 1981 post by Fabry/Joy in the TCP-IP mailing list: https://www.rfc-editor.org/in-notes/museum/tcp-ip-digest/tcp-ip-digest.v1n6…
There are a few other similar messages to the list from around that time.
An early issue was check-summing, with that initially taking 25% of CPU on a VAX750 when TCP was heavily used. Also ideas like having "trailing headers" (so that the data was block aligned) were driven by a search for LAN performance. Timeouts were reduced from 5s and 2s to 0.5s and 0.2s. Using a software interrupt instead of a kernel thread was another thing that made the stack more performant. It always seemed to me that the BBN-CSRG controversy over TCP code spurred both teams ahead with BBN more focussed on WAN use cases and CSRG more on LAN use cases. I would argue that no other contemporary network stack had this dual optimisation, with the possible exception of Datakit.
Guys,
Find attached an updated date.c for Y2K for System V
IE: date 0309182123
Also works:
# date +%D
03/09/23
# date +%y%m%d%H%M
2303091823
Interesting Version 7 wants: date 2303091821
Ken
--
WWL 📚
> From: Kenneth Goodwin
> The first frame buffers from Evans and Sutherland were at University of
> Utah, DOD SITES and NYIT CGL as I recall.
> Circa 1974 to 1978.
Were those on PDP-11's, or PDP-10's? (Really early E+S gear attached to
PDP-10's; '74-'78 sounds like an interim period.)
Noel
In PWB1, support for 'huge' files appears to have been removed. If one
compares bmap() in PWB1'S subr.c with V6's, the "'huge' fetch of double
indirect block" code is gone. I guess PWB didn't need very large (> 8*256*512
= 1,048,576 bytes) files? I'm not sure what the _benefits_ of removing it
were, though - unless PWB was generating lots of files of between 7*256*512
and 8*256*512 bytes in length, and they wanted to avoid the overhead of the
double-indirect block? (The savings in code space are derisory - unlike in
LSX/MINI-UNIX.) Anyone know?
Noel
I am confused on the history of the frame buffer device.
On Linux, it seems that /dev/fbdev originated in 1999 from work done by Martin Schaller and Geert Uytterhoeven (and some input from Fabrice Bellard?).
However, it would seem at first glance that early SunOS also had a frame buffer device (/dev/cgoneX. /dev/bwoneX, etc.) which was similar in nature (a character device that could be mmap’ed to give access to the hardware frame buffer, and ioctl’s to probe and configure the hardware). Is that correct, or were these entirely different in nature?
Paul
The wheel of reincarnation discussion got me to thinking:
What I'm seeing is reversing the rotation of the wheel of reincarnation.
Instead of pulling the task (e.g. graphics) from a special purpose device
back into the general purpose domain, the general purpose computing domain
is pushed into the special purpose device.
I first saw this almost 10 years ago with a WLAN modem chip that ran linux
on its 4 core cpu, all of it in a tiny package. It was faster, better, and
cheaper than its traditional embedded predecessor -- because the software
stack was less dedicated and single-company-created. Take Linux, add some
stuff, voila! WLAN modem.
Now I'm seeing it in peripheral devices that have, not one, but several
independent SoCs, all running Linux, on one card. There's even been a
recent remote code exploit on, ... an LCD panel.
Any of these little devices, with the better part of a 1G flash and a large
part of 1G DRAM, dwarfs anything Unix ever ran on. And there are more and
more of them, all over the little PCB in a laptop.
The evolution of platforms like laptops to becoming full distributed
systems continues. The wheel of reincarnation spins counter clockwise -- or
sideways?
I'm no longer sure the whole idea of the wheel or reincarnation is even
applicable.
Rob Pike:
As observed by many others, there is far more grunt today in the graphics
card than the CPU, which in Sutherland's timeline would mean it was time to
push that power back to the CPU. But no.
====
Indeed. Instead we are evolving ways to use graphics cards to
do general-purpose computation, and assembling systems that have
many graphics cards not to do graphics but to crunch numbers.
My current responsibilities include running a small stable of
those, because certain computer-science courses consider it
important that students learn to use them.
I sometimes wonder when someone will think of adding secondary
storage and memory management and network interfaces to GPUs,
and push to run Windows on them.
Norman Wilson
Toronto ON
Recently, I stumbled upon a photo of the Lions Commentary that didn't have
a bell disclaimer, but a Wollongong Group disclaimer on it. Not Wollongong
University, but The Wollongong Group (a company I coincidentally used to
work for). I wish I'd saved the images, because now I can't find it. Has
anybody else seen this?
Warner
> I'll turn this into a 'Fixing damaged V5/V6 file systems' article on
> the CHWiki.
Here'a a first crack at it:
https://gunkies.org/wiki/Repairing_early_UNIX_file_systems
Any suggestions for improvements/additions will be gratefully received!
I've also been amusing myself trying to figure out who wrote:
http://ana-3.lcs.mit.edu/~jnc/tech/unix/s1/fcheck.c
and how it got to MIT - which might give us a clue as to who wrote it. (It's
clearly a distant ancestor to 'fsck'.) The fact that we've lost Ted Kowalski
is really hindering, alas. Interestingly, Dale DeJager, head of the CB-UNIX
group, earlier remembered Hal Pierson working on a file system checker early
on:
"Hal also implemented the first file system check routine that was written
in C. It replaced an .. assembler version from research"
but it's not clear if the thing Hal wrote, mentioned there, has any
relationship with the 'check' of V5:
https://minnie.tuhs.org/cgi-bin/utree.pl?file=V5/usr/source/s1/check.c
Maybe one of the Labs old-timers here remembers where the V5 thing came from?
(I.e. did Ken or Dennis write it, or did it come from Columbus?) If you do, it
would be a big help!
Noel
Hi,
When executing ps alx on the interdata sim I get good output:
# ps alx
F S UID PID PPID CPU PRI NICE ADDR SZ WCHAN TTY TIME CMD
3 S 0 0 0 255 0 20 2235 2 4262 ? 36:48 swapper
1 S 0 1 0 0 30 20 2255 8 46060 ? 0:00 /etc/init
1 S 0 19 1 0 30 20 2745 11 46114 co 0:00 -sh
1 R 0 301 19 4 50 20 4056 20 co 0:00 ps alx
1 S 0 12 1 0 40 20 2545 5 140000 ? 0:00 /etc/update
1 S 1 18 1 0 40 20 2625 10 140000 ? 0:00 /etc/cron
#
When executing ps alx on the pdp11 sim I get bad output:
# ps alx
F S UID PID PPID CPU PRI NICE ADDR SZ WCHAN TTY TIME CMD
115
5120 0 0 1 26 1 55 1 3003 ? 120150:37 swapper
#
I tried copying the source from one machine to the other. No luck, same
issue.
I have attached the source from both machines.
Any help appreciated.
Ken
--
WWL 📚
> From: Douglas McIlroy
> Typo, in v3 through v6 ...
> 26^3 16-bit trigram counts didn't fit in the PDP-11 memory
Being mildly curious, I fed '26 3 ^p' into 'dc' to see just how big it was -
and got "17576", a 16-bit word array of which would fit into a PDP-11 64KB
address space.
I think the answer is in the first line - V3 didn't use the PDP-11 memory
management, so the kernel _and_ the application had to fit into 56KB. So
there may well have not been 36KB available to hold a 26^3 array of 16-bit
words.
The other possible explanation is that it was perfectly possible to run UNIXes
of that era (V4 on) on machines without enough main memory to hold the kernel
and a 'full-sized' process simultaneously. (Our original machine, an -11/40,
started out without a lot of memory; I don't recall exactly how much, though.
It had, I'm pretty sure, 3 banks of core; I was thinking it was 3 MM11-L core
units, which would be 3x16KB, or only 48KB, but my memory must be wrong;
that's not really enough.)
Noel
> From: Clem Cole wrote:
> It had more colorful name originally - fsck (pronounced as fisk BTW)
> was finished. I suspect the fcheck name was a USG idea.
I dunno. I don't think we at MIT wold have gratuitously changed the name to
'fcheck'; I rather think that was its original name - and we pretty
definitely got it from CMU. 'fsck' was definitely descended from 'fcheck'
(below).
> From: Jonathan Gray
>> (are 'fsck' and 'fcheck' the same program?)
> https://www.tuhs.org/cgi-bin/utree.pl?file=V7addenda/fsck
Having looked the the source to both, it's quite clear that 'fcheck' is a
distant ancestor of 'fsck' (see below for thoughts on the connection(s)). The
latter has been _very_ extensively modified, but there are still some traces
of 'fcheck' left.
A lot of the changes are to increase the portability, and also to come into
compliance with the latest 'C' (e.g. function prototypes); others are just to
get rid of oddities in the original coding style. E.g.:
unsigned
dsize,
fmin,
fmax
;
Perfectly legal C, but nobody uses that style.
> From: Jonathan Gray
> fcheck is from Hal Pierson at Bell according to
> https://www.tuhs.org/Archive/Distributions/USDL/CB_Unix/readme.txt
Hmm. "the major features that were added to UNIX by CB/UNIX ... Hal Person
(or Pierson?) also rewrote the original check disk command into something
that was useful by someone other than researchers."
I poked around in CB/UNIX, and found 'check(1M)':
https://www.tuhs.org/Archive/Distributions/USDL/CB_Unix/cbunix_man1_01.pdf
(dated November 1979). Alas, the source isn't there, but it's clearly in the
fheck/fsck family. (CB/UNIX also has chkold(1M), which looks to me like it's
'icheck'.)
So now we have a question about the ancestry of 'check' and 'fcheck' - is one
an ancestor of the other, and if so, which - or are they independent
creations? Without the source, it's hard to be definitive, bur from the
messages (as given in the manual), they do seem related.
Clem's message of 3 Mar, 14:35 seems to indicate the the original was from
CMU, authored by Ted Kowalski; he also:
https://wiki.tuhs.org/doku.php?id=anecdotes:clem_cole_student
says "Ted Kowalski shows up for his OYOC year in the EE dept after his summer
at Bell Labs ... He also brought his cool (but unfinished) program he had
started to write originally at U Mich - fsck". So maybe the CB/UNIX 'check' is
descended from a version that Ted left behind at Bell Labs?
Is anyone in touch with Hal Pierson? He could surely clear up these questions.
Noel
> From: KenUnix
> So is it safe to say there is no fsck or similar for v7?
There was a version of 'fcheck' (are 'fsck' and 'fcheck' the same program?)
for V7, but I don't know if it's available. It would be really easy to
convert the 'fcheck.c' that I put up to a V7 version; the V6 and V7 file
systems are almost identical, except for the block size, I think.
> From: Dan Cross
> I believe you posted a link to end(3) here back in 2018
Yes, but that does't talk about '_end' not being defined if there
are missing externals, either! All it says is:
"Values are given to these symbols by the link editor 'ld' when, and only
when, they are referred to but not defined in the set of programs loaded."
Now that I think about it, I have this vague memory we had to look at the
source for 'ld.c' to verify what was going on!
> From: Jonathan Gray
> That is close, but slightly different to the PWB fcheck.c
Interesting. I wonder how 'fcheck' made it from CMU to Bell? Clem and I
discussed how it made it from CMU to MIT, and we think it was via Wayne
Gramlich, who'd been an undergrad at CMU, and then went to grad school at MIT.
I'm pretty sure the reason we liked it was not any auto-repair capabilities,
but ISTR it was somewhat faster than icheck/dcheck. (Interesting that they were
separate programs in V6; V5 seems to have only had check:
http://squoze.net/UNIX/v5man/man8/checkhttps://minnie.tuhs.org/cgi-bin/utree.pl?file=V5/usr/source/s1/check.c
which contained the functionality of both. I wonder why they were split?
Space?)
> From: Rich Salz
> But the amazing point was it worked regardless of bit order.
I forgot to mention thast, but yes, its input was the number in bit-serial
form. I suspect there's a connection between the property he mentioned, and
the fact that the grad student could design something which would work with
binary numbers fed in from either end, but I can't bring myself to devote the
brain cells to figure it out.
> From: John Cowan
> I didn't know that one was done at MIT.
Yes; see:
https://www.hactrn.net/sra/alice/alice.intro
There's a really funny story at the end of that about the real Ann Marie
Finn. In Rob's version, she took the role of KAREN in the earlier one. That
would be Karen Prendergast, Patrick Winston's admin; why we used her I don't
know, since I didn't really know her, but I guess she had a reputation as a bit of
a 'tough cookie'.
>> I think that the person fails their oral. I have no idea if it's a
>> true story.
> That's vicious.
Hey, this _is_ the school that used to tell incoming freshpeople, at the
welcoming picnic 'look at the person to your left, and to your right; at
graduation, one of you won't be here'. I don't remeber if they said the same
thing at mine, or if the story had just been passed down from class to class.
Noel
In looking at the first AUUGN today, I noticed the following at the end of
a letter John Lions sent home when he spent a sabbatical at Bell Labs
[image: image.png]
I've seen the first patent, but not the second one... That's got to be a
joke or inside joke, right? Anybody know anything else about it?