On Fri, Jul 16, 2021 at 9:57 AM Larry McVoy <lm@mcvoy.com> wrote:
I'm pretty sure SGI used a similar approach for networking packets.

Yeah, it was pretty standard for networking interfaces.  I think I first saw it I'm the MIT Chaos driver maybe?  In many ways,  Gurwitz's whole mbuf memory scheme for the ethernet controllers and the whole IP stack that lives on in BSD is based on the idea.  Rob used a number of different size buffers, not just the two, but the idea is the same, never copy anything if we can avoid it.   Play pointer games in the top, bottom, and middle parts of the driver/stack.

A huge difference, as Ted I'm sure knows, is that you tended to have many more serial lines than network interfaces.  I suspect Rob's scheme would have sucked trying to support traditional single-byte serial interfaces or really just use too much memory to be practical.