is an operating system
for creating and supporting distributed services. 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
, particularly the Divine Comedy
Inferno runs in hosted mode under several different operating systems or natively on a range of hardware architectures. In each configuration the operating system presents the same standard interfaces to its applications.
A communications protocol called Styx is applied uniformly to access both local and remote resources. As of the fourth edition of Inferno, Styx is identical to Plan 9's newer version of its hallmark 9P protocol, 9P2000.
Applications are written in the type-safe Limbo programming language, whose binary representation is identical over all platforms, and may be executed using just-in-time compilation techniques in a virtual machine.
Inferno was first made in 1995 by members of Bell Labs
' Computer Science Research division to bring some principles of Plan 9 from Bell Labs
over to other systems. Inferno is a distributed operating system
based on three basic principles borrowed from Plan 9:
- Resources as files: all resources are represented as files within a hierarchical file system
- Namespaces: the application view of the network is a single, coherent namespace 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
Plan 9 ancestry
Inferno and Plan 9
share a common ancestor, the working version of Plan 9 from about 1996. They share the same design principles, though there are differences:
|| Plan 9
|| Inferno |
|| Runs native code, mostly written in C programming language with a small amount of code in assembly language
|| Runs through a bytecode interpreter or just-in-time compiler called Dis, mostly written in the Limbo programming language |
|| Hybrid kernel
|| Old Plan 9 kernel, modified; includes a virtual machine |
| Kernel modes
|| Switches between user mode (userland) and supervisor mode (kernel)
|| Never leaves supervisor mode (kernel) but provides protection through the use of a virtual machine. |
Inferno is somewhat similar to Java Virtual Machine.
IEEE Internet Computing, March-April 1997 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 was pictured), cell phones could access email and there was voice mail via TV.
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, MIPS, XScale, ARM, PowerPC, SPARC.
Hosted or Virtual OS ports include: Microsoft Windows, Linux, FreeBSD, Plan 9, Mac OS X, Solaris, IRIX, UnixWare.
Inferno can also be hosted by a plugin to Internet Explorer. According to Vita Nuova plugins for others browsers are underway.
Inferno 4th edition was released in early 2005 as free software
. Specifically, it was dual-licensed
under two sets of licences. Users could either obtain it under a set of free software licences
, or they could obtain it under a more traditional commercial licence. In the case of the free software licence scheme, different parts of the system were covered by different licences, including the GNU General Public License
, the GNU Lesser General Public License
, the Lucent Public License
, and the MIT License
. Subsequently Vita Nuova has made it possible to acquire the entire system (excluding the fonts, which are sub-licenced from Bigelow and Holmes
) under the GPLv2
. All three licence options are currently available.
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 book "The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System", by Martin Atkins, Charles Forsyth, Rob Pike
and Howard Trickey, was intended to provide the operating-system-centric point of view, but was unfortunately never completed/released by its authors.