SPIN (operating system)

Last updated
SPIN
Developer University of Washington
Written in Modula-3
OS family Mach-like [1]
Working stateDiscontinued
Source model Open source
Initial release1994;26 years ago (1994)
Final release 1.0 / November 1996;23 years ago (1996-11)
Repository www-spin.cs.washington.edu/Distro/docs/downloadInfo.html
Marketing targetResearch
Available in English
Update methodDownload, compile
Platforms IA-32
Kernel type Microkernel [2]
Official website www-spin.cs.washington.edu

The SPIN operating system is a research project implemented in the computer programming language Modula-3, and is an open source project. It is designed with three goals: flexibility, safety, and performance. SPIN was developed at the University of Washington.

The kernel can be extended by dynamic loading of modules which implement interfaces that represent domains. These domains are defined by Modula-3 INTERFACE. All kernel extensions are written in Modula-3 safe subset with metalanguage constructs and type safe casting system. The system also issued a special run-time extension compiler.

One set of kernel extensions provides an application programming interface (API) that emulates the Digital Unix system call interface. This allows Unix applications to run on SPIN. [3]

Related Research Articles

Executable and Linkable Format Standard file format for executables, object code, shared libraries, and core dumps

In computing, the Executable and Linkable Format, is a common standard file format for executable files, object code, shared libraries, and core dumps. First published in the specification for the application binary interface (ABI) of the Unix operating system version named System V Release 4 (SVR4), and later in the Tool Interface Standard, it was quickly accepted among different vendors of Unix systems. In 1999, it was chosen as the standard binary file format for Unix and Unix-like systems on x86 processors by the 86open project.

Microkernel kernel that provides fewer services than a traditional kernel

In computer science, a microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low-level address space management, thread management, and inter-process communication (IPC).

Operating system Software that manages computer hardware resources

An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.

The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines the application programming interface (API), along with command line shells and utility interfaces, for software compatibility with variants of Unix and other operating systems.

Exokernel

Exokernel is an operating system kernel developed by the MIT Parallel and Distributed Operating Systems group, and also a class of similar operating systems.

System call in computer science, the mechanism used by an application program to request service from the operating system or another application program

In computing, a system call is the programmatic way in which a computer program requests a service from the kernel of the operating system it is executed on. This may include hardware-related services, creation and execution of new processes, and communication with integral kernel services such as process scheduling. System calls provide an essential interface between a process and the operating system.

Unix philosophy Philosophy on developing software

The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to minimalist, modular software development. It is based on the experience of leading developers of the Unix operating system. Early Unix developers were important in bringing the concepts of modularity and reusability into software engineering practice, spawning a "software tools" movement. Over time, the leading developers of Unix established a set of cultural norms for developing software; these norms became as important and influential as the technology of Unix itself; this has been termed the "Unix philosophy."

A rootkit is a collection of computer software, typically malicious, designed to enable access to a computer or an area of its software that is not otherwise allowed and often masks its existence or the existence of other software. The term rootkit is a portmanteau of "root" and the word "kit". The term "rootkit" has negative connotations through its association with malware.

Modula-3 programming language

Modula-3 is a programming language conceived as a successor to an upgraded version of Modula-2 known as Modula-2+. While it has been influential in research circles it has not been adopted widely in industry. It was designed by Luca Cardelli, James Donahue, Lucille Glassman, Mick Jordan, Bill Kalsow and Greg Nelson at the Digital Equipment Corporation (DEC) Systems Research Center (SRC) and the Olivetti Research Center (ORC) in the late 1980s.

ARX was an unreleased Mach-like operating system written in Modula-2+ developed by Acorn Computers Ltd in the Acorn Research Centre (ARC) United Kingdom (UK) and later Olivetti Research Center and later on Software Technology Laboratory at Palo Alto, California for their new ARM architecture reduced instruction set computer (RISC) central processing unit (CPU) based Archimedes personal computers. According to the project Application Manager during the project, while Acorn was developing the kernel, it used C and Acorn Modula Execution Library (CAMEL) in Acorn Extended Modula-2 (AEM2) compiler, though never released externally, CAMEL was ported to use it in Sun Microsystems Unix computer, in an effort to port Sun's workstations Sun NeWS to the Archimedes, and after Olivetti acquired Acorn, developed a compiler based on AEM2 for the programming language Modula-3.

