Learn More
This paper describes the motivation, architecture and performance of SPIN, an extensible operating system. SPIN provides an extension infrastructure, together with a core set of extensible services, that allow applications to safely change the operating system's interface and implementation. Extensions allow an application to specialize the underlying(More)
This paper reports our experiences building PlanetLab over the last four years. It identifies the requirements that shaped PlanetLab, explains the design decisions that resulted from resolving conflicts among these requirements, and reports our experience implementing and supporting the system. Due in large part to the nature of the "PlanetLab experiment,"(More)
Hypervisors, popularized by Xen and VMware, are quickly becoming commodity. They are appropriate for many usage scenarios, but there are scenarios that require system virtualization with high degrees of both <i>isolation</i> and <i>efficiency</i>. Examples include HPC clusters, the Grid, hosting centers, and PlanetLab. We present an alternative to(More)
The rapid advancements of networking technology have boosted potential bandwidth to the point that the cabling is no longer the bottleneck. Rather, the bottlenecks lie at the crossing points, the nodes of the network, where data traffic is intercepted or forwarded. As a result, there has been tremendous interest in speeding those nodes, making the equipment(More)
We have identified three areas where language support for operating system extensibility is important: performance, safety, and expressive power. First, an extension language should support pointer-safe casting to avoid unnecessary copying of data. Second, an extension language must allow a caller to isolate untrusted code. Finally, an extension language(More)
Linux is increasingly used to power everything from embedded devices to super computers. Developers of such systems often start with a mainline kernel from kernel.org and then apply patches for their application domain. Many of these patches represent cross-cutting concerns in that they do not fit within a single program module and are scattered throughout(More)
The emergence of fast, cheap embedded processors presents the opportunity for processing to occur on the network adapter. We are investigating how a system design incorporating such an intelligent network adapter can be used for applications that benefit from being tightly integrated with the network subsystem. We are developing a safe, extensible operating(More)
In previous work, we presented a domain-specific version of C, called C4, which was used for capturing extensions to the Linux 2.6 kernel using AOSD techniques as an alternative to the conventional patching approach [10, 19]. The focus of that work was on introducing new extensions represented as aspects in system software such as the Linux kernel with a(More)
The first OSR issue I read was Volume 29 No. 2 (April 1995). At the time I was actively working on the SPIN Extensible Operating System [5] and looking for new ways to safely expose interrupt handling to user-provided code loaded into the kernel. The article by Kleiman and Eykholt on "Interrupts as Threads" in that issue of OSR was highly relevant and(More)