User Tools

Site Tools


blog:pdp7-unix-pt2

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
blog:pdp7-unix-pt2 [2016/03/19 09:37]
wkt
blog:pdp7-unix-pt2 [2016/03/19 10:21] (current)
wkt
Line 1: Line 1:
 ====== Bringing PDP-7 Unix Back to Life, part 2 ====== ====== Bringing PDP-7 Unix Back to Life, part 2 ======
  
-Wow! I'm really impressed with the speed at which the PDP-7 Unix restoration team has got things up and going. My user-mode simulator is going well. Phil Budne has taken over the care of the assemblerand he's also written a shell. I've written tools to make, populate and check the filesystem.+Wow! I'm really impressed with the speed at which the [[https://​github.com/​DoctorWkt/​pdp7-unix|PDP-7 Unix restoration team]] has got things up and going. My user-mode simulator is going well. Phil Budne has taken over the care of the assembler and he's also written a shell. I've written tools to make, populate and check the filesystem.
  
-The kernel came up surprisingly easily, much easier than the 1972 PDP-11 kernel. I think we've found only one or two transcription errors. We did have to comment out some code that deals with the "​Graphics-2"​ device, as SimH doesn'​t simulate this (yet: Phil's working on it).+The kernel came up surprisingly easily, much easier than the [[https://​github.com/​DoctorWkt/​unix-jun72|1972 PDP-11 kernel]]. I think we've found only one or two transcription errors. We did have to comment out some code that deals with the "​Graphics-2"​ device, as SimH doesn'​t simulate this (yet: Phil's working on it).
  
-Once we deduced the format of the password file, init let'​s ​us log in and here is what we see:+Once we deduced the format of the password file, init lets us log in and here is what we see:
  
 <​code>​ <​code>​
Line 38: Line 38:
 Here are just a few things that we've learned about the system. Here are just a few things that we've learned about the system.
  
-  * The kernel only really knows about two directories,​ i-nodes 3 and 4. i-node 3 holds "​init"​ and "​sh",​ and init knows this as the "​system"​ directory. i-node 4 seems to correspond to the "​dd"​ directory, which holds the users' directories according to Dennis'​ Evolution paper.+  * The kernel only really knows about two directories,​ i-nodes 3 and 4. i-node 3 holds "​init"​ and "​sh",​ and //init//  ​knows this as the "​system"​ directory. i-node 4 seems to correspond to the "​dd"​ directory, which holds the users' directories according to Dennis' ​[[https://​www.bell-labs.com/​usr/​dmr/​www/​hist.html|Evolution paper]].
   * The root user is user-id -1, not zero!   * The root user is user-id -1, not zero!
   * There is fork() but no exec(). Both init and the shell have "​bounce"​ code. This small snippet of code is copied up to the top of the process memory, and it loads the new executable code at the bottom of the process memory before jumping to it.   * There is fork() but no exec(). Both init and the shell have "​bounce"​ code. This small snippet of code is copied up to the top of the process memory, and it loads the new executable code at the bottom of the process memory before jumping to it.
Line 49: Line 49:
   * The kernel is agnostic to the concept of "​."​ and "​.."​ entries in each directory. This means that they can be left out, and the system still works: you can always "chdir dd" to get back to the top of the filesystem and then traverse downwards. But if a filesystem is built with "​."​ and "​.."​ links, then the kernel happily treats them like all other links.   * The kernel is agnostic to the concept of "​."​ and "​.."​ entries in each directory. This means that they can be left out, and the system still works: you can always "chdir dd" to get back to the top of the filesystem and then traverse downwards. But if a filesystem is built with "​."​ and "​.."​ links, then the kernel happily treats them like all other links.
  
-Now that we've got the basic system up and running, ​now it's time to bring up the big utilities: as and ed. as is working under the user-mode simulator, but we haven'​t tried it running on the kernel. And, while we have the ed source, it didn't get scanned in very well; we need to get it re-scanned before we can try it out.+Now that we've got the basic system up and running, it's time to bring up the big utilities: ​//as//  ​and //ed////as//  ​is working under the user-mode simulator, but we haven'​t tried it running on the kernel. And, while we have the //ed//  ​source, it didn't get scanned in very well; we need to get it re-scanned before we can try it out.
  
 Who knows where we will be in another month! Who knows where we will be in another month!
  
blog/pdp7-unix-pt2.txt ยท Last modified: 2016/03/19 10:21 by wkt