The X-Kernel: An Architecture for Implementing Network Protocols
IEEE Transactions on Software Engineering
A dynamic network architecture
ACM Transactions on Computer Systems (TOCS)
A language-based approach to protocol implementation
SIGCOMM '92 Conference proceedings on Communications architectures & protocols
Hi-index | 0.00 |
Few would argue that protocols are central to the construction of distributed systems. Whether they support remote procedure calls, file transfer, or group communication, protocols are the fundamental building blocks of distributed systems. This paper is not about any particular protocol, but rather about our experiences implementing protocols, in general, in the χ-kernel.The χ-kernel was originally designed to function as a full-fledged operating system kernel. The original design philosophy was that an operating system kernel is primarily a communication multiplexor, and so the one thing it had better do well is support communication protocols. Towards this end, the χ-kernel was explicitly designed to support the rapid implementation of efficient network protocols. Because it was a complete OS kernel, the initial implementation of the χ-kernel on Sun3 workstations included support for lightweight processes and multiple virtual address spaces. However, because communication support was our primary concern, the χ-kernel didn't contain any real innovations in other areas such as process and memory management; we mostly borrowed ideas from other experimental operating systems like V, Mach, Sprite, and Amoeba.During the last several months, we have refocused our effort by divorcing those aspects of the χ-kernel that are specifically related to the implementation of network protocols from the other aspects of the operating system, and we are attempting to embed this protocol-core of the χ-kernel in different existing operating systems, most notably, Mach.