Check out the new USENIX Web site. next up previous
Next: SPIN's Approach to Transactional Up: Overview of SPIN Previous: Overview of SPIN

Use of Extensions in SPIN

Figure 2 shows a typical configuration of SPIN. Some SPIN extensions provide basic services used by other extensions. For example, file system extensions provide common directory and file operations like those found in UNIX. The virtual memory extension provides address spaces and memory objects similar to those found in Mach [machDuality].


  
Figure: A typical SPIN configuration. The SPIN kernel and extensions are in the kernel address space. Each user-space application runs in its own address space (shown by different stipple patterns).

SPIN also supports user-space applications. Although the SPIN kernel does not support native system calls, it provides mechanisms that allow extensions to catch events from user-space applications, such as system calls and page faults. The UNIX emulation extension uses these mechanisms to provide the UNIX API for user-space applications[unixemul]. Rhino is another extension that implements a transactional memory service for user-space applications. Note that unlike extensions, user-space applications can be written in any language. They are protected from other components by hardware mechanisms, as they are in other operating systems.


next up previous
Next: SPIN's Approach to Transactional Up: Overview of SPIN Previous: Overview of SPIN
Yasushi Saito
1998-04-27