darrell@sdcsvax.UUCP (02/13/87)
In article <2713@sdcsvax.UCSD.EDU> Eugene Miya writes >Well Dave Clark came out here from MIT and gave a talk on why protocols >perform poorly, I'll drop his viewgraphs by John. He blasted the OS >people for the "process-oriented" model of protocol implementation. (No >pun intended with the Blast protocol. > With all respect to Dave Clark, I don't think that we (OS types) can take the credit for the process-oriented model of protocol implementation. But that's not what I wanted to mention. A lot of people are blaming OS designs for communications failures, using arguments along the lines that you can't design a network into an operating system designed before networking and get any kind of performance out of it. Over the past few years I have been thinking (I hope carefully) about this, and have come to the conclusion that it is missing the point. If we take the very narrow definition of an operating system kernel than I claim that all of the support networks need in the kernel is no more that than needed by any other kind of device. That is, as far as the OS kernel is concerned, a network interface is just another communications device, requiring a certain number of well implemented primitive operations. Whether you implement protocols in the kernel or out of the kernel than becomes the same kind of religious argument that happens with any other feature that can be implemented both in and out of the kernel, that is: 1) There are systems where it makes sense to do it out of the kernel. 2) In a lot of systems you'll do it in the kernel merely for efficency. The important feature is that we have now demystified communications and restored it to is proper position, as another important feature of an operating system, but not the most important.