||This article needs additional citations for verification. (April 2010)|
Inferno 4th Edition
|Company / developer||Bell Labs, Vita Nuova|
|Source model||Free Software|
|Latest stable release||Fourth Edition / February 2, 2007|
|Supported platforms||ARM, PA-RISC, MIPS, PowerPC, SPARC, x86|
|Kernel type||Virtual machine|
|License||GPL / LGPL/ MIT|
|Official website||Vita Nuova|
Inferno is a distributed operating system started at Bell Labs, but is 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.
Inferno programs are portable across a broad mix of hardware, networks, and environments. It defines a virtual machine, known as Dis, that can be implemented on any real machine, provides Limbo, a type-safe language 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 runs as a user program on top of another operating system.
A communications protocol called Styx is applied uniformly to access both local and remote resources, which programs use by calling standard file operations, open, read, write, and close. As of the fourth edition of Inferno, Styx is identical to Plan 9's newer version of its hallmark 9P protocol, 9P2000.
Inferno was first made in 1995 by members of Bell Labs' Computer Science Research division to bring ideas of Plan 9 from Bell Labs to a wider range of devices and networks. Inferno is a distributed operating system based on three basic principles drawn from Plan 9:
To handle the diversity of network environments it was intended to be used in, the designers decided a virtual machine 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 is a register machine intended to closely match the architecture it runs on, as opposed to the stack machine of the Java Virtual Machine. 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 MiB of memory and without memory-mapping hardware. Its garbage collector 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:
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.
|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, 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. Many of the command line tools in Inferno were Plan 9 tools that were translated to Limbo.
In March–April 1997 IEEE Internet Computing 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.
Ken Thompson, Dennis Ritchie and Douglas McIlroy, members of the Computing Science Research Center at Bell Labs, designed and developed the C programming language to build the operating system Unix. Programmers at Bell Labs went on to develop the Plan 9 and Inferno operating system, which were engineered for modern distributed environments.
Lucent used Inferno in at least two internal products: the Lucent VPN Firewall Brick, and the Lucent Pathstar phone switch. They 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 was heavily marketing its own Java programming language, which was targeting a similar market, with analogous technology, that worked in web browsers and also filled the demand for object-oriented languages popular 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 was sold to Vitanuova. Once Vitanuova owned the rights, it continued development and offered commercial licenses to the complete system, and free downloads and licenses (not GPL 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 GPL license and the Inferno operating system is now a Free/Libre/Open Source Software project.
Inferno runs directly on native hardware and also as an application providing a virtual operating system which runs on other platforms. Programs can be developed and run on all Inferno platforms without modification or recompilation.
Inferno 4th edition was released in early 2005 as free software. 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 proprietary 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, 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-licensed from Bigelow and Holmes) under the GPLv2. All three license options are currently available.
Stanley-Marbell, Phillip (2003). Inferno Programming with Limbo | ISBN 0-470-84352-7. Chichester: John Wiley & Sons. 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.
Atkins, Martin; Forsyth, Charles; Pike, Rob; Trickey, Howard. The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System. was to provide the operating-system-centric point of view, but was never completed.
Of Historical Interest
Here you can share your comments or contribute with more information, content, resources or links about this topic.