unix_50th
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
unix_50th [2021/03/15 15:47] – [Introduction] hc9 | unix_50th [2023/07/01 01:41] (current) – [Subsection Heading] hc9 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | === -+- H Y S T E R I C A L -+- U N I X E S -+- === | ||
+ | |||
+ | //this is meant to be a tutorial and/or tips 'n tricks for the hysterical unixes on [[https:// | ||
+ | |||
+ | Available instances are: | ||
+ | |||
+ | <file config instances> | ||
+ | [a] UNICS (Version Zero) | ||
+ | [b] First Edition UNIX | ||
+ | [c] Fifth Edition UNIX | ||
+ | [d] Sixth Edition UNIX | ||
+ | [e] Seventh Edition UNIX | ||
+ | [f] Research UNIX 8 VAX-11/ | ||
+ | [g] AT&T UNIX System III | ||
+ | [h] AT&T UNIX System V | ||
+ | [i] AT&T UNIX System V | ||
+ | [j] 4.3 BSD | ||
+ | [k] 2.11 BSD | ||
+ | </ | ||
+ | |||
+ | * Some features, such as persistent images, multiple TTYs and networking are only available on the SDF MetaArray. | ||
+ | |||
+ | | | ||
+ | | | ||
+ | |||
+ | ====== unix50th -- In Search of Ancient Unix ====== | ||
+ | |||
+ | ===== Introduction ===== | ||
+ | |||
+ | 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. | ||
+ | |||
+ | You can connect to the systems from the web page: '' | ||
+ | |||
+ | If you have a MetaArray account, you can also access the historical systems by logging in and entering the following shell command: '' | ||
+ | |||
+ | The rest of this documents consists of notes and command “cheat sheets” to help new users on each of the historical systems. It is assumed the reader is already somewhat familiar with contemporary Unix-like systems. | ||
+ | |||
+ | * //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, | ||
+ | |||
+ | ==== Notation ==== | ||
+ | |||
+ | | '' | ||
+ | | // | ||
+ | | [//item//] | //item// is optional. | | ||
+ | | //item// … | //item// may be repreated one or more times. | | ||
+ | |||
+ | ===== UNICS (Version Zero) ===== | ||
+ | |||
+ | |Release: Summer 1969| | ||
+ | |Platform: PDP-7| | ||
+ | |||
+ | The operating system hacked together so Ken Thompson could play //Space Travel// after Bell Labs withdrew from the Multics Project. The new operating system was named as a parody of “Multics”. | ||
+ | |||
+ | This version of the operating system has a file system, a shell, a text editor, an assembler, and very little else. | ||
+ | |||
+ | * **commands available**: | ||
+ | |||
+ | //ken writes// | ||
+ | |||
+ | <file config ken writes> | ||
+ | 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 hierarchical | ||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | Logging on to the '' | ||
+ | |||
+ | === Notes on the TELETYPE === | ||
+ | |||
+ | Yeah, remember you're on an ASR33 Teletype - you can only go forward! | ||
+ | * //(Special thanks to Dan Cross and Mary Ann Horton for discovering and demonstrating these at UNIX50)// | ||
+ | |||
+ | * @ = kill's the current line | ||
+ | * # = erase character | ||
+ | * } = intr (equiv to ^C) | ||
+ | * ^D = EOT (used to close a file) | ||
+ | |||
+ | === Notes on the Commands === | ||
+ | |||
+ | * //bc// - not the calculator, but the B compiler. | ||
+ | * //ls// - supports the -l option which displays inum, type[dls]/ | ||
+ | * [[https:// | ||
+ | |||
+ | There is no concept of filesystem paths or ' | ||
+ | |||
+ | * //ln dd userdirectory .// - links ' | ||
+ | * //ln dd dd udd// - creates a new link named ' | ||
+ | | ||
+ | (You' | ||
+ | |||
+ | === A Hello, World! written in B for Unics Version 0 === | ||
+ | |||
+ | * login as //dmr//, //dmr// | ||
+ | * //ln dd dmr .// | ||
+ | | ||
+ | Now you can type //ls// and see the contents of the directory | ||
+ | |||
+ | * The file //hello.b// contains: | ||
+ | |||
+ | <file config hello.b> | ||
+ | @ cat hello.b | ||
+ | main $( | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | $) | ||
+ | </ | ||
+ | |||
+ | * //bc hello.b hello.s// # bc will compile hello.b and produce hello.s | ||
+ | * //as ops.s bl.s hello.s bi.s// # as will assemble hello.s along with the standard libraries and produce an a.out | ||
+ | |||
+ | < | ||
+ | @ a.out | ||
+ | Hello, World! | ||
+ | </ | ||
+ | |||
+ | === Notes on using ' | ||
+ | |||
+ | * //ops.s, bl.s and bi.s// Opcodes and System Calls - must be included in any assembly | ||
+ | | ||
+ | For the UNIX 50th on 10-Jul-2019 SDF held a **//B Language// | ||
+ | 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: | ||
+ | |||
+ | * Karl Koscher (@supersat) - WINNER | ||
+ | * Dan Cross - Runner UP | ||
+ | * Mary Ann Horton - Valiant Effort | ||
+ | * Seth Morabito (@twylo) - Flailing Attempt (awarded with a '?' | ||
+ | |||
+ | Karl's effort implements a somewhat ROT1 and was the only working example of TTY IO. The code follows: | ||
+ | |||
+ | <file config fdip.b> | ||
+ | main $( | ||
+ | auto c; | ||
+ | while (1) $( | ||
+ | c = read(); | ||
+ | | ||
+ | | ||
+ | $) | ||
+ | $) | ||
+ | supersat) | ||
+ | // gplv3 lol | ||
+ | // karl koscher | ||
+ | </ | ||
+ | |||
+ | The winner was awarded a handsome **ASVEL //UNIX WARE// | ||
+ | |||
+ | ===== First Edition UNIX ===== | ||
+ | |||
+ | |Release: November 1971| | ||
+ | |Platform: PDP-11/20| | ||
+ | |||
+ | ===== Fifth Edition UNIX ===== | ||
+ | |||
+ | |Release: June 1974| | ||
+ | |Platform: PDP-11/40| | ||
+ | |||
+ | ===== Sixth Edition UNIX ===== | ||
+ | |||
+ | |Release: May 1975| | ||
+ | |Platform: PDP-11/45| | ||
+ | |||
+ | ===== Seventh Edition UNIX ===== | ||
+ | |||
+ | |Release: January 1979| | ||
+ | |Platform: PDP-11/70| | ||
+ | |||
+ | ===== Research UNIX 8 ===== | ||
+ | |||
+ | |Release: 1981| | ||
+ | |Platform: VAX-11/780| | ||
+ | |||
+ | ===== AT&T UNIX System III ===== | ||
+ | |||
+ | |Release: Fall 1982| | ||
+ | |Platform: PDP-11/70| | ||
+ | |||
+ | ===== AT&T UNIX System V (PDP-11/70) ===== | ||
+ | |||
+ | |Release: 1983| | ||
+ | |Platform: PDP-11/70| | ||
+ | |||
+ | ===== AT&T UNIX System V (3b2/400) ===== | ||
+ | |||
+ | |Release: 1984| | ||
+ | |Platform: 3b2/400| | ||
+ | |||
+ | ===== 4.3 BSD ===== | ||
+ | |||
+ | |Release: June 1986| | ||
+ | |Platform: MicroVAX3900| | ||
+ | |||
+ | ===== 2.11 BSD ===== | ||
+ | |||
+ | |Release: January 1992| | ||
+ | |Platform: PDP-11/70| | ||
+ | |||
+ | By issuing the '' | ||
+ | |||
+ | <file config sac -nar> | ||
+ | 10 PRINT "DO YOU EAT BOOGERS?" | ||
+ | 20 INPUT X | ||
+ | 30 IF X=" | ||
+ | 40 IF X=" | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | $ finger man@arms | ||
+ | Login: man Name: Duncan | ||
+ | Directory: / | ||
+ | No mail. | ||
+ | Plan: Make Orko clean-up the mess he left in my workshop. | ||
+ | </ | ||
+ | |||
+ | ==== Subsection Heading ==== | ||
+ | |||
+ | **Do not forget to flush the buffer**. If you do, the smell will be // | ||
+ | |||
+ | ===== Another Section Heading ===== | ||
+ | |||
+ | The Honeywell 6080 can be induced to perform a samba by pressing the button labeled " | ||
+ | |||
+ | < | ||
+ | |||
+ | ===== References ===== | ||
+ | |||
+ | * The Open Group. 2018. “History and Timeline”. http:// | ||
+ | * Eric Steven Raymond. 2003. “Origins and History of Unix, 1969-1995”. The Art of Unix Programming. http:// | ||
+ | * Ken Thompson and Dennis M. Ritchie. 1971. UNIX Programmer' | ||
+ | * Unix Heritage Wiki. 2015. “PDP-7 Unix”. https:// | ||
+ | * Wikipedia. 2018. “History of Unix”. [[wp> | ||
+ | |||
+ | $Id: unix50th.html, | ||
+ | |||
+ | < | ||