Home      Discussion      Topics      Dictionary      Almanac
Signup       Login
Inferno (operating system)

Inferno (operating system)

Discussion
Ask a question about 'Inferno (operating system)'
Start a new discussion about 'Inferno (operating system)'
Answer questions from other users
Full Discussion Forum
 
Encyclopedia
Inferno is an operating system
Operating system
An operating system is an interface between hardware and user which is responsible for the management and coordination of activities and the sharing of the resources of the computer that acts as a host for computing applications run on the machine. As a host, one of the purposes of an operating...

 for creating and supporting distributed services.
It was based on the experience of Plan 9 from Bell Labs
Plan 9 from Bell Labs
Plan 9 from Bell Labs is a distributed operating system, primarily used for research. It was developed as the research successor to Unix by the Computing Sciences Research Center at Bell Labs between the mid-1980s and 2002...

, and the further research of Bell Labs into operating systems, languages, on-the-fly compilers, graphics, security, networking and portability.

Inferno applications are portable across a broad mix of hardware, networks, and environments.
It defines a virtual machine
Virtual machine
A virtual machine is a software implementation of a machine that executes programs like a physical machine.-Definitions:...

 (Dis
Dis virtual machine
The Dis virtual machine is the execution environment for application code in the Inferno operating system. Its design is based on a register machine, closely modeling CISC-like architectures on which it runs...

) that
can be implemented on any real machine, provides a type-safe language (Limbo)
that is compiled to portable byte code,
and, more significantly, it includes a virtual operating system
that supplies the same interfaces whether Inferno
runs natively on hardware or is hosted as an application on other systems.

A communications protocol
Communications protocol
In the field of telecommunications, a communications protocol is the set of standard rules for data representation, signaling, authentication and error detection required to send information over a communications channel. An example of a simple communications protocol adapted to voice...

 called Styx is applied uniformly
to access both local and remote resources, which applications
use by calling standard file operations, open, read, write, and close.
As of the fourth edition of Inferno, Styx is identical to Plan 9
Plan 9 from Bell Labs
Plan 9 from Bell Labs is a distributed operating system, primarily used for research. It was developed as the research successor to Unix by the Computing Sciences Research Center at Bell Labs between the mid-1980s and 2002...

's newer version of its hallmark 9P
9P
9P is a network protocol developed for the Plan 9 from Bell Labs distributed operating system as the means of connecting the components of a Plan 9 system. Files are key objects in Plan 9. They represent windows, network connections, processes, and almost anything else available in the operating...

 protocol, 9P2000.

The name of the operating system and of its associated programs, as well as of the company Vita Nuova Holdings that produces it, were inspired by the literary works of Dante Alighieri
Dante Alighieri
Durante degli Alighieri , commonly known as Dante, was an Italian poet of the Middle Ages. His central work, the Divina Commedia , is often considered the greatest literary work composed in the Italian language and a masterpiece of world literature.In...

, particularly the Divine Comedy.

Design principles


Inferno was first made in 1995 by members of Bell Labs
Bell Labs
Bell Laboratories is the research and development organization of Alcatel-Lucent and previously of the American Telephone & Telegraph Company .Bell Laboratories has had its headquarters at Murray Hill, New Jersey, and it has research and development facilities...

' Computer Science Research division to bring ideas of Plan 9 from Bell Labs
Plan 9 from Bell Labs
Plan 9 from Bell Labs is a distributed operating system, primarily used for research. It was developed as the research successor to Unix by the Computing Sciences Research Center at Bell Labs between the mid-1980s and 2002...

 to a wider range of devices and networks. Inferno is a distributed operating system based on three basic principles drawn from Plan 9:
  • Resources as files: all resources
    Resource (computer science)
    A resource, or system resource, is any physical or virtual component of limited availability within a computer system. Every device connected to a computer system is a resource. Every internal system component is a resource...

     are represented as files within a hierarchical file system
    File system
    In computing, a file system is a method for storing and organizing computer files and the data they contain to make it easy to find and access them...

  • Namespaces: the application view of the network is a single, coherent namespace
    Namespace
    In general, a namespace is an abstract container providing context for the items it holds and allowing disambiguation of homonym items having the same name ....

     that appears as a hierarchical file system but may represent physically separated (locally or remotely) resources
  • Standard communication protocol: a standard protocol, called Styx, is used to access all resources, both local and remote


