[HECnet] Next retro comms project?

Johnny Billquist bqt at softjar.se
Wed Oct 21 15:17:21 PDT 2009


Sampsa Laine wrote:
On 21 Oct 2009, at 14:55, Bob Armstrong wrote:
Well, if we're going to go off into Wishful Thinking Land here :-)

* DECnet for BSD, especially 2.11 PDP-11 bsd.   Yes, a 16 bit version is
significantly harder than a 32 bit version, I know, but there are several
real PDP11s out there running BSD that could be on HECnet.   I know - I've
got one!   We could use the Linux DECnet as a starting point - the dn
userspace utility programs might not even be that hard to port - but we'd
need a kernel wizard to do the tricky bits :-)

Just an idea, and I'm not a network programming guru at all, but do we really need to have stuff in the kernel? Could we not just have a userland process that writes frames to the network interface* and then apps talk to the server process? I imagine this is easier to both write and debug...
Sampsa
* assuming we are able to write raw frames to the net interface of course...

Performance will be horrible, and it will also probably be very problematic. You also need some sort of a transition point between the kernel and user space to even start doing this. Any user process who would like to talk DECnet will either want to do system calls, or open a device to do the communication. That system call, or device will then access the memory area of the user process to read/write data from the user process. If your protocol implementation also were in user space, you then need to send it back from the kernel back into userspace again, for the protocol process. And you also need to keep track of the original user process, to keep a connection living, and you need to know if the user process goes away, so that you can tear down stuff when it happens. There are a lot of headaches in there, and having a user process doing it isn't really that helpful.

It's a common mistake to think that this will actually be easier just because the protocol is implemented as a user space process. It isn't. The only thing that becomes easier is that once the basic framework is in place, you can more easily install and remove the code that implements the protocols. But since buggy protocol implementations often corrupt more than can be fixed, you often end up needing to reboot anyway.

And we still have the horrible performance issues...

	Johnny



More information about the Hecnet-list mailing list