Two-level hybrid interpreter/native code execution for combined space-time program efficiency
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
The packer filter: an efficient mechanism for user-level network code
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
SIGCOMM '88 Symposium proceedings on Communications architectures and protocols
Tools for implementing network protocols
Software—Practice & Experience
Multiplexing issues in communication system design
SIGCOMM '90 Proceedings of the ACM symposium on Communications architectures & protocols
The X-Kernel: An Architecture for Implementing Network Protocols
IEEE Transactions on Software Engineering
Locking effects in multiprocessor implementations of protocols
SIGCOMM '93 Conference proceedings on Communications architectures, protocols and applications
Protocol service decomposition for high-performance networking
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
Implementing network protocols at user level
IEEE/ACM Transactions on Networking (TON)
Ethernet: distributed packet switching for local computer networks
Communications of the ACM
User Level IPC and Device Management in the Raven Kernel
USENIX Microkernels and Other Kernel Architectures Symposium
The Raven Kernel: a Microkernel for shared memory multiprocessors
The Raven Kernel: a Microkernel for shared memory multiprocessors
Hi-index | 0.00 |
This paper describes a framework for splitting the implementation of network protocols in the x-kernel into a user-level library, which implements the majority of the protocol functionality, and a kernel component, which provides a fast track to demultiplex packets into the appropriate recipient address space. The design also provides the user with flexibility to decide which aspects of the protocol implementation should be in user space and which should be in the kernel. We implement an example TCP/UDP-IP-Ethernet protocol stack and report on its performance which is competitive with monolithic implementations. The kernel level demultiplexing of network packets is well structured, modular and scalable. The cost of demultiplexing is shown to be insensitive to the number of user-level instances of protocols. The performance of the approach on a multiprocessor system shows that non-monolithic protocol implementations are potentially more parallelizable than traditional monolithic ones.