User Tools

Site Tools


systems:pdp7_unix

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
systems:pdp7_unix [2015/12/29 23:54] wktsystems:pdp7_unix [2015/12/30 00:09] wkt
Line 30: Line 30:
 <code> <code>
 link(dir, file, newname) link(dir, file, newname)
- +</code>
-</file>+
  
 where //dir//  was a directory file in the current directory, //file//  an existing entry in that directory, and //newname//  the name of the link, which was added to the current directory. Because //dir//  needed to be in the current directory, it is evident that today's prohibition against links to directories was not enforced; the PDP-7 Unix file system had the shape of a general directed graph. where //dir//  was a directory file in the current directory, //file//  an existing entry in that directory, and //newname//  the name of the link, which was added to the current directory. Because //dir//  needed to be in the current directory, it is evident that today's prohibition against links to directories was not enforced; the PDP-7 Unix file system had the shape of a general directed graph.
Line 37: Line 36:
 So that every user did not need to maintain a link to all directories of interest, there existed a directory called //dd//  that contained entries for the directory of each user. Thus, to make a link to file //x//  in directory //ken//, I might do So that every user did not need to maintain a link to all directories of interest, there existed a directory called //dd//  that contained entries for the directory of each user. Thus, to make a link to file //x//  in directory //ken//, I might do
  
-<code>ln dd ken ken+<code> 
 +ln dd ken ken
 ln ken x x ln ken x x
 rm ken rm ken
Line 118: Line 118:
 <code> <code>
 sh comfile>output sh comfile>output
- +</code>
-</file>+
  
 The sequence of events was The sequence of events was
Line 133: Line 132:
 The very convenient notation for IO redirection, using the `>' and `<' characters, was not present from the very beginning of the PDP-7 Unix system, but it did appear quite early. Like much else in Unix, it was inspired by an idea from Multics. Multics has a rather general IO redirection mechanism [3] embodying named IO streams that can be dynamically redirected to various devices, files, and even through special stream-processing modules. Even in the version of Multics we were familiar with a decade ago, there existed a command that switched subsequent output normally destined for the terminal to a file, and another command to reattach output to the terminal. Where under Unix one might say The very convenient notation for IO redirection, using the `>' and `<' characters, was not present from the very beginning of the PDP-7 Unix system, but it did appear quite early. Like much else in Unix, it was inspired by an idea from Multics. Multics has a rather general IO redirection mechanism [3] embodying named IO streams that can be dynamically redirected to various devices, files, and even through special stream-processing modules. Even in the version of Multics we were familiar with a decade ago, there existed a command that switched subsequent output normally destined for the terminal to a file, and another command to reattach output to the terminal. Where under Unix one might say
  
-<code>ls>xx+<code> 
 +ls>xx
 </code> </code>
  
Line 142: Line 142:
 list list
 iocall attach user_output syn user_i/o iocall attach user_output syn user_i/o
- +</code>
-</file>+
  
 Even though this very clumsy sequence was used often during the Multics days, and would have been utterly straightforward to integrate into the Multics shell, the idea did not occur to us or anyone else at the time. I speculate that the reason it did not was the sheer size of the Multics project: the implementors of the IO system were at Bell Labs in Murray Hill, while the shell was done at MIT. We didn't consider making changes to the shell (it was //their//  program); correspondingly, the keepers of the shell may not even have known of the usefulness, albeit clumsiness, of //iocall//. (The 1969 Multics manual [4] lists //iocall//  as an `author-maintained,' that is non-standard, command.) Because both the Unix IO system and its shell were under the exclusive control of Thompson, when the right idea finally surfaced, it was a matter of an hour or so to implement it. Even though this very clumsy sequence was used often during the Multics days, and would have been utterly straightforward to integrate into the Multics shell, the idea did not occur to us or anyone else at the time. I speculate that the reason it did not was the sheer size of the Multics project: the implementors of the IO system were at Bell Labs in Murray Hill, while the shell was done at MIT. We didn't consider making changes to the shell (it was //their//  program); correspondingly, the keepers of the shell may not even have known of the usefulness, albeit clumsiness, of //iocall//. (The 1969 Multics manual [4] lists //iocall//  as an `author-maintained,' that is non-standard, command.) Because both the Unix IO system and its shell were under the exclusive control of Thompson, when the right idea finally surfaced, it was a matter of an hour or so to implement it.
Line 151: Line 150:
 The only extant source code from the PDP-7 version of Unix appears to be the source code to the //dsw//  command that Dennis [[http://minnie.tuhs.org/pipermail/pups/1999-November/000139.html|posted on the net.unix-wizards]] Usenet newsgroup in 1984. He wrote: The only extant source code from the PDP-7 version of Unix appears to be the source code to the //dsw//  command that Dennis [[http://minnie.tuhs.org/pipermail/pups/1999-November/000139.html|posted on the net.unix-wizards]] Usenet newsgroup in 1984. He wrote:
  
-I happened to dredge up an old notebook and found a listing of the PDP-7 version of dsw.  Because several people have approached me recently about reviving a version of PDP-7 Unix as a sort of paleontological exhibit, and because the subject has been discussed here, I thought people might be interested in seeing the code. I first considered net.sources, but decided not to carry whimsy too far.+I happened to dredge up an old notebook and found a listing of the PDP-7 version of dsw. Because several people have approached me recently about reviving a version of PDP-7 Unix as a sort of paleontological exhibit, and because the subject has been discussed here, I thought people might be interested in seeing the code. I first considered net.sources, but decided not to carry whimsy too far.
  
 Notes: Notes:
Line 160: Line 159:
   - "sys save" makes a core image.   - "sys save" makes a core image.
  
-<code>" dsw+<code> 
 +" dsw
  
    lac djmp    lac djmp
Line 200: Line 200:
  
 In October 2009, Dennis sent Warren Toomey a private e-mail that said "In other news, I have found the book that has the [PDP-7] listings that I knew I had, that of (some) of the user-level commands. I wonder what's the best way to get it scanned?". Unfortunately, Dennis passed away before he could get the listings scanned in. In October 2009, Dennis sent Warren Toomey a private e-mail that said "In other news, I have found the book that has the [PDP-7] listings that I knew I had, that of (some) of the user-level commands. I wonder what's the best way to get it scanned?". Unfortunately, Dennis passed away before he could get the listings scanned in.
 +
 +===== PDP-9 Unix =====
 +
 +In several places, including the [[http://www.tuhs.org/Archive/Documentation/Papers/unix_cacm74.pdf|CACM paper]], there is mention made of Unix running on a PDP-9. Dennis Ritchie posted [[http://minnie.tuhs.org/pipermail/pups/2002-August/000529.html|a message on the PUPS mailing list]] in August 2002 which said:
 +
 +The [PDP-]7, 9, 15 were very compatible.  I think the -15 had some scheme for using an index register, which the earlier ones didn't have, but it was otherwise pretty much identical in IS architecture.
 +
 +There was very little rewriting to try Unix out on the -9 and -15; perhaps just some tweaks in
 +the disk device commands.  I don't think the system actually ran on either for more than a few hours. Ken was just playing around.
 +
 +The -15 may have had an electrically different bus, but I'm reasonably sure it was not a Unibus. All of them used IOT instructions, not memory-mapped IO registers.
 +
 +Both of the machines we tried were being used by other groups and we couldn't squat on them as with the PDP-7. I recall that  the -15's main job was controlling a step-and-repeat camera that exposed LSI masks.
 +
  
systems/pdp7_unix.txt · Last modified: 2023/02/16 08:04 by admin