To handle the diversity of network environments it was intended to be used in, the designers decided a virtual machine
Virtual machine
A virtual machine is a software implementation of a machine that executes programs like a physical machine.-Definitions:...

 was a necessary component of the system. This is the same conclusion of the Oak project that became Java, but arrived at independently. The Dis virtual machine
Dis virtual machine
The Dis virtual machine is the execution environment for application code in the Inferno operating system. Its design is based on a register machine, closely modeling CISC-like architectures on which it runs...

 is a register machine intended to closely match the architecture it runs on, as opposed to the stack machine of the Java Virtual Machine
Java Virtual Machine
A Java Virtual Machine is a set of computer software programs and data structures that use a virtual machine model for the execution of other computer programs and scripts. The model used by a JVM accepts a form of computer intermediate language commonly referred to as Java bytecode...

. An advantage of this approach is the relative simplicity of creating a just-in-time compiler for new architectures.

The virtual machine provides memory management designed to be efficient on
devices with as little as 1 MB of memory and without memory-mapping hardware. Its garbage collector
Garbage collection (computer science)
In computer science, garbage collection is a form of automatic memory management. It is a special case of resource management, in which the limited resource being managed is memory. The garbage collector, or just collector, attempts to reclaim garbage, or memory occupied by objects that are no...

 is a hybrid of reference counting and a real-time coloring collector that gathers cyclic data.

The Inferno kernel contains the virtual machine, on-the-fly compiler, scheduler, devices, protocol stacks, and the name space evaluator for each process' file name space, and the root of the file system hierarchy. The kernel also includes some built-in modules that provide interfaces of the virtual operating system, such as system calls, graphics, security, and math modules.

The Bell Labs Technical Journal paper introducing Inferno listed the several dimensions of portability and versatility provided by the OS,

  • Portability across processors: it currently runs on ARM
    ARM architecture
    The ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Limited. It was known as the Advanced RISC Machine, and before that as the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in terms of numbers produced...

    , MIPS
    MIPS architecture
    MIPS is a reduced instruction set computing instruction set architecture developed by MIPS Computer Systems . The early MIPS architectures were 32-bit, and later versions were 64-bit...

    , PA-RISC
    PA-RISC
    PA-RISC is an instruction set architecture developed by Hewlett-Packard. As the name implies, it is a reduced instruction set computer architecture, where the PA stands for Precision Architecture...

    , PowerPC
    PowerPC
    PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM. Originally intended for personal computers, PowerPC CPUs have since become popular embedded and high-performance processors...

    , SPARC
    SPARC
    SPARC is a RISC instruction set architecture developed by Sun Microsystems introduced in 1986.SPARC is a registered trademark of SPARC International, Inc., an organization established in 1989 to promote the SPARC architecture and to provide conformance testing...

    , and x86 architectures and is readily portable to others.
  • Portability across environments: it runs as a stand-alone operating system on small terminals, and also as a user application under Plan 9, Windows NT
    Windows NT
    Windows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was originally designed to be a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix. It was...

    , Windows 95
    Windows 95
    Windows 95 is a consumer-oriented graphical user interface-based operating system. It was released on August 24, 1995 by Microsoft, and was a significant progression from the company's previous Windows products...

    , and Unix (Irix
    IRIX
    IRIX is a computer operating system developed by Silicon Graphics, Inc. to run natively on their 32- and 64-bit MIPS architecture workstations and servers. It is based on UNIX System V with BSD extensions. IRIX is the origin of the XFS file system....

    , Solaris, FreeBSD
    FreeBSD
    FreeBSD is a free Unix-like operating system descended from AT&T UNIX via the Berkeley Software Distribution . It has been characterized as "the unknown giant among free operating systems". It is not a clone of UNIX, but works like UNIX, with UNIX-compliant internals and system APIs. FreeBSD is...

    , Linux
    Linux
    Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed,...

    , AIX, HP-UX
    HP-UX
    HP-UX is Hewlett-Packard's proprietary implementation of the Unix operating system, based on System V . It runs on the HP 9000 PA-RISC-based range of processors and HP Integrity Intel's Itanium-based systems, and was also available for later Apollo/Domain systems...

    ). In all of these environments, Inferno applications see an identical interface.
  • Distributed design: the identical environment is established at the user's terminal and at the server, and each may import the resources (for example, the attached I/O devices or networks) of the other. Aided by the communications facilities of the run-time system, applications may be split easily (and even dynamically) between client and server.
  • Minimal hardware requirements: it runs useful applications stand-alone on machines with as little as 1 MB of memory, and does not require memory-mapping
    Memory mapping
    In computing, memory mapping may refer to:* Memory-mapped file, also known as mmap* Memory-mapped I/O, an alternative to port I/O; a communication between CPU and peripheral device using the same instructions, and same bus, as between CPU and memory* Virtual memory, technique which...

     hardware.
  • Portable applications: Inferno applications are written in the type-safe language Limbo, whose binary representation is identical over all platforms.
  • Dynamic adaptability: applications may, depending on the hardware or other resources available, load different program modules to perform a specific function. For example, a video player application might use any of several different decoder modules.



