Brantley Coile just asked:
Looks like the mailman software works!
Say, do you know if there are any copies of the Gnot terminal schematics?
Brantley
I don't know, does anybody else know?
Cheers, Warren
> 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
> From: Rob Pike
> Convenient though the shorthand may be, it always bothered me as
> inconsistent and misleading.
As someone who made very extensive use of procedure pointers (most notably in
upcalls, which never caught on, alas), I couldn't agree more.
Two very different things are happenging, but with the shorthand notation,
they share an identical representation. And for what? To save three characters?
Noel
> From: Derek Fawcus
> I think he means something like:
> (*((*((*((*f)()->g))()->h))()->i))()
So I've been confused by this thread, and I'm hoping someone can deconfuse me
- but I think I may have figured it out.
What's confusing me is that in C, the -> operator is followed by "an
identifier [which] designates a member of a structure or union object" (I
checked the spec to make sure my memory hadn't dropped any bits) - but g, h
above are arguments; so I couldn't figure out what was going on.
I think what may have happened is that initially the discussion was about C
("Pretty sure it was not in v7 C"), but then it switched to C++ - with which
I'm not familiar, hence my confusion - without explicitly indicating that
change (although the reference to Bjarne Stroustrup should been a clue). (And
that's why I thought "f()->g()->h()->i()" was ad hoc notation for "calls f(),
then calls g()".)
Am I tracking now?
Noel
> From: Rob Pike
> To make chaining of calls simpler. Write
> f()->g()->h()->i()
> the other way
You mean:
(*f)((*g)((*h)((*i)())))
I dunno, it doesn't seem that much worse to me.
What I like about the explicit notation (i.e. (*f) ()) is that it forces the
programmer to recognize what's going on.
On the other hand, I guess, the whole concept of compiled languages is to get
the programmer's nose out of the low-level details, so they can focus on the
high level. So I guess one could see allowing f() in place of (*f)() as an
instance of that.
Then again, down that road you find a lot of modern code, where a programmer
writes something that is e.g. horribly inefficient and slow, precisely because
they are so divorced from the low-level of what the code they wrote turns into...
Still, I'd be a little worried about a program doing (*f)((*g)((*h)((*i)()))),
no matter what the notation was; it would be awfully hard to recognize what
all the possible call chains are. But then again I guess a lot of e.g. AI code
does things like that...
Noel
> From: moanga
>> To make chaining of calls simpler. Write
>> f()->g()->h()->i()
Ah; I was confused by his notation; I didn't realize he meant the C operator
'->'.
Noel
>> why the single fd approach was abandoned? To its credit, it appears to allow for limited 2-way communication.
> My understanding is that the single file descriptor broke the open-file
> model, which had a single read/write pointer. Two-way communication via
I’m not sure I understand.
In the implementation, the read pointer is file location offset (“fp->f_offset”) and the write pointer is the file size (“ip->i_size”). The location offset on the writing end of the pipe is always zero, and on the reading end it moves between zero and PIPSIZ (but that is unobservable).
I just tried making both pipe ends readable+writeable in my “V6.5” kernel and that appears to work. It allows for bi-directional communication in a half-duplex sense (i.e communicating walky-talky style). The other benefit is using just one file descriptor, at a time when a process had just 15 to work with.
Maybe the issue was that two sides writing to a full pipe at the same time will cause deadlock?
I asked a friend who was around at the time (I think he and
Rob worked together at times). Here's what he recalls:
I'll keep it going. rc was a description that it was the worst movie
ever. And was for many years listed as the worst system ever (except
for all the others) in a mish-mash of creative naming... I have no clue
if this is true, and I'm honestly having trouble recalling his name.
It wasn't my intention.
There was a description that it was a startup script from very early
times in Unix, shortened, as Ken was wont to do, from runcom, the nearest
thing CTSS had to a shell--it could run up to six prespecified commands
in background. It wasn't a 'big name' like Evi, but I don't know if I buy
it, that plan 9 from outer space poster hanging. Plan 9 from Bell Labs
as all these themes flowed together in a mish-mash of creative naming...
With a different name, it could be the lack of information, those who
guess at reasons for naming generate volumes of apocrypha.
The real reason is usually, ``because''.* Trust me, there are even
worse movies... Someone posted some pictures of the names tell you
anything helpful. Despite the lack of televised sports getting to me
in these shelter-in-place days, but, I mean, sure, I guess I'll throw
in some bucks for a pay-per-view of a Pike/Thompson cage match. FIGHT!
Followups set.
Things are named usually because the name is "Plan 9 from outer space
poster hanging. None of the office area at Murray Hill to this list.
Plan 9 is the worst system ever (except for all the others) in a
knod to Churchill (supposedly based on his comment about Democracy).
And from there it was 25 years ago and beer was involved). It makes
a great story, but I don't think there's much doubt about it. And was
for many years listed as the worst movie ever, including the formative
years of plan 9. Yes, but is there anything besides the name? There is
a widespred anecdote that "Plan 9" name comes from the movie until the
end (what a pain!).
_-_-_-_-Mark
Norman Wilson
Toronto ON
> why the single fd approach was abandoned? To its credit, it appears to allow for limited 2-way communication.
My understanding is that the single file descriptor broke the open-file
model, which had a single read/write pointer. Two-way communication via
Doug
Was looking into pipes.
For the 3rd Edition TUHS does not have source, but is does have a man page. In V3, pipe returns a single file descriptor that echoes whatever is written back upon reading. The pipe buffer capacity is 504 bytes.
The surviving ‘nsys’ source for V4 does not yet include the source for pipes, but the man page for 4th edition pipes has - more or less - the well known semantics, including the 4096 byte buffer capacity.
Does anyone remember:
- why the single fd approach was abandoned? To its credit, it appears to allow for limited 2-way communication. Maybe the reason was that it becomes harder to detect broken pipes?
- whether the V3 implementation was based on an in-memory approach and not the later 'anonymous backing file’? The 504 byte buffer capacity suggests a single buffer page minus some header info.
Greetings,
So this happened: https://bsdimp.blogspot.com/2020/04/finding-kermit-4x.html
tl;dr: while obsessing over 4C(052) kermit that's in Rainbow Venix, I found
a lot of cool "lost" source code versions of Kermit... All except the one I
was looking for.
Warner
Whilst spelunking in the V8 source code I came across this dozen lines:
http://chiselapp.com/user/pnr/repository/v8unix/artifact/2782d26fa2930724?l…
It implements the /dev/stdin, /dev/stdout and /dev/stderr devices (the variable ‘file_no’ in above code snippet is the constant 40, which is the major number of these devices). It would seem that this handful of lines could have been in Unix as early as 4th Edition — but they weren’t. Maybe it was not seen as useful.
As far as I can tell this bit of code originates in 8th Edition, with no earlier precursors. It does not seem to be in its man pages.
Who added this neat little innovation?
So in the archives we have tapes from 1977, 1980-83 and 1987-89.
So I thought I'd ask if there's other tapes that aren't in the archive...
google can't even find the tapes we have in our archive, let alone others...
Warner
I'll keep it going. rc was a startup script from very early
times in Unix, shortened, as Ken was wont to do, from runcom,
the nearest thing CTSS had to a shell--it could run up to
six prespecified commands in background. The name runcom
came to be applied to the scripts as well as to their
interpreter.
Doug
-------------------------------------
It wasn't my intention.
-rob
On Sun, Apr 19, 2020 at 11:12 AM Ken Thompson <ken(a)google.com> wrote:
>
> rob,
> you shouldn't have shut down this discussion.
It wasn't my intention.
-rob
On Sun, Apr 19, 2020 at 11:12 AM Ken Thompson <ken(a)google.com> wrote:
>
> rob,
> you shouldn't have shut down this discussion.
>
>
> On Sat, Apr 18, 2020 at 3:27 PM Rob Pike <robpike(a)gmail.com> wrote:
>>
>> As it says there,
>>
>> The hermeneutics of naming yields few insights. Things are named usually because the name is nice (sam), or there is some private reference hard to decode (8½), or in honour (perhaps backhanded) of another system (mothra), or an indication of expectation (Plan 9, acme), or just because (acid). None of the names tell you anything helpful.
>>
>> Despite the lack of information, those who guess at reasons for naming generate volumes of apocrypha. The real reason is usually, ``because''.
>>
>> -rob
>>
>>
>>
>> On Sun, Apr 19, 2020 at 3:50 AM Royce Williams <royce(a)techsolvency.com> wrote:
>>>
>>> On Sat, Apr 18, 2020 at 9:45 AM Warner Losh <imp(a)bsdimp.com> wrote:
>>>>
>>>>
>>>> On Sat, Apr 18, 2020 at 11:24 AM Pierre DAVID <pdagog(a)gmail.com> wrote:
>>>>>
>>>>> On Sat, Apr 18, 2020 at 06:20:18PM +0100, Richard Tobin wrote:
>>>>> >> There is a widespred anecdote that "Plan 9" name comes from the
>>>>> >> movie "Plan 9 From Outer Space".
>>>>> >
>>>>> >Given that the full name is "Plan 9 from Bell Labs" I don't think
>>>>> >there's much doubt about it.
>>>>> >
>>>>>
>>>>> Yes, but is there anything besides the name?
>>>>
>>>>
>>>> Plan 9 is the worst movie ever. And was for many years listed as the worst movie ever, including the formative years of plan 9.
>>>>
>>>> A professor(?) at CU once told me, though I don't know if I buy it, that plan 9 was Unix Plan B at first. There was a description that it was the worst system ever (except for all the others) in a knod to Churchill (supposedly based on his comment about Democracy). And from there it was a quick jump to Plan 9 from Bell Labs as all these themes flowed together in a mish-mash of creative naming... With a different name, it could break with Unix in interesting ways...
>>>>
>>>> I have no clue if this is true, and I'm no longer in contact with the professor that told me this since it was mid to late 90s, and I'm honestly having trouble recalling his name. It wasn't a 'big name' like Evi, but I think it was someone at CU I had a beer with (which means it could have been a grad student to post-doc as well, it was 25 years ago and beer was involved). It makes a great story, but I don't know if it's anything more than that. I put it out there because I know Rob or Ken is likely to correct something that's this detailed and specific if it's really wrong :)
>>>
>>>
>>> See also:
>>>
>>> http://9p.io/wiki/plan9/lfaq/index.html#GENERAL_INFORMATION
>>>
>>> Royce
> There is a widespred anecdote that "Plan 9" name comes from the
> movie "Plan 9 From Outer Space".
Given that the full name is "Plan 9 from Bell Labs" I don't think
there's much doubt about it.
-- Richard
--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.
There is a widespred anecdote that "Plan 9" name comes from the
movie "Plan 9 From Outer Space".
Since I didn't find anything more than a reference to this
anecdote (see https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs
for example), I forced myself to watch the movie until the end
(what a pain!).
Guess what? I couldn't find the link between the film and the
beloved OS.
I'm sure there are people here who know more. Thanks in advance
for sharing your knowledge with us.
Pierre
I love how in a discussion of how difficult it was to publish a book on Unix with the correct punctuation characters 42 years ago, we still can’t even quote the title of the book in a discussion about Unix without the punctuation characters degrading and mutating each round trip.
Worse truly is better! ;)
-Don
According to “20 years of BSD”, there was a steering committee to inform the development of what would eventually be 4.2BSD Unix. The committee had the following members:
Duane Adams and Bob Baker: DARPA
Bob Fabry, Bill Joy, Sam Leffler: CSRG
Dennis Ritchie: Bell Labs
Alan Nemeth, Rob Gurwitz: BBN
Dan Lynch: ISI
Keith Lantz: Stanford
Rick Rashid: CMU
Bert Halstead: MIT
Jerry Popek: UCLA
I’m intrigued by the composition and the rationale for each member. Some of it is obvious, some of it is not. According to “20 years of BSD” what DARPA wanted was:
"In particular, the new system was expected to include a faster file system that would raise throughput to the speed of available disk technology, support processes with multi-gigabyte address space requirements, provide flexible interprocess communication facilities that allow researchers to do work in distributed systems, and would integrate networking support so that machines running the new system could easily participate in the ARPAnet."
As I understand Duane Adams was the contract manager and Bob Baker a DARPA vice-president. The CSRG crowd are also clear, they were going to do the work.
Then it becomes less clear.
I can certainly see the logic of asking dmr to provide his guidance, also in view of Bell Labs expertise in working with large scale communication systems. I can also see the logic of having the BBN and ISI folk there, representing the Arpanet community and doing the work on the new TCP/IP protocol stack.
I’m not sure about the four others. They seem to be one each for 4 main computer science schools in the US at the time. Rashid and Popek had moreover recently completed distributed systems (Aleph and LOCUS). Halstead seems to have been working on messaging systems at the time. I’m not sure what Lantz’ spike was at the time.
All in all, a strong focus on distributed systems and messaging. No people with apparent links to virtual memory research or disk access research. Other than dmr, no research people from industry. For example, nobody from Xerox Parc. Nobody from IBM, HP, DEC, DG, etc.
Any and all recollections about the committee and its composition welcome.
Hoi,
found on Wikipedia:
As well as the Bourne shell, he wrote the adb debugger
and The UNIX System, the second book on the UNIX system,
intended for a general readership.
https://en.wikipedia.org/wiki/Stephen_R._Bourne
Thus I now wonder what the first book on Unix, intended for a
general readership was.
Bourne's book was published 1983.
(``The UNIX Programming Environment'' was published 1984.)
Was it Banahan and Rutter's ``UNIX -- the Book''? It says 1982.
Could anyone share some background on that one? (The authors were
from Bradford University.)
I only have the German translation by Axel T. Schreiner, dated
1984. Haven't read the English original, but Schreiner's version
definitely is worth to read (if you speak German). He added lots
of footnotes, and it becomes apparent that he knows the system
better than the authors. ;-)
I'd like to get an understanding of the books in relation to each
other. How does the Banahan/Rutter book fit into the picture? Why
didn't Bell Labs write a user's book earlier? Were Bourne's and
Kernighan/Pike's books reactions to it?
meillo
> OK, I've dug out my copies. They have perforated, 3-hole punched pages
...
> I can't find any obvious typesetting errors.
That sets my mind at rest after three decades. What I saw
back in the day was littered with @ signs, and was not punched
for a ring binder. Thanks for checking.
Doug