> From: Will Senn
> All that cooked and raw stuff is gobbledegook that I'll have to read up
> on.
The raw/cooked stuff isn't the source of the worst hair in the TTY driver;
that would be delays (on the output side), and delimiter processing (on the
input side).
The delays are for mechanical terminals, because they need delays after a
motion command (e.g. NL, CR, etc) before the next printing character is sent;
differing for different motion control commands, further complexified by the
current print head position - a Carriage Return from column 70 taking a lot
longer than one from column 10. The driver keeps track of the current column,
so it can calculate this! It does the delays by putting in the output queue a
chacter with the high bit set, and the delay in the low bits; the output start
routine looks for these, and does the delay.
On the input side, every time it sees a delimiter (NL, EOF), it inserts a 0xFF
byte in the input queue, and increments a counter to keep track of how many it
has inserted. I _think_ this is so that any given read call on a 'cooked'
terminal will return at most one line of input (although I don't know why they
don't just parse the buffer contents at read time - although I guess they need
the delimiter count so the read call will wait if there is not a complete line
there yet).
I should look and see how the MIT TTY driver (which also supported 8-bit input
and output) dealt with these...
Noel
> From: Will Senn
> I didn't know that the delete key served a purpose, interrupt
At MIT, the PWB1 (effectively) system that was standard at Tech Sq had had its
teletype driver completely re-written by the time I started using it, and that
was changed, so I never saw this IRL.
Recently, I needed a Unix to run under Ersatz-11, to talk to physical QBUS
-11's and download them over their console line, so I went with V6 (since I
had not at that point managed to recover the MIT system). Wow. Talk about
a rude awakening!
That was one of the things that was, ah, problematic - and in V6, there's no
way to change the interrupt character. (And no, I didn't feel like switching
to a later version!)
An even bigger problem was that in vanilla V6, there's _no way_ to do 8-bit
input _and_ output. Sheesh. I managed to fix that too, after a certain amount
of pain. (I missed a code path, or something like that, and it took me quite a
while to figure out why my fixes didn't work.)
Noel
Many thanks for on and off list replies to my query.
I happened to stumble across a paper by Krik McKusick (right here in the THUS archives) that has some more background:
http://www.tuhs.org/Archive/Documentation/Unix_Review/Berkeley_Unix_History…
and in particular on page 38 of the magazine (page 6 of the PDF).
It says (with some reformatting for clarity):
"The contract called for major work to be done on the system so the
DARPA research community could better do its work. Based on the needs
of the DARPA community, goals were set and work began to define the
modifications to the system.
In particular, the new system:
- was expected to include a faster file system that would raise
throughput to the speed of available disk technology,
- would support processes with multi-gigabyte address space requirements,
- would provide flexible interprocess communication facilities that
would allow researchers to do work in distributed systems,
- would integrate networking support so that machines running the new
system could easily participate in the ARPAnet.”
So, IPC facilities to support distributed systems were apparently an explicit goal, and that helps explain the composition of the committee.
It continues:
"To assist in defining the new system, Duane Adams, Berkeley's contract
monitor at DARPA, formed a group known as the "steering committee” to
help guide the design work and ensure that the research community's needs
were addressed.
This committee met twice a year between April, 1981 and June, 1983, and
included [name list as before]. Beginning in 1984, these meetings were
supplanted by workshops that were expanded to include many more people.”
This shift in membership after 4.2BSD shipped had already been noted. The committee seems to have had a productive start:
"An initial document proposing facilities to be included in the new system
was circulated to the steering committee and other people outside Berkeley
in July, 1981, sparking many lengthy debates.”
I would assume that those initial discussions included debates on what would become the socket API. I’ve asked Kirk McKusick if he still remembered that initial discussion document. The reply was:
"The document to which you refer became known as the "BSD System
Manual". The earliest version that I could find was the one
distributed with 4.2BSD in July 1983 which I have attached.”
If anyone knows of earlier versions of that document (prior to 1982), I’d be highly interested.
The paper also notes:
"During the summer, Joy concentrated on implementing a prototype version
of the interprocess communication facilities.”
I’ll scan the early (partial) SCCS logs for remnants of that (a long shot, but worth a try).
Paul
> From: Will Senn
> 1. How do you escape # in order to write a C program if # is the erase
> character in the terminal?
"Use the source, Luke!" V7 is simple enough that it's pretty quick to find
the answers to things like this. E.g.
http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/sys/dev/tty.c>
will answer this question (in "canon()").
> 3. Is there a way to echo the ascii value of a keypress in v7?
A quick look through tty.c suggests this doesn't exist in V7 - without running
a user program that puts the TTY in 'raw' mode and prints out what it
sees. Not sure if there is one off the rack, or if you'd have to whip up a
20-line program to do it.
Noel
After installing a fresh simh V7 instance with 2 RP06's and a TU10, I
tried building the kernel and running it. I got a panic. I didn't mess
with the defaults, so I'm at a loss as to how the stock kernel is
different from the one I built. I tried building as root, then sys, same
effect. Here's what I did:
nboot.ini contents:
set cpu 11/70
set cpu 2M
set cpu idle
set rp0 rp06
att rp0 rp06-0.disk
set rp1 rp06
att rp1 rp06-1.disk
boot rp0
pdp11 nboot.ini
boot
hp(0,0)unix (actually renamed hptmunix)
mem = 2020544
CTRL-D
login: root
cd /usr/sys/conf
make allsystems
... build stuff, no errors or warnings
mv hptmunix /
sync
sync
CTRL-E
quit the sim
pdp11 nboot.ini
boot
hp(0,0)hptmunix
mem = 2021696
err on dev 0/0
bn=1 er=100000,4507
err on dev 0/0
bn=1 er=100000,4521
err on dev 0/0
... etc.
Am I doing something wrong or missing an important configuration step. I
am just trying to rebuild the stock kernel before I try any
reconfigurations.
--
GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF
Hi all,
I just finished creating an updated PDF version of a blog post I did a
couple of years back, describing how to install and use Unix v7 in SimH.
It's updated for 2017 and MacOS High Sierra 10.13. I started the update
because I was wanting to do some research in v7 and thought it would be
good to have a current set of instructions but really because I was
interested in learning a bit about LaTeX and creating prettier, more
useful documents. The notes still work fine as originally written, but I
organized things a little differently and tweaked some of the language.
I thought somebody else might like having a PDF version around so I
uploaded the result, call it revision 1.1, and made it publicly
accessible (the blog still needs updating, somebody oughta do something
about link impermanence, but that's all for another day). Feel free to
comment or complain. I added a section in honor of dmr at one
commenter's suggestion. Here's the link:
https://drive.google.com/open?id=0B1_Jn6Hlzym-Zmx1TjR3TENDQTA
Later,
Will
--
GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF
When I was working at UniPress in New Jersey, we had an SGI Iris named pink on which we developed the 4Sight versions of NeWS Emacs (NeMACS).
Speaking of SGI leaks:
Those things are fucking heavy!
It was raining torrentially outside and the UniPress office started to flood, so we had to keep taking shelves down off the wall and wedging them underneath the Iris to jack it up above the water, as it kept getting deeper and deeper.
Ron will remember the emergency bailing technique MG and I developed of repeatedly filling the shop vac with water then flushing it down the toilet.
The Indigos were another story entirely: They couldn't touch the raw graphics performance of an Iris, since the rendering was all in software, but you could actually stuff one of them in the overhead compartment on an airplane!
And then there was the SGI Indy... They made up for being small on the outside, by being HUGE and BLOATED in the inside:
"Indy: an Indigo without the 'go'". -- Mark Hughes (?)
This legendary leaked SGI memo has become required reading for operating system and programming language design courses:
http://www.cs.virginia.edu/~cs415/reading/irix-bloat.txt <http://www.cs.virginia.edu/~cs415/reading/irix-bloat.txt>
-Don
> On 12 Oct 2017, at 15:16, Don Hopkins <SimHacker(a)gmail.com> wrote:
>
> https://www.youtube.com/watch?v=hLDnPiXyME0 <https://www.youtube.com/watch?v=hLDnPiXyME0>
>
>> On 12 Oct 2017, at 15:04, Michael-John Turner <mj(a)mjturner.net <mailto:mj@mjturner.net>> wrote:
>>
>> Hi,
>>
>> I came across this on Lobsters[1] today and thought it may be of interest to the list: http://www.art.net/~hopkins/Don/unix-haters/tirix/embarrassing-memo.html <http://www.art.net/~hopkins/Don/unix-haters/tirix/embarrassing-memo.html>
>>
>> It appears to be an internal SGI memo that's rather critical of IRIX 5.1. Does anyone know if it's true?
>>
>> [1] https://lobste.rs/ <https://lobste.rs/>
>>
>> Cheers, MJ --
>> Michael-John Turner * mj(a)mjturner.net <mailto:mj@mjturner.net> * http://mjturner.net/ <http://mjturner.net/>
>
We lost co-inventor of Unix and sheer genius Dennis Ritchie on this day in
2011; there's not really much more that I can say...
Sic transit gloria mundi.
--
Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer."
According to the Unix Tree web pages, the development of 4.2BSD was at the request of DARPA guided by a steering committee consisting of:
Bob Fabry, Bill Joy and Sam Leffler from UCB
Alan Nemeth and Rob Gurwitz from BBN
Dennis Ritchie from Bell Labs
Keith Lantz from Stanford
Rick Rashid from Carnegie-Mellon
Bert Halstead from MIT
Dan Lynch from ISI
Gerald J. Popek of UCLA
Although I can place most people on the list, for some names I’m in the dark:
* Alan Nemeth - apparently the designer of the BBN C-series mini’s (I think the C30 was designed to replace the 316/516 as IMP). It is hard to find any info on the C-series, but I understand it to be a mini with 10 bit bytes, 20 bit words and 20 bit address space, more or less modeled after the PDP11 and an instruction set optimised to be an easy target for the C compilers of the day. Any other links to Unix?
* Keith Lantz - apparently specialised in distributed computing. No clear links to Unix that I can find.
* Rick Rashid - driving force behind message passing micro-kernels and the Accent operating systems. Evolved into Mach. Link to Unix seems to be that Accent was an influential design around 81/82
* Bert Halstead - seems to have built a shared memory multiprocessor around that time, “Concert”.
* Dan Lynch - ISI program manager for TCP/IP and the switch-over from NCP on Arpanet.
* Gerald Popek - worked on a secure version of (Arpanet enabled) Unix and on distributed systems (LOCUS) at the time.
Next to networking, the link between these people seems to have been distributed computing — yet I don’t think 4.2BSD had a goal of being multiprocessor ready.
All recollections about the steering committee, its goals and its members welcome.
Paul