This Article 
 Bibliographic References 
 Add to: 
The X-Kernel: An Architecture for Implementing Network Protocols
January 1991 (vol. 17 no. 1)
pp. 64-76

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] M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young, "Mach: A new kernel foundation for Unix development," inProc. Summer Usenix, July 1986.
[2] G. R. Andrews and R. A. Olsson, "An overview of the SR language and implementation,"ACM Trans. Program. Lang. Syst., vol. 10, no. 1, pp. 51-86, Jan. 1988.
[3] M. S. Atkins, "Experiments in SR with different upcall program structures,"ACM Trans. Comput. Syst., vol. 6, no. 4, pp. 365-392, Nov. 1988.
[4] Black et al., "Distribution and Abstract Types in Emerald,"IEEE Trans. Software Eng., Vol. SE-13, No. 1, 1987, pp. 65-76.
[5] L.-F. Cabrera, E. Hunter, M. Karels, and D. Mosher, "User-process communication performance in networks of computers,"IEEE Trans. Software Eng., vol. 14, no. 1, pp. 38-53, Jan. 1988.
[6] D. R. Cheriton, "VMTP: A transport protocol for the next generation of communications systems," inProc. SIGCOMM '86 Symp., Aug. 1987, pp. 406-415.
[7] David Cheriton, "The V Distributed System,"Comm. ACM, Vol. 31, No. 3, Mar. 1988, pp. 314-333.
[8] D. R. Cheriton and W. Zwaenepoel, "Distributed process groups in the V kernel,"ACM Trans. Comput. Syst., vol. 3, no. 2, pp. 77-107, May 1985.
[9] D. D. Clark, "Modularity and efficiency in protocol implementation," MIT Lab. Comput. Sci., Comput. Syst. Commun. Group, Request for Comments 817, July 1982.
[10] D. D. Clark, "The structuring of systems using upcalls," inProc. Tenth ACM Symp. Operating System Principles, Dec. 1985, pp. 171-180.
[11] E. W. Dijkstra, "Hierarchical ordering of sequential processes,"Acta Inform., vol. 1, pp. 115-138, 1968.
[12] A. Goldberg and D. Robson,Smalltalk80: The Language and Its Implementation. Reading, MA: Addison-Wesley, May 1983.
[13] A. Habermann, L. Flon, and L. Cooprider, "Modularization and hierarchy in a family of operating systems,"Commun. ACM, vol. 19, no. 5, pp. 266-272, May 1976.
[14] N. C. Hutchinson, S. Mishra, L. L. Peterson, and V. T. Thomas, "Tools for implementing network protocols,"Software-Practice and Experience, vol. 19, no. 9, pp. 895-916, Sept. 1989.
[15] N. C. Hutchinson, L. L. Peterson, M. Abbott, and S. O'Malley, "RPC in thex-kernel: Evaluating new design techniques," inProc. Twelfth ACM Symp. Operating System Principles, Dec. 1989, pp. 91-101.
[16] K. A. Lantz, W. I. Nowicki, and M. M. Theimer, "An empirical study of distributed application performance,"IEEE Trans. Software Eng., vol. SE-11, no. 10, pp. 1162-1174, Oct. 1985.
[17] S. J. Leffler, W. N. Joy, and R. S. Fabry, "4.2BSD networking implementation notes," inUnix Programmer's Manual, vol. 2C, Univ. California, Berkeley, July 1983.
[18] S. J. Leffler, M. K. McKusick, M. J. Karels, and J. S. Quarterman,The Design and Implementation of the 4.3BSD UNIX Operating System. Reading, MA: Addison-Wesley, 1989.
[19] P. Mockapetris, "Domain names--implementation and specification," USC Inform. Sci. Inst., Marina del Ray, CA, Request For Comments 1035, Nov. 1987.
[20] S. W. O'Malley, M. B. Abbott, N. C. Hutchinson, and L. L. Peterson, "A transparent blast facility,"J. Internetworking, vol. 1, no. 2, Dec. 1990.
[21] J. K. Ousterhout, A. R. Cherenson, F. Douglis, M. N. Nelson, and B. B. Welch, "The Sprite network operating system,"Computer, vol. 21, pp. 23-36, Feb. 1988.
[22] L. L. Peterson, N. Buchholz, and R. D. Schlichting, "Preserving and using context information in interprocess communication,"ACM Trans. Comput. Syst., vol. 7, no. 3, pp. 217-246, Aug. 1989.
[23] L. L. Peterson, N. C. Hutchinson, S. W. O'Malley, and H. C. Rao, "Thex-kernel: A platform for accessing internet resources,"Computer, vol. 23, no. 5, May 1990.
[24] D. Plummer, "An ethernet address resolution protocol," USC Inform. Sci. Inst., Marina del Ray, CA, Request For Comments 826, Nov. 1982.
[25] J. Postel, "User datagram protocol," USC Inform. Sci. Inst., Marina del Ray, CA, Request For Comments 768, Aug. 1980.
[26] J. Postel, "Internet message control protocol," USC Inform. Sci. Inst., Marina del Ray, CA, Request For Comments 792, Sept. 1981.
[27] J. Postel, "Internet protocol," USC Inform. Sci. Inst., Marina del Ray, CA, Request For Comments 791, Sept. 1981.
[28] D. M. Ritchie, "A stream input-output system,"AT&T Bell Lab. Tech. J., vol. 63, no. 8, pp. 311-324, Oct. 1984.
[29] M. D. Schroeder and M. Burrows, "Performance of Firefly RPC," inProc. Twelfth ACM Syrup. Operating System Principles, Dec. 1989, pp. 83-90.
[30] K. Sollins, "The TFTP protocol (revision 2)," USC Inform. Sci. Inst., Marina del Ray, CA, Request For Comments 783, June 1981.
[31] Sun Microsystems, Inc., Mountain View, CA,Network File System, Feb. 1986.
[32] Sun Microsystem, Inc., Mountain View, CA,Remote Procedure Call Programming Guide, Feb. 1986.
[33] C. P. Thacker, L. C. Stewart, and E. H. Satterthwaite, "Firefly: A multiprocessor workstation,"IEEE Trans. Comput., vol. 37, no. 8, pp. 909-920, Aug. 1988.
[34] Univ. Southern California, "Transmission control protocol," USC Inform. Sci. Inst., Marina del Ray, CA, Request For Comments 793, Sept. 1981.
[35] R. van Renesse, H. van Staveren, and A. S. Tannenbaum, "Performance of the world's fastest distributed operating system,"Operat. Syst. Rev., vol. 2, no. 4, pp. 25-34, Oct. 1988.
[36] R. W. Watson and S. A. Mamrak, "Gaining efficiency in transport services by appropriate design and implementation choices,"ACM Trans. Comput. Syst., vol. 5, no. 2, pp. 97-120, May 1987.
[37] B. B. Welch, "The Sprite remote procedure call system," Univ. California, Berkeley, Tech. Rep. UCB/CSD 86/302, June 1988.

Index Terms:
x-Kernel; architecture; network protocols; operating system kernel; interface; network operating systems; protocols
N.C. Hutchinson, L.L. Peterson, "The X-Kernel: An Architecture for Implementing Network Protocols," IEEE Transactions on Software Engineering, vol. 17, no. 1, pp. 64-76, Jan. 1991, doi:10.1109/32.67579
Usage of this product signifies your acceptance of the Terms of Use.