These design choices were directed to provide standard interfaces that free content and service providers from concern of the details of diverse hardware, software, and networks over which their content is delivered.

History

Date Release Comment
1996 Inferno Beta Released by Bell Labs
May 1997 Inferno Release 1.0 Winter 1997 Bell Labs Technical Journal Article
July 1999 Inferno 2nd Edition Released by Lucent's Inferno Business Unit
June 2001 Inferno 3rd Edition Released by Vitanuova
2004 Inferno 4th Edition Open Source release; changes to many interfaces (incompatible with earlier editions); includes support for 9P2000.


Inferno is a descendant of Plan 9
Plan 9 from Bell Labs
Plan 9 from Bell Labs is a distributed operating system, primarily used for research. It was developed as the research successor to Unix by the Computing Sciences Research Center at Bell Labs between the mid-1980s and 2002...

, and shares many design concepts and even source code in the kernel, particularly around devices and the Styx/9P2000 protocol.

Inferno shares with Plan 9 the Unix heritage from Bell Labs and the Unix philosophy
Unix philosophy
The Unix philosophy is a set of cultural norms and philosophical approaches to developing software based on the experience of leading developers of the Unix operating system.-McIlroy: A Quarter Century of Unix:...

. Many of the command line tools in Inferno were Plan 9 tools that were translated to Limbo.


In March-April 1997 IEEE Internet Computing
IEEE Internet Computing
IEEE Internet Computing is a bi-monthly magazine, published by the IEEE Computer Society, covering all aspects of emerging and maturing Internet technologies. The journal publishes articles concerning the latest developments, key trends, and new applications related to the Internet...

 included an ad for Inferno networking software. It claimed that various devices could now communicate over "any network" including the Internet, telecommunications and LANs. The ad stated that video games could talk to computers (a PlayStation
PlayStation
The PlayStation is a 32-bit fifth generation video game console released by Sony Computer Entertainment in December ....

 was pictured), cell phones could access email and there was voice mail via TV.

