 <i>SPIN</i> allows applications to load code into the kernel at runtime. Because it runs in the kernel, this extension code can access hardware and other operating systems services with with almost no overhead (basically a procedure call), and data can be passed by reference, rather than copied.  The <i>SPIN</i> kernel itself provides a core set of interfaces and capabilities to basic resources.  These are used by collections of extensions to implement general system services such as address spaces, IPC, threads, and networking.  All extension code (and most of the kernel) is written in the typesafe language <A HREF="http://www.cs.washington.edu/research/projects/spin/www/external/modula3/index.html">Modula-3</A>. The property of typesafety prevents extensions from crashing the system by attempting to manipulate arbitrary pieces of code or data.  <p>
