The x-Kernel: An Architecture for Implementing Network Protocols

A description is given of an operating system kernel, called the x-Kernel, that provides an explicit architecture for constructing and composing network protocols. The authors' experience implementing and evaluation several protocols in the x-Kernel shows that this architecture is general enough to accommodate a wide range of protocols, yet efficient enough to perform competitively with less-structured operating systems. Experimental results demonstrating the architecture's generality and efficiency are provided. The explicit structure provided by the x-Kernel has the following advantages. First, the architecture simplifies the process of implementing protocols in the kernel, making it easier to build and test novel protocols. Second, the uniformity of the interface between protocols avoids the significant cost of changing abstractions and makes protocol performance predictable. Third, it is possible to write efficient protocols by tuning the underlying architecture rather than heavily optimizing protocols themselves. >

[1]  Karen R. Sollins,et al.  TFTP Protocol (revision 2) , 1981, RFC.

[2]  Willy Zwaenepoel,et al.  Distributed process groups in the V Kernel , 1985, TOCS.

[3]  David D. Clark,et al.  Modularity and efficiency in protocol implementation , 1982, RFC.

[4]  Shivakant Mishra,et al.  Tools for implementing network protocols , 1989, Softw. Pract. Exp..

[5]  Larry Carter,et al.  Distrbution and Abstract Types in Emerald , 1987, IEEE Transactions on Software Engineering.

[6]  Armando P. Stettner The design and implementation of the 4.3BSD UNIX operating system , 1988 .

[7]  David R. Cheriton,et al.  The V distributed system , 1988, CACM.

[8]  Larry L. Peterson,et al.  RPC in the x-Kernel: evaluating new design techniques , 1989, SOSP '89.

[9]  Larry L. Peterson,et al.  The x-kernel: a platform for accessing internet resources , 1990, Computer.

[10]  Gregory R. Andrews,et al.  An overview of the SR language and implementation , 1988, TOPL.

[11]  Richard W. Watson,et al.  Gaining efficiency in transport services by appropriate design and implementation choices , 1987, TOCS.

[12]  Dennis M. Ritchie,et al.  A stream input-output system , 1990 .

[13]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[14]  Jon Postel,et al.  User Datagram Protocol , 1980, RFC.

[15]  David R. Cheriton,et al.  VMTP: a transport protocol for the next generation of communication systems , 1986, SIGCOMM '86.

[16]  David D. Clark,et al.  The structuring of systems using upcalls , 1985, SOSP '85.

[17]  D. M. Ritchie,et al.  The UNIX system: A stream input-output system , 1984, AT&T Bell Laboratories Technical Journal.

[18]  David A. Mosher,et al.  User-Process Communication Performance in Networks of Computers , 1988, IEEE Trans. Software Eng..

[19]  Brent B. Welch,et al.  The Sprite Remote Procedure Call System , 1986 .

[20]  Richard D. Schlichting,et al.  Preserving and using context information in interprocess communication , 1989, TOCS.

[21]  Lawrence C. Stewart,et al.  Firefly: a multiprocessor workstation , 1987, IEEE Trans. Computers.

[22]  William J. Bolosky,et al.  Mach: A New Kernel Foundation for UNIX Development , 1986, USENIX Summer.

[23]  Marvin Theimer,et al.  An Empirical Study of Distributed Application Performance , 1985, IEEE Transactions on Software Engineering.

[24]  Robbert van Renesse,et al.  Performance of the world's fastest distributed operating system , 1988, OPSR.

[25]  A. Nico Habermann,et al.  Modularization and hierarchy in a family of operating systems , 1976, CACM.

[26]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[27]  Jon Postel,et al.  Internet Protocol , 1981, RFC.

[28]  Andrew R. Cherenson,et al.  The Sprite network operating system , 1988, Computer.

[29]  Michael Burrows,et al.  Performance of Firefly RPC , 1989, SOSP '89.

[30]  David C. Plummer,et al.  Ethernet Address Resolution Protocol: Or Converting Network Protocol Addresses to 48.bit Ethernet Address for Transmission on Ethernet Hardware , 1982, RFC.

[31]  M. Stella Atkins Experiments in SR with different upcall program structures , 1988, TOCS.