Lucent initially tried to sell source code licenses of Inferno but found few buyers. Lucent did little marketing and missed the importance of the Internet and Inferno's relation to it. During the same time Sun Microsystems
Sun Microsystems
Sun Microsystems, Inc. is a multinational vendor of computers, computer components, computer software, and information technology services, founded on February 24, 1982...

 was heavily marketing its own Java programming language
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

, which was targeting a similar market, with analogous technology, that worked in web browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...

s and also filled the demand for object-oriented languages fashionable at that time. Lucent licensed Java from Sun, claiming that all Inferno devices would be made to run Java. A Java byte code to Dis byte code translator was written to facilitate that. However, Inferno still did not find customers. The Inferno Business Unit closed after three years and the rights to the system were transferred to Vitanuova.

Lucent used Inferno in at least two internal products: the Lucent VPN Firewall Brick, and the Lucent Pathstar phone switch.

Once Vitanuova owned the rights, it continued development and offered commercial licenses to the complete system, and free downloads and licenses (not GPL
GNU General Public License
The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project....

 compatible) for all the system except the kernel and VM. They ported the software to new hardware and focused on distributed applications. Eventually, Vitanuova released the source under the GPLv2 licenses and the Inferno operating system is now an open source
Open source
Open source is an approach to the design, development, and distribution of software, offering practical accessibility to a software's source code. Some consider open source as one of various possible design approaches, while others consider it a critical strategic element of their operations...

 project.

Ports


Inferno runs directly on native hardware and also as an application providing a virtual operating system which runs on other platforms. Applications can be developed and run on all Inferno platforms without modification or recompilation.

Native ports include: x86
X86 architecture
The term x86 refers to a family of instruction set architectures based on the Intel 8086. The term derived from the fact that many early processors backward compatible with the 8086 also had names ending in "86". Many additions and extensions have been added to the x86 instruction set over the...

, MIPS
MIPS architecture
MIPS is a reduced instruction set computing instruction set architecture developed by MIPS Computer Systems . The early MIPS architectures were 32-bit, and later versions were 64-bit...

, ARM
ARM architecture
The ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Limited. It was known as the Advanced RISC Machine, and before that as the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in terms of numbers produced...

, PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM. Originally intended for personal computers, PowerPC CPUs have since become popular embedded and high-performance processors...

, SPARC
SPARC
SPARC is a RISC instruction set architecture developed by Sun Microsystems introduced in 1986.SPARC is a registered trademark of SPARC International, Inc., an organization established in 1989 to promote the SPARC architecture and to provide conformance testing...

.

Hosted or Virtual OS ports include: Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces...

, Linux
Linux
Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed,...

, FreeBSD
FreeBSD
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via the Berkeley Software Distribution . It has been characterized as "the unknown giant among free operating systems". It is not a clone of UNIX, but works like UNIX, with UNIX-compliant internals and system APIs. FreeBSD is...

, Plan 9
Plan 9 from Bell Labs
Plan 9 from Bell Labs is a distributed operating system, primarily used for research. It was developed as the research successor to Unix by the Computing Sciences Research Center at Bell Labs between the mid-1980s and 2002...

, Mac OS X
Mac OS X
Mac OS X is a line of computer operating systems developed, marketed, and sold by Apple Inc., and since 2002 has been included with all new Macintosh computer systems...

, Solaris, IRIX
IRIX
IRIX is a computer operating system developed by Silicon Graphics, Inc. to run natively on their 32- and 64-bit MIPS architecture workstations and servers. It is based on UNIX System V with BSD extensions. IRIX is the origin of the XFS file system....

, UnixWare
UnixWare
UnixWare is a Unix operating system maintained by The SCO Group . Unixware is typically deployed as a server rather than desktop. Binary distributions of UnixWare are available for x86 architecture computers. It was originally released by Univel, a jointly owned venture of AT&T's Unix System...

.

Inferno can also be hosted by a plugin
Plugin
In computing, a plug-in consists of a computer program that interacts with a host application to provide a certain, usually very specific, function "on demand"...

 to Internet Explorer
