The extensibility of SPIN makes it an excellent vehicle for operating systems research. Listed below are some of the interesting projects that use SPIN as a development platform. The Kimera project incorporates experience from the SPIN project into a distributed Java virtual machine implementation.

Security in an Extensible System

We are investigating ways of coping with security concerns in extensible systems such as SPIN and Java. For further information, consult a research overview.

Transaction Support

We are using SPIN to implement a high performance persistent storage system. For further information, click here.

Dynamic Compilation

We are investigating the use of dynamic compilation to improve the performance of SPIN. For more information, consult the Dynamic Compilation page.

Unix Emulation

We have been studying different techniques for emulating Unix on SPIN. Included in this discussion are tools to integrate system call interfaces and handlers into SPIN. For more information, click here.

Application-Controlled Caching

We have developed a framework to allow applications to control portions of the system-wide block cache. This framework is being used to improve filing performance and also to implement distributed shared memory. For more information, click here.

Safe Programmable and Integrated Network Environment (SPINE)

We are exploring system designs in which applications can compute directly on the network interface. Several network interfaces, for example MYRINET, and the FORE PCI ATM interface, as well as some research systems (Washington University's ARPA-sponsored gigabit networking interface), provide the infrastructure necessary to compute on the network interface itself. We intend to apply the SPIN technology (use of a safe language, extensible interfaces, and resource management) to the network interface, thereby allowing applications to customize their interaction with the network to improve both performance and reliability. For more information, click here.

Kimera Project

We are building a distributed Java virtual machine in which the system services such as security, resource management and execution, have been factored out of clients into network services. Extracting the services out of the clients enhances security, management, and scalability compared to traditional enterprise-wide systems which are based on replicated monolithic virtual machines. The services produce self-certifying, self-regulating, self-optimizing programs via binary code inspection and binary rewriting. For more information, visit the Kimera home page.

Undergraduate Projects

SPIN-based Firewall (AUC YAAA group)

The security of networks connected to the Internet is a very important and contemporary issue that is currently receiving a lot of attention and research. Firewalls are one of the tools used to contribute to the security of such networks. In our project we are taking a different approach to building firewalls. We are not using the conventional monolithic operating systems as our platform; however, we are using an extensible micro-kerneloperating system as our platform. We took this approach because we believe that such a platform gives us the ability to build a more stable, secure and fast firewall. The extensible micro operating system we are using is the SPIN operating system, which is a research project in the University of Washington. For more information, visit the project page.

IPv6 gateway (Vinh Lam)

Compatibility with the existing installed base of IPv4 nodes is essential for ensuring a successful transition to IPv6. This is recognized by the IPng working group as a major issue that must be resolved in order for the deployment of IPv6 to be feasible. The focus of this project is to implement a gateway in the context of the SPIN that will perform configured IPv6-over-IPv4 tunneling to route IPv6 packets over the test network of the 6bone. For further information, click here.

Symmetric Multiprocessing (Chris Ulbright)

SPIN currently only works on uniprocessor systems. This project is devoted to the adaptation of the SPIN operating system from the current Intel ported version to a version which supports SMP. For further information, click here.

Sockets (Daniel Shiovitz)

This project is devoted to improving the existing socket support for both the Intel x86 and ALPHA platforms.

Department of Computer Science and Engineering
University of Washington