PDP-11: Disk over Serial proposal
wkt at henry.cs.adfa.oz.au
Fri Dec 5 14:49:13 AEST 1997
Ok, it would be nice to have a way of installing Unix onto a PDP-11 without a
tape drive. Here's a proposal: please comment on it (i.e shoot it down!). I
actually wrote a very similar system to move files off my Apple ][ once.
The PDP-11 is connected serially to another computer, using a DL11 port. The
other computer will simulate one or more disk drives which are acessible by
commands sent over the serial line.
The idea is that a person can hand-enter the boot code to retrieve the
`boot block' from the simulated disk drive. From there, the bootstrap
can retrieve the Unix kernel, which can then use the simulated drive as
the root filesystem. The user can then log in, use mkfs to build a filesystem
on a real disk drive, and install a suitable Unix kernel without requiring a
The protocol used must be simple enough that bootstraps can be entered
manually - at least to get the boot block from the second computer.
4-byte commands are sent from the PDP-11 to the other computer. The
command structure is:
Byte 0: What command to perform
Byte 1: On which remote drive to perform the command
Byte 2: Low-order bits of block number
Byte 3: High-order bits of block number
Blocks are 512 bytes. The commands allow access to 65,536 blocks (32Megs)
on 256 virtual disk drives. Of course, an alternate view could be 65,536
on 256 platters, giving 8G of disk space.
Commands are: 0x00 NOP Do nothing
0x01 READ Read specified block
0x02 WRITE Write specified block
NOP: The second computer does nothing in response. However, this can be
used to determine if the PDP-11 is actually sending commands.
READ: The second computer returns 512 bytes which contains the requested
block. There is no checksum, framing bytes or block# details.
WRITE: The PDP-11 sends 512 bytes which contains the requested block.
There is no checksum, framing bytes or block# details. The second
computer does nothing in response.
Drawbacks: Line noise is gonna really cause havoc. Only one command can be
pending, as the PDP-11 has no idea what block is what when it comes
back from the second computer.
Advantages: Should be easy to write bootstrap and /usr/mdec software, and a
kernel-level device driver should be very easy. Altering v5, v6, v7
2.9BSD and 2.11BSD should be straight-forward.
Do we need a more sophisticated protocol with checksums, multiple outstanding
commands, acknowledgments, framing bytes etc.?
Received: (from major at localhost)
by minnie.cs.adfa.oz.au (8.8.5/8.8.5) id SAA13490
for pups-liszt; Fri, 5 Dec 1997 18:42:05 +1100 (EST)
X-Authentication-Warning: minnie.cs.adfa.oz.au: major set sender to owner-pups at minnie.cs.adfa.oz.au using -f
More information about the TUHS