Internet Explorer
Windows Internet Explorer , is a series of graphical web browsers developed by Microsoft and included as part of the Microsoft Windows line of operating systems starting in 1995...

. According to Vita Nuova, plugins for others browsers are underway.

Inferno is also ported to OpenMoko
Openmoko
Openmoko is a project which encompasses two related sub-projects, with the combined aim of creating a family of open source mobile phones. The project is sponsored by Openmoko Inc....

 http://code.google.com/p/inferno-openmoko/ and Nintendo DS
Nintendo DS
The is a dual-screen handheld game console developed and manufactured by Nintendo. It was released in 2004 in Canada, the United States, and Japan. The console features a clamshell design, similar to the Game Boy Advance SP, with two LCD screens inside—with the bottom one being a touchscreen...

 http://code.google.com/p/inferno-ds/.

License


Inferno 4th edition was released in early 2005 as free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also...

. Specifically, it was dual-licensed under two sets of licenses. Users could either obtain it under a set of free software licenses, or they could obtain it under a more traditional commercial license. In the case of the free software license scheme, different parts of the system were covered by different licenses, including the GNU General Public License
GNU General Public License
The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project....

, the GNU Lesser General Public License
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...

, the Lucent Public License
Lucent Public License
The Lucent Public License is an open-source license created by Lucent Technologies. It has been released in two versions: Version 1.0 and 1.02....

, and the MIT License
MIT License
The MIT License is a free software license originating at the Massachusetts Institute of Technology , used by the MIT X Consortium.It is a permissive license, meaning that it permits reuse within proprietary software on the condition that the license is distributed with that software...

. Subsequently Vita Nuova has made it possible to acquire the entire system (excluding the fonts, which are sub-licensed from Bigelow and Holmes) under the GPLv2
GNU General Public License
The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project....

. All three license options are currently available.

Books


The textbook Inferno Programming with Limbo ISBN 0470843527 (Chichester: John Wiley & Sons, 2003), by Phillip Stanley-Marbell, describes the 3rd edition of the Inferno operating system, though it focuses more on the Limbo language and its interfaces to the Inferno system, than on the Inferno system itself. For example, it provides little information on Inferno's versatile command shell, which is understandable since it is a programming language textbook.

Another textbook Principles of Operating Systems: Design and Applications ISBN 1418837695 (Course Technology, 2008), by Brian Stuart, uses Inferno for examples of operating system design.

The book "The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System", by Martin Atkins, Charles Forsyth, Rob Pike
Rob Pike
Robert C. Pike is a software engineer and author. He is best known for his work at Bell Labs, where he was a member of the Unix team and was involved in the creation of the Plan 9 from Bell Labs and Inferno operating systems, as well as the Limbo programming language.He also co-developed the Blit...

 and Howard Trickey, was intended to provide the operating-system-centric point of view, but was unfortunately never completed/released by its authors.

See also


  • List of Inferno applications
  • Plan 9 from Bell Labs
    Plan 9 from Bell Labs
    Plan 9 from Bell Labs is a distributed operating system, primarily used for research. It was developed as the research successor to Unix by the Computing Sciences Research Center at Bell Labs between the mid-1980s and 2002...

  • Unix
    Unix
    Unix is a computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

  • Language-based system
    Language-based system
    In a language-based system, the operating system has both the kernel and applications implemented using a high level programming language, such as Java.-Protection:...

  • JNode
    JNode
    JNode is an open-source project to create a Java platform operating system. The project has taken the unique direction of creating all the software in Java itself, with the exception of some assembly language to boot and load the system...

  • Singularity (operating system)
    Singularity (operating system)
    Singularity is an experimental operating system being built by Microsoft Research since 2003. It is intended as a highly-dependable OS in which the kernel, device drivers, and applications are all written in managed code.- Workings :...

    Similar experimental operating system from Microsoft Research

External links


Ports

Of Historical Interest