I did not want to disrupt the FD 2 discussion, but I could not really let
this comment go unanswered:
"Smells like C++ to me. Rust in essence is a re-implementation of C++ not
C. It tries to pack as much features as it possibly can. "
It's hard for me to see how you can say this if you have done any work in
Rust and C++.
But, short form: Rust is not C++. Full stop.
I did not feel that comment should go unanswered, lest people believe it.
On Wed, Feb 01, 2023 at 01:50:05AM +0000, segaloco via COFF wrote:
> COFF'd
Thanks Matt. Yes please, C vs. Rust should mv to the COFF list.
Cheers, Warren
Hello!
I saw someone playing chess on their pdp-11 and thought it could be an
interesting project to run on my pdp-11. At this point the RK05s are not
yet running so booting unix v6 is not possible.
I then thought that if the source code could be found it might be possible
to get it to run standalone with some modifications.
After some googling I found the archive
https://www.tuhs.org/Archive/Distributions/UNSW/7/record0.tar.gz
which contained a chess.lib file. It appeared that this archive contained
source code for some kind of chess program. I have been told that it isn't
the chess written by Ken Thompson so the question is who wrote it? There
are not many comments in the code. Could be interesting to know more about
this chess implementation.
Just looking through the source files and the mk file show that it is
missing a set of files. The mk file references a set of "b"-prefixed
assembly files, bgen.s, bmove.s, bheur.s and bplay.s which are present in
the archive. But it also references a set of files with "w"-prefix, wgen.s,
wmove.s, wheur.s and wplay.s which are missing.
I also recognise that there is an include file, "old.h" that is included
from all c-modules that most likely is present in the overload.lib which
seems to be an overlay loader.
Anyone that has an idea how this thing was built once upon a time?
/Mattis
A lot of this dates back from the old “tty” days (or at least crt
terminals that were still alphanumeric). Even the concept of putting
a job in the background with & is really a feature of trying to
multiplex multiple tasks on the same dumb terminal. This is indeed
less important with windowing things like the DMDs or modern windowing
workstatiosn when you can just get another window. The Berkeley job
control was an interesting hack. For us at BRL the problem was I
absolutely detested the C shell syntax. The Korn shell hadn’t escaped
from AT&T yet, so, I spent time figuring out how that really worked in
the C shell (not really well documented), mostly by inspection, and then
reimplemented it in the Bourne Shell (we were using the System V source
code version for that). I still couldn’t get traction at BRL for
using the Bourne shell because by that time, tcsh had come out with
command line editing. So back to the shell sources I went. By this
time, 5R2 had come out so I grabbed the shell source form that. I was
very delighted to find that the macros that made C look sorta like Algol
had been unwound and the thing was back to straight C. I reworked
emacs-ish command line editing into the shell. Subsequently, I had a
nice conversation with David Korn at USENIX, being probably at that
point the two most familiar with Bourne shell job control internals. I
also sat down with the guys writing either bash or the pdksh (can’t
remember which) and explained all how this work. As a result my name
ended up in the Linux manpages which was pretty much all I found for a
while when I googled myself.
Years later, I had left the BRL, spent three years as a Rutgers
administrator and was working for a small startup in Virginia. There
was a MIPS workstation there. I was slogging along using ed (my
employees always were amazed that if there was no emacs on the system, I
just used ed, having never learned vi). Not thinking about it, I
attempted to retrieve a backgrounded job by typing “fg.” To my
surprise the shell printed “Job control not enabled.” Hmm, I say.
That sounds like my error message. “set -J” I type. “Job control
enabled.” Hey! This is my shell. Turns out Doug Gwyn put my mods
into his “System V on BSD” distribution tape and it had made its way
into the Mach code base and so every Mach-derived system ended up with
it. Certainly, I found it convenient.
There have been other schemes other than job control to multiplex
terminals. IBM in the AIX that ran on the 370/PS2/i860 had a device
called the High Function Terminal that allowed you to swap screens on
the console. When we implemented the i860 (which was an add in card
for the micro channel), we called our console the Low Function Terminal.
Then after spending some time on MIT’s ITS and TOPS20, I got intrigued
by the fact on those systems you could have a “shell” that persisted
across logins and could be detached and reattached on another device at
another time. I set about making such an implementation. Not
particularly efficient, it essentially grabbed one of the BSD ptys and
spawned the shell there and then a small alternative login shell
forwarded the real tty to that. You could then detach it leaving the
shell running on the PTY and reattach it elsewhere. Much like ITS,
on. login it reminded you that you had a detached shell running and
offered to reattach it rather than spawning a new one (complete with the
ITS-ish: space for yes, rubout for no). It never really caught on.
Oh well, pardon my ramblings.
-Ron
All, w.r.t. FD 2, if your e-mail doesn't mention file
descriptors, can you please change the subject line?
And this, in general, for all TUHS discussions :-)
Thanks! Warren
Some folks here might be interested in this. I haven't read this (not gonna
subscribe), I know nothing about the author (Bradford Morgan White), but I
saw Steve Sinofsky tweet good things about it.
The Network is the Computer
The story of Sun Microsystems and the Java programming language
https://www.abortretry.fail/p/the-network-is-the-computer
> * What do I really mean by workstation? Ex.gr. If an installation had a
> PDP-11 with a single terminal and operator, is it not a workstation? Is it
> the integration of display into the system that differentiates?
Certainly integration is critical. The display should be integral to the
terminal, not simply an available device.
Without that stipulation Ken's original single-user PDP-7 system would
count (unless, perhaps, the system had not yet been christened "Unix").
Doug
Another of Ron’s historical diversions that came to mind.
Most of you probably know of various exploits that can happen now with
setuid programs, but this was pretty loose back in the early days. I
was a budding system programmer back in 1979 at Johns Hopkins. Back
then hacking the UNIX system was generally considered as sport by the
students. The few of us who were on the admin side spent a lot of time
figuring out how it had happened and running around fixing it.
The first one found was the fact that the “su” program decided that if
it couldn’t open /etc/passwd for some reason, things must be really bad
and the invoker should be given a root shell anyhow. The common
exploit would be to open all the available file descriptors (16 I think
back then) and thus there wasn’t one available. That was fixed before
my time at JHU (but I used it on other systems).
One day one of the guys who was shuffling stuff back and forth between
MiniUnix on a PDP-11/40 and our main 11/45 UNIX came to me with his RK05
file system corrupted. I found that the superblock was corrupted.
With some painstaking comparison to another RK05 superblock, I
reconstituded it enough to run icheck -s etc.. and get the thing back.
What I had found was that the output of the “mount” command had been
written on the superblock. WTF? I said, how did this happen.
Interrogating the user yielded the fact that he decided he didn’t want
to see the mount output so he closed file descriptor one prior to
invoking mount. Still it seemed odd.
At JHU we had lots of people with removable packs, so someone had
modified mount to run setuid (with the provision of only allowing
certain devices to be mounted certain places). At his point we had
started with the idea of putting volume labels in the superblock to
identify the pack being mounted. Rather than put the stuff in the
kernel right away, Mike Muuss just hacked reading it from the super
block in the usermode mount program so that he could put the volume
label in /etc/mtab. Now you can probably see where this is headed.
It opens up the disk, seeks to the pack label in the superblock and
reads it (for somereason things were opened RW). Then the output goes
to file descriptor 1 which just happens to be further in the superblock.
I figured this out. Fixed it and told Mike about it. I told him
there were probably other setuid programs around that had the problem
and asked if it was OK if I hacked on things (at the time I yet was not
trusted with the root password). He told me to go ahead, knock
yourself out.
Well I spent the evening closing various combinations of file
descriptors and invoking setuid programs. I found a few more and noted
them. After a while I got tired and went home.
The next day I came in and looked through our paper logbook that we
filled out anytime the machine was shutdown (or crashed). There was a
note from two of the other system admins saying they had shut the system
down to rebuild the accounting file (this was essentially the shadow
password file and some additional per-user information not stored in
/etc/passwd). The first 8 bytes were corrupted. Oh, I say, I think
I might know how that happened. Yeah, we thought you might. Your
user name was what was written over the root entry in the file. The
passwd changing program was one of the ones I tested, but I hadn’t
noticed any ill-effects for it at the time.
Notably: 32v_usr.tar.gz and sys3.tar.gz. I’ve not unpacked the tar files. If someone would like more detail about the contents I’ll produce a TOC offline for them.
David
As a result of the recent discussion on this list I’m trying to understand the timeline of graphical computing on Unix, first of all in my preferred time slot ’75 -’85.
When it comes to Bell Labs I’m aware of the following:
- around 1975 the Labs worked on the Glance-G vector graphics terminal. This was TSS-516 based with no Unix overlap I think.
- around the same time the Labs seem to have used the 1973 Dec VT11 vector graphics terminal; at least the surviving LSX Unix source has a driver for it
- in 1976 there was the Terak 8510; this ran primarily USCD pascal, but it also ran LSX and/or MX (but maybe only much later)
- then it seems to jump 1981 and to the Blit.
- in 1984 there was MGR that was done at Bellcore
Outside of the labs (but on Unix), I have:
- I am not sure what graphics software ran on the SUN-1, but it must have been something
- Clem just mentioned the 1981 Tektronix Magnolia system
- Wikipedia says that X1 was 1984 and X11 was 1987; I’m not sure when it became Unix centered
- Sun’s NeWS arrived only in 1989, I think?
Outside of Unix, in the microcomputer world there was a lot of cheap(er) graphics hardware. Lot’s of stuff at 256 x 192 resolution, but up to 512 x 512 at the higher end. John Walker writes that the breakout product for Autodesk was Interact (the precursor to AutoCAD). Initially developed for S-100 bus systems it quickly moved to the PC. There was a lot of demand for CAD at a 5K price point that did not exist at a 50K price point.
> From: Lars Brinkhoff
> It's my understanding it was started by Bob Scheifler of the CLU group.
Yes, that's correct. (Bob's office was right around the corner from me -
although I had very little knowledge of what his group was up to; I was too
busy with other things.)
I have this vague memory that his version was actually written in CLU? Can
that be correct? It would make sense, since that group was so focused on CLU
- but maybe not, see below.
X must have been done after LCS got the 750 farm (on which we ran 4.1c, to
start with) - although I don't know what kind of terminals they were using to
run X on - we didn't have any bit-mapped displays on them, I'm pretty sure.
Although maybe it was later, once Micro-Vaxes appeared?
I have this vague memory that it was based (perhaps only in design, not code
re-use) on a window system done at Stanford {looks}; yes, W (hence 'X'):
https://en.wikipedia.org/wiki/W_Window_System
The X paper listed there:
https://dl.acm.org/doi/pdf/10.1145/22949.24053
doesn't say anything about the implementation, so maybe that vague
memory/assumption that I had that it was originally written in CLU is wrong.
Liskov's 'History of CLU' paper, which lists things done in CLU, doesn't
mention it, so I must have been confused?
Do any of the really early versions of X (and W) still exist?
Noel
Hi.
I've been using trn for decades to read a very few USENET groups. Until recently I've
been using aioe.org as my NNTP server but it seems to have gone dark. Before that
I used eternal-september.org, but when I try that I now get:
| $ NNTPSERVER=news.eternal-september.org trn
| Connecting to news.eternal-september.org...Done.
|
| Invalid (bogus) newsgroup found: comp.sys.3b1
|
| Invalid (bogus) newsgroup found: comp.sources.bugs
|
| Invalid (bogus) newsgroup found: comp.misc
|
| Invalid (bogus) newsgroup found: comp.compilers
| ....
And those all are (or were!) valid groups. If anyone has suggestions for a good
free NNTP server, please let me know. Privately is fine. I'm at a bit of
a loss otherwise.
Thanks,
Arnold
i worked for some years on video and film archive restoration.
baking old, badly stored magnetic tapes prior to reading them is a common practice.
my favourite was a story of a rock band (i think the stones) who wanted to play an old 24 track master tape but discovered it seemed to be stuck together.
there is a nasty affliction of mag tapes called sticky vinegar syndrome, so they did the right thing and sent a section of tape for analysis.
the results came back: the tape had suffered impregnation with “vodka and coke”.
some things never change.
-Steve
Hi All,
I just wanted to let y'all know that tesseract ocr has significantly
improved and is much easier to use that it used to be. I have been using
it with my workflow for a bit and it's crazy how much better it is than
it was back when I tried it last (admittedly 5-6 years ago). For those
of you doing your own scans, or those of you finding sad little pdfs
without ocr, the process is fairly simple.
Let's say you find "The Master Manual of Fortran.pdf" out there in the
wild (or scan it). Here's how to turn it into a glorious ocr'd version:
Export your pdf as a multi-image tiff - it'll be ginormous, but you can
delete it later (on Mac, this is just export from preview and select
tiff, but gs will do it to, if I remember correctly) and then:
tesseract The\ Master\ Manual\ of\ Fortran.tiff out -l eng PDF
et voila, I nice, if large pdf, called out.pdf or somesuch will appear
with ocr text that actually matches your scan (it seems to have caught
up to adobe's ocr, or is quite close in my view, ymmv).
I speak English, so I installed tesseract and tesseract-eng, but it
supports a bunch of other languages if you need them. Apparently
google's been supporting and developing it for while now and if my
results are any indicator, it's paying off (boy do I remember all the
gobbledegook it used to produce).
tesseract will import from different image types, multiple images, etc.
I just like the simplicity of tiff->pdf.
Anyhow, thought y'all might like to know as many of you live off the
scans :).
Will
If you don't want to play Space Travel on PDP-7 Unix, you can now do it
more easily running this C port. The controls are--so far--just as
quirky as the original.
https://github.com/mohd-akram/st
At 01:20 AM 1/26/2023, John Cowan wrote:
>WP says the Terak 8510/a was the first graphical workstation; it came out in 1976-77 and ran the UCSD p-System. I had never heard of it before.
I have a dozen or so Teraks (a PDP-11/03 based system) as well as
many floppies and other inherited items and notebooks from one
of the Terak founders. This may seem like a lot but there's another
guy who might still have a larger collection.
Mini-Unix is described here:
http://www.tavi.co.uk/unixhistory/mini-unix.html
Sixth edition, no MMU. The Bell memo there is dated January 1977.
There was a Mini-Unix for the Terak described here in May 1979 but
I don't think I have a copy. See page 14...
https://conservancy.umn.edu/bitstream/handle/11299/159028/UCC_Special%20_Is…
Terak floppies are described here:
http://www.60bits.net/msu/mycomp/terak/termedia.htm
A memo there says they got their copy in April 1980.
There's no indication that this Mini-Unix can *use* the Terak's mono
bitmapped display, short of writing your own routines. Pinning "first"
on computers is always a tricky process.
- John
>> * What do I really mean by workstation? Ex.gr. If an installation had a
>> PDP-11 with a single terminal and operator, is it not a workstation? Is
>> it the integration of display into the system that differentiates?
>
> I remember people calling something a workstation,
> if it has the four "M"
>
> at least 1 MByte memory
> at least 1 megapixel display
> at least 1 mbit/s network
> can't remember the fourth(was there a fourth?)
I remember it as:
at least 1 MByte memory
at least 1 megapixel display
at least 1 MIPS
cost at most 1 mega penny (10K, maybe 35K in today’s money)
That matches with Wikipedia, for whatever that is worth: https://en.wikipedia.org/wiki/3M_computer
but note that it talks about 3M not 4M.
With hindsight, not adding in networking speed looks strange -- but maybe the world had already settled on LAN speeds above 1Mb/s by 1980 (Ethernet, ARCNet)
[Bcc: to TUHS as it's not strictly Unix related, but relevant to the
pre-history]
This came from USENET, specifically, alt.os.multics. Since it's
unlikely anyone in a position to answer is going to see it there, I'm
reposting here:
From Acceptable Name <metta.crawler(a)gmail.com>:
>Did Bell Labs approach MIT or was it the other way around?
>Did participating in Project MAC come from researchers requesting
>management at Bell Labs/MIT or did management make the
>decision due to dealing with other managers in each of the two
>organizations? Did it grow out of an informal arrangement into
>a format one?"
These are interesting questions. Perhaps Doug may be in the know?
- Dan C.
Good morning all, currently trying to sort out one matter that still bewilders me with this documentation I'm working on scanning.
So I've got two copies of the "Release 5.0" User's Manual and one copy of the "System V" User's Manual. I haven't identified the exact differences, lots of pages...but they certainly are not identical, there are at least a few commands in one and not the other.
Given this, and past discussion, it's obvious Release 5.0 is the internal UNIX version that became System V, but what I'm curious about is if it was ever released publicly as "Release 5.0" before being branded as System V or if the name was System V from the moment the first commercial license was issued.
The reason I wonder this is some inconsistencies in the documentation I see out there. So both of my Release 5.0 User's Manuals have the Bell logo on the front and no mention of the court order to cease using it. Likewise, all but one of the System V related documents I received recently contain a Bell logo on the cover next to Western Electric save for the Opeartor's Guide which curiously doesn't exhibit the front page divestiture message that other documents missing the Bell logo include. Furthermore, the actual cover sheet says "Operator's Guide UNIX System Release 5.0" so technically not System V. In fact, only the User's Manual, Administrator's Manual, Error Message Manual, Transition Aids, and Release Description specifically say System V, all the rest don't have a version listed but some list Release 5.0 on their title page.
Furthering that discrepancy is this which I just purchased: https://www.ebay.com/itm/314135813726?_trkparms=amclksrc%3DITM%26aid%3D1110…
Link lives as of this sending, but contains a closed auction for an Error Message Manual from the "Release 5.0" documentation line but no Bell logo. Until the Operator's Guide and this auction link, I haven't seen any "Release 5.0" branded stuff without a Bell logo, and before I bought the System V gold set, I hadn't seen System V branded stuff *with* the Bell logo.
This shatters an assumption that I had made that at the same time the documentation branding shifted to System V was the same time the removal of the Bell logo happened, given that divestiture was what allowed them to aggressively market System V, but now this presents four distinct sets of System V gold documentation:
Release 5.0 w/ Bell logo
Release 5.0 w/o Bell logo
System V w/ Bell logo
System V w/o Bell logo
I'm curious if anyone would happen to know what the significance here is. The covers are all printed, I can't see any indication that a bunch of 5.0 manuals were retroactively painted over nor that any System V manuals got stamped with a Bell post-production. What this means is "Release 5.0" documentation was being shipped post-divestiture and "System V" was being shipped pre-divestiture. If Release 5.0 was publicly sold as System V, then what explains the post-divestiture 5.0 manuals floating around in the wild, and vice versa, if USG couldn't effectively market and support UNIX until the divestiture, how is it so many "Release 5.0" documents are floating around in well produced commercial-quality binding, both pre and post-divestiture by the time the name "System V" would've been king. Were they still maintaining an internal 5.x branch past System V that warranted its own distinct documentation set even into the commercial period? This period right around '82-'83 is incredibly fascinating and I feel very under-documented.
- Matt G.
Good day everyone, just emailing to notify of three more documents I've uploaded to archive.org since my last slew of them:
https://archive.org/details/unix-programming-starter-package - Up first is the UNIX Programming Starter Package. This is one of a pair of manuals that saw publication in the Bell system around the time of UNIX/TS 4.0. The documents here appear to be a subset of those which shipped with Documents for UNIX 4.0. Nothing particularly new here. There is a companion manual, UNIX Text Editing & Phototypesetting Starter Package, which I also have but haven't hit the scan bench with yet. Like this one, that is just a subset of papers from the Documents for UNIX collection. Based on the TOC, this second one also shipped with one of those PWB/MM multi-fold pamphlets, but didn't receive one when I got this. Luckily that was also scanned as part of the 4.0 collection. So nothing really new here, save that these are 1st generation scans vs the scans of photocopies for the 4.0 release. That said, I've seen this set with the same cover motif except with an AT&T death star logo in the upper right. Didn't look into it too much at the time, but I'd be curious if anyone might have those and if they have the programming one, if it still refers to Release 4.0 in the documentation roadmap.
https://archive.org/details/unix-system-users-guide-release-5-0 - This is the User's Guide that shipped with Release 5.0/System V. This covers the usual suspects as well as some notes on RJE and SCCS from a user's perspective.
https://archive.org/details/unix-system-administrators-guide-5-0 - And this is the Administrator's Guide likewise from SysV era. This one contains setup and maintenance notes for both DEC (PDP & VAX) and 3B20(S) machines, as well as papers on accounting, LP printing, RJE, filesystem checking, and the System Activity Package. Additionally, the guide includes the original Modification Request form.
- Matt G.
Found this tweetstream, here folded together, when looking for something
else (now lost) in my twitter archive:
==========
Things I miss from the v8 shell.
1) All shell output was valid shell input.
2) Typing dir/cmd would find the command $PATH/dir/cmd. Subdirectories of
your bin, in other words.
3) Functions were exportable. For one brief shining POSIX meeting, that was
true in POSIX too but then...
4) The implementation was lovely and easy to understand. (No, it wasn't
shalgol. Bourne fixed that for us.)
5) That I could learn things from it, like how to write a recursive descent
parser.*
6) It ran in cooked mode.
As expected, all that work making it a great shell is lost to history.
https://t.co/IzApAUSmzN is silent. Well, the code is released now.
==========
-rob
* elegantly.