pifty
/
tutes-dump
Archived
1
1
Fork 1
This repository has been archived on 2020-07-15. You can view files and clone it, but cannot push or open issues or pull requests.
tutes-dump/site-tutorials/unix50th.html

342 lines
14 KiB
HTML

<style type="text/css">
@import url('http://sdf.org/tutorials/tutorials.css');
</style>
<h4>-+- H Y S T E R I C A L -+- U N I X E S -+-</h4>
<i>this is meant to be a tutorial and/or tips 'n tricks for the hysterical unixes on <a href=https://unix50.org>https://unix50.org</a>.</i><p>
Available instances are:<p>
<pre>
[a] UNICS (Version Zero) PDP-7 Summer 1969
[b] First Edition UNIX PDP-11/20 November 1971
[c] Fifth Edition UNIX PDP-11/40 June 1974
[d] Sixth Edition UNIX PDP-11/45 May 1975
[e] Seventh Edition UNIX PDP-11/70 January 1979
[f] Research UNIX 8 VAX-11/780 1981
[g] AT&T UNIX System III PDP-11/70 Fall 1982
[h] AT&T UNIX System V PDP-11/70 1983
[i] AT&T UNIX System V 3b2/400 1984
[j] 4.3 BSD MicroVAX June 1986
[k] 2.11 BSD PDP-11/70 January 1992
</pre>
<p>
<li>Some features, such as persistent images, multiple TTYs and networking are only available on the SDF MetaArray
<p>
<h2>1969 &ndash; 50 Years of Unix &ndash; 2019<br/>
1987 &ndash; 32 Years of SDF &ndash; 2019</h2>
<h1>unix50th &mdash; In Search of Ancient Unix</h1>
<ul>
<li><a href="#section-1">Introduction</a>
<ul>
<li>
<a href="#subsection-1">Notation</a>
</li>
</ul>
</li>
<li><a href="#section-2">UNICS (Version Zero)</a></li>
<li><a href="#section-3">First Edition UNIX</a></li>
<li><a href="#section-4">Fifth Edition UNIX</a></li>
<li><a href="#section-5">Sixth Edition UNIX</a></li>
<li><a href="#section-6">Seventh Edition UNIX</a></li>
<li><a href="#section-7">Research UNIX 8</a></li>
<li><a href="#section-8">AT&amp;T UNIX System III</a></li>
<li><a href="#section-9">AT&amp;T UNIX System V (PDP-11/70)</a></li>
<li><a href="#section-10">AT&amp;T UNIX System V (3b2/400)</a></li>
<li><a href="#section-11">4.3 BSD</a></li>
<li><a href="#section-12">2.11 BSD</a></li>
<li><a href="#section-13">Another Section Heading</a>
<ul>
<li>
<a href="#subsection-1">Subsection Heading</a>
</li>
</ul>
</li>
<li><a href="#notes">Notes</a></li>
<li><a href="#refs">References</a></li>
</ul>
<h2 id="section-1">Introduction</h2>
<p>For the double celebration of the 50th anniversary of the creation of the Unix operating system and the 32nd anniversary of the establishment of the SDF Public Access Unix system, a collection of simulated historical Unix systems has been prepared for your exploration and entertainment.</p>
<p>You can connect to the systems from the web page: <a href="https://unix50.org"><code>https://unix50.org</code></a>.</p>
<p>If you have a MetaArray account, you can also access the historical systems by logging in and entering the following shell command: <code>unix50th</code>
<p>The rest of this documents consists of notes and command &ldquo;cheat sheets&rdquo; to help new users on each of the historical systems. It is assumed the reader is already somewhat familiar with contemporary Unix-like systems.</p>
<p><em>Note to SDF MetaARPA members: I am not an expert on any of the historical systems and it's unlikely I'll be able to investigate all of them in sufficient depth, so feel free to check out this document and enhance it with your own insights and discoveries, or features or tricks I have missed. &mdash; papa</em></p>
<h3 id="subsection-1">Notation</h3>
<table>
<tr><td><code>command</code></td><td>Command name or other fixed syntax;enter as-is.</td></tr>
<tr><td><em>place-holder</em></td><td>Place-holder for user-supplied value.</td></tr>
<tr><td>[<em>item</em>]</td><td><em>item</em> is optional.</td></tr>
<tr><td><em>item</em> &hellip;</td><td><em>item</em> may be repreated one or more times.</td></tr>
</table>
<h2 id="section-2">UNICS (Version Zero)</h2>
<p>Release: Summer 1969<br/>
Platform: PDP-7</p>
<p>The operating system hacked together so Ken Thompson could play <em>Space Travel</em> after Bell Labs withdrew from the Multics Project. The new operating system was named as a parody of &ldquo;Multics&rdquo;.</p>
<p>This version of the operating system has a file system, a shell, a text editor, an assembler, and very little else.</p>
<li><b>commands available</b>: as, bc, cat, chdir, chmod, chown, chrm, cp, date, ln, ls, mv, stat
<p>
<i>ken writes</i>
<pre>
here is sme stuff..
adm and apr submit jobs to the central
batch processing machine (ge-635 gcos)
i only remember a command to submit a print
job. the pdp-7 had no printer. actually, there
was a newer print job that got the printing
done by rejecting the batch job for some
trivial syntax error. printing would cost.
job rejection was free.
sys save generated a core file that,
when executed, would continue after the
sys save. it was used for breakpointing
long jobs and for jobs that had a lot of
initialization so they would start up faster.
a note; this unix did not have a hierarchial
file system. there were only a fixed number
of directories. each was linked to by the
directory directory dd. to get to another
directory, you did
chdir dd
chdir dir
but the chdir command would take
multiple arguments so the above is
chdir dd dir
if you ever unlinked your link to dd,
you would be cut off.
later dd became .. meaning up. one could
not reference a file in another directory
directly. thus you had to link to it by a local
name and then reference through the local
name. this
link; sys; x; y
made a local link y to the file x in directory
sys referenced off of dd. does that clear
up some of the naming confusion.
i will work on some of the other stuff you
mention. some of it sends gravity waves
through the cobwebs, but nothing specific.
ken
</pre>
<p>Logging on to the <code>ken</code> or <code>dmr</code> account - password is the same as the username
<h4>Notes on the TELETYPE</h4>
Yeah, remember you're on an ASR33 Teletype - you can only go forward!<br>
<i>(Special thanks to Dan Cross and Mary Ann Horton for discovering and demonstrating these at UNIX50)</i>
<p>
<li>@ = kill's the current line
<li># = erase character
<li>} = intr (equiv to ^C)
<li>^D = EOT (used to close a file)
<h4>Notes on the Commands</h4>
<li><i>bc</i> - not the calculator, but the B compiler.
<li><i>ls</i> - supports the -l option which displays inum, type[dls]/umode/omode, nlink, uid, size and name - <i>warren toomey</i>
<li><a href=https://sdf.org/tutorials/man/unixv0>Manual Pages for UNIX Version 0 for the PDP-7</a> (<i>special thanks to wkt and tuhs</i>)
<p>
There is no concept of filesystem paths or '..' in Unics 0. It is also important to note that 'dd' is a Multicism and stands for<br>
the "Directory Directory". This concept will become '/' or 'root' in Version 1 UNIX. The shell searches two locations: 'system' and '.'<br>
However, '.' must be linked with the following command:<p>
<li><i>ln dd userdirectory .</i> - links 'userdirectory' in the 'directory directory' to '.' aka the current directory.
<li><i>ln dd dd udd</i> - creates a new link named 'udd' to 'directory directory directory directory' in the current directory.
<p>
(You'll need to do this for the next example)<p>
<h4>A <b>Hello, World!</b> written in B for Unics Version 0</h4>
<li>login as <i>dmr</i>, <i>dmr</i>
<li><i>ln dd dmr .</i>
<p>
Now you can type <i>ls</i> and see the contents of the directory
<p>
<li>The file <i>hello.b</i> contains:
<pre>
@ cat hello.b
main $(
write('He');
write('ll');
write('o,');
write(' W');
write('or');
write('ld');
write(!*n');
$)
</pre>
<li><i>bc hello.b hello.s</i> # bc will compile hello.b and produce hello.s
<li><i>as ops.s bl.s hello.s bi.s</i> # as will assemble hello.s along with the standard libraries and produce an a.out
<p>
<pre>
@ a.out
Hello, World!
</pre>
<h4>Notes on using 'as' under Unics Version 0</h4>
<li><i>ops.s, bl.s and bi.s</i> Opcodes and System Calls - must be included in any assembly
<p>
For the UNIX 50th on 10-Jul-2019 SDF held a <b><i>B Language</i></b> challenge on the DEC PDP-7 running UNIX Version 0 under simh.<br>
A herd of hackers gave it a go over the course of 2 hours and in the end there were 4 that put in best efforts:
<li>Karl Koscher (@supersat) - WINNER
<li>Dan Cross - Runner UP
<li>Mary Ann Horton - Valiant Effort
<li>Seth Morabito (@twylo) - Flailing Attempt (awarded with a '?')
<p>
Karl's effort implements a somewhat ROT1 and was the only working example
of TTY IO. The code follows:
<p>
<b>fdip.b</b>
<p>
<pre>
main $(
auto c;
while (1) $(
c = read();
write(c + 1);
flush();
$)
$)
supersat)
// gplv3 lol
// karl koscher
</pre>
The winner was awarded a handsome <b>ASVEL <i>UNIX WARE</i>(tm)</b> Japanese write storage container and a delicious bag of <b>Tamanishiki</b> <i>Premium Short Grain Rice</i>
<h2 id="section-3">First Edition UNIX</h2>
<p>Release: November 1971<br/>
Platform: PDP-11/20</p>
<h2 id="section-4">Fifth Edition UNIX</h2>
<p>Release: June 1974<br/>
Platform: PDP-11/40</p>
<h2 id="section-5">Sixth Edition UNIX</h2>
<p>Release: May 1975<br/>
Platform: PDP-11/45</p>
<h2 id="section-6">Seventh Edition UNIX</h2>
<p>Release: January 1979<br/>
Platform: PDP-11/70</p>
<h2 id="section-7">Research UNIX 8</h2>
<p>Release: 1981<br/>
Platform: VAX-11/780</p>
<h2 id="section-8">AT&amp;T UNIX System III</h2>
<p>Release: Fall 1982<br/>
Platform: PDP-11/70</p>
<h2 id="section-9">AT&amp;T UNIX System V (PDP-11/70)</h2>
<p>Release: 1983<br/>
Platform: PDP-11/70</p>
<h2 id="section-10">AT&amp;T UNIX System V (3b2/400)</h2>
<p>Release: 1984<br/>
Platform: 3b2/400</p>
<h2 id="section-11">4.3 BSD</h2>
<p>Release: June 1986<br/>
Platform: MicroVAX3900</p>
<h2 id="section-12">2.11 BSD</h2>
<p>Release: January 1992<br/>
Platform: PDP-11/70</p>
<!-- Remember to always contain your paragraphs in <p> tags. For
strings of code, filenames, commands, etc., which appear inside of a
paragraph, wrap them in <code> tags to differentiate them from the
rest of the paragraph's text. -->
<p>By issuing the <code>sac -nar</code> command, your spirit animal
will be changed to the narwhal.</p>
<!-- For entire blocks of code, place the <code> inside of a <pre>
instead of a <p>. Text inside of a <pre> has its whitespace characters
(space, tab, carriage-return) interpreted literally, unlike text
inside of a <p>. -->
<pre><code>10 PRINT "DO YOU EAT BOOGERS?"
20 INPUT X
30 IF X="YES" THEN PRINT "YOU'RE A GOOD MAN, CHARLIE BROWN.": END
40 IF X="NO" THEN PRINT "WHAT, YOU THINK YOU'RE BETTER THAN ME?"
</code></pre>
<!-- For sample program output, console sessions, etc., use <samp>
inside a <pre> block. -->
<pre><samp>$ finger man@arms
Login: man Name: Duncan
Directory: /eternia/heroic_warriors/man Shell: /bin/bashasaurus
No mail.
Plan: Make Orko clean-up the mess he left in my workshop.
</samp></pre>
<!-- This sub-section begins with a level-3 heading (<h3>). HTML
provides tags for sections nested six levels deep (tags <h1>
through <h6>). If you need to nest sections seven or more levels deep
...you might consider restructuring your tutorial! -->
<h3 id="subsection-1">Subsection Heading</h3>
<!-- For VERY IMPORTANT TEXT, make it <strong>. To add emphasis to a
word or phrase, use <em>. -->
<p><strong>Do not forget to flush the buffer</strong>. If you do, the
smell will be <em>intolerable</em>.</p>
<h2 id="section-2">Another Section Heading</h2>
<!-- This paragraph gives an example of two styles of footnote
referencing. Both are hyperlinked to corresponding list items (<li>)
in the Notes section below. -->
<p>The Honeywell 6080 can be induced to perform a samba by pressing
the button labeled "Samba" on the operator's
console<a href="#fn1"><sup>1</sup></a>. That mainframe's fort&eacute;,
however, is the foxtrot(<a href="#fn2">2</a>), but the inducement of
that particular step is beyond the scope of this tutorial.</p>
<!-- Here is a sample footnotes section. In this example, we're using
footnotes to cite a reference, but this same style can be used for
footnotes of any kind. Your tutorial may not require any footnotes. If
it doesn't, feel free to snip this entire section out. -->
<h2 id="notes">Notes</h2>
<!-- We're using an ordered list (<ol>) so that the notes are
automatically numbered. A single reference is cited twice in the
tutorial. As you can see, you may use an abbreviated form of citation
for subsequent references to a single work. -->
<ol>
<li id="fn1">Zurgone Vemliat, <cite>Mainframe Dancing Habits</cite> (Milwaukie: Brewers' Press, 1988), 96.</li>
<li id="fn2">Vemliat, <cite>Mainframe</cite>, 112.</li>
</ol>
<h2 id="refs">References</h2>
<p>The Open Group. 2018. &ldquo;History and Timeline&rdquo;. <a href="http://www.unix.org/what_is_unix/history_timeline.html">http://www.unix.org/what_is_unix/history_timeline.html</a>.</p>
<p>Eric Steven Raymond. 2003. &ldquo;Origins and History of Unix, 1969-1995&rdquo;. The Art of Unix Programming. <a href="http://www.catb.org/esr/writings/taoup/html/ch02s01.html">http://www.catb.org/esr/writings/taoup/html/ch02s01.html</a>.</p>
<p>Ken Thompson and Dennis M. Ritchie. 1971. UNIX Programmer's Manual. Bell Labs. <a href="https://www.bell-labs.com/usr/dmr/www/1stEdman.html">https://www.bell-labs.com/usr/dmr/www/1stEdman.html</a>.</p>
<p>Unix Heritage Wiki. 2015. &ldquo;PDP-7 Unix&rdquo;. <a href="https://wiki.tuhs.org/doku.php?id=systems:pdp7_unix">https://wiki.tuhs.org/doku.php?id=systems:pdp7_unix</a></p>
<p>Wikipedia. 2018. &ldquo;History of Unix&rdquo;. <a href="https://en.wikipedia.org/wiki/History_of_Unix">https://en.wikipedia.org/wiki/History_of_Unix</a>.</p>
$Id: unix50th.html,v 1.12 2019/07/12 15:52:37 smj Exp $