PDP-11: Disk over Serial proposal

Warren Toomey 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
tape drive.

The protocol used must be simple enough that bootstraps can be entered
manually - at least to get the boot block from the second computer.

Minimalist Protocol

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.?

Cheers all,


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 mailing list