| | |
Summary: Network Subsystems Reloaded:
A HighPerformance, Defensible Network Subsystem
Anshumal Sinha Sandeep Sarat Jonathan S. Shapiro
anshumal@cs.jhu.edu sarat@cs.jhu.edu shap@cs.jhu.edu
Systems Research Laboratory
Department of Computer Science
Johns Hopkins University
Abstract
Traditionally, operating systems have used monolithic network stack implementations: implementations
where the whole network stack executes in the kernel or (in microkernels) in a single, trusted, user level server.
Code maintenance issues, ease of debugging, need for simultaneous existence of multiple protocols, and secu
rity benefit have argued for removing the networking implementation from kernel and dividing it into multiple
user level protection domains. Previous attempts to do so have failed to deliver adequate performance. Given
the advances made in both hardware (CPU, Memory, NIC) and microkernel design over the last decade, it is
now appropriate to reevaluate how these refactored implementations perform, and to examine the reasons for
earlier failures in greater detail.
Building on the primitives of the EROS microkernel, we have implemented two network subsystems: one
a conventional, user mode, monolithic design and the other a domainfactored user level networking stack
that restructures the network subsystem into several protection domains. We show that the restructuring main
tains performance very close to that of the monolithic design, and that both designs compare favorably to a
|