SPIN OVERVIEW

[SPIN]

Introduction

The SPIN operating system has been under development at the University of Washington for approximately two years. SPIN combines research in systems, languages, and compilers to achieve the three fundamental goals of modern operating systems:
SPIN is designed around a core set of services including threads, virtual memory primitives, device drivers, and the extension mechanism. These modules are the foundation for the rest of the system are required for the machine to boot. Additional features, such as file systems and networking, are implemented in SPIN extensions and dynamically installed into the system while it is running.

Applications

SPIN applications can exist entirely in user-level address spaces, partly in user space and partly in extensions, or entirely in an extensions. Unix applications, for instance, execute entirely in user-level address spaces. They are supported by a set of extensions which emulate the Digital Unix system call interface. On the other hand, the SPIN Web Server is implemented entirely in kernel extensions. This eliminates the need to transfer data and control across the user-kernel protection boundary.

Modula-3

SPIN and its extensions are written in Modula-3, a type-safe programming language developed at DEC SRC. Modula-3 offers modern language features such as objects, garbage collection, and threads. We rely on its type-safe properties to protect sensitive kernel data and interfaces from malicious or errant extensions.
->  SPIN and Modula-3 PostScript of our WCSSS'96 Paper entitled Writing an Operating System with Modula-3. It describes some of the things we've learned using Modula-3 to develop SPIN.
->  Modula-3 Home Page Information on Modula-3 from the people at DEC SRC.
->  Modula-3 Bibliography. Books, papers, and other sources of information on Modula-3 (also maintained by DEC SRC).
->  Modula-3 Archive Modula-3 FAQ, Precompiled Binaries, etc.
->  Modula-3 Tutorial Programming Tutorial for Modula-3
->  When New Fails A short note on failure of NEW in the standard Modula-3 runtime. Describes why it's hard.

spin@cs.washington.edu
Department of Computer Science and Engineering
University of Washington