Inferno (operating system) distributed operating system based on ideas and technology from Plan 9

Inferno is a distributed operating system started at Bell Labs and now developed and maintained by Vita Nuova Holdings as free software. Inferno was based on the experience gained with Plan 9 from Bell Labs, and the further research of Bell Labs into operating systems, languages, on-the-fly compilers, graphics, security, networking and portability. The name of the operating system and many of its associated programs, as well as that of the current company, were inspired by Dante Alighieri's Divine Comedy. Interestingly, in Italian, Inferno means "hell" — of which there are nine circles in Dante's Divine Comedy.

XNU computer operating system kernel

XNU is the computer operating system (OS) kernel developed at Apple Inc. since December 1996 for use in the macOS operating system and released as free and open-source software as part of the Darwin OS, which is the basis for the Apple TV Software, iOS, iPadOS, watchOS, and tvOS OSes. XNU is an abbreviation of X is Not Unix.

Helios is a discontinued Unix-like operating system for parallel computers. It was developed and published by Perihelion Software. Its primary architecture was the Transputer. Helios' microkernel implemented a distributed namespace and messaging protocol, through which services were accessed. A POSIX compatibility library enabled the use of Unix application software, and the system provided most of the usual Unix utilities.

Extensibility is a software engineering and systems design principle that provides for future growth. Extensibility is a measure of the ability to extend a system and the level of effort required to implement the extension. Extensions can be through the addition of new functionality or through modification of existing functionality. The principle provides for enhancements without impairing existing system functions.

In computing, ioctl is a system call for device-specific input/output operations and other operations which cannot be expressed by regular system calls. It takes a parameter specifying a request code; the effect of a call depends completely on the request code. Request codes are often device-specific. For instance, a CD-ROM device driver which can instruct a physical device to eject a disc would provide an ioctl request code to do that. Device-independent request codes are sometimes used to give userspace access to kernel functions which are only used by core system software or still under development.

Caldera OpenLinux (COL) is a defunct Linux distribution that was originally introduced by Caldera in 1997 based on the German LST Power Linux distribution, and then taken over and further developed by Caldera Systems since 1998. A successor to the Caldera Network Desktop put together by Caldera since 1995, OpenLinux was an early "business-oriented distribution" and foreshadowed the direction of developments that came to most other distributions and the Linux community generally.

Kernel (operating system) main component of most computer operating systems

The kernel is a computer program at the core of a computer's operating system with complete control over everything in the system. It is the "portion of the operating system code that is always resident in memory". It facilitates interactions between hardware and software components. On most systems, it is one of the first programs loaded on startup. It handles the rest of startup as well as input/output requests from software, translating them into data-processing instructions for the central processing unit. It handles memory and peripherals like keyboards, monitors, printers, and speakers.

The expression problem is a term used in discussing strengths and weaknesses of various programming paradigms and programming languages.

Vino was a now-inactive project at Harvard University that sought to develop an extensible-kernel operating system based on NetBSD.

Emin Gün Sirer is a Turkish-American computer scientist. He is currently an associate professor of computer science at Cornell University, co-director of IC3. He is known for his contributions to peer-to-peer systems, operating systems and computer networking.

References

  1. Bershad, Brian N.; Savage, Stefan; Pardyak, Przemys; Sirer, Emin Gün; Fiuczynski, Marc E.; Becker, David; Chambers, Craig; Eggers, Susan (1995). "Extensibility, safety and performance in the SPIN operating system": 267–284.Cite journal requires |journal= (help)
  2. Bershad, Brian N.; Chambers, Craig; Eggers, Susan; Maeda, Chris; Mcnamee, Dylan; Pardyak, Przemyslaw; Savage, Stefan; Sirer, Emin Gün (1994). "SPIN: an extensible microkernel for application-specific operating system services": 68–71.Cite journal requires |journal= (help)
  3. Dion, David (1996). "A User-Level Unix Server for the SPIN Operating System".Cite journal requires |journal= (help)