Inferno (operating system)

Last updated
Inferno
Inferno 4th Edition.png
Inferno 4th Edition
Developer Bell Labs, Vita Nuova Holdings
Written in C, [1] Limbo
Working stateDiscontinued
Source model Open-source
Initial release1996;28 years ago (1996)
Latest release 4th Edition / March 28, 2015;8 years ago (2015-03-28)
Repository
Available in English
Platforms ARM, PA-RISC, MIPS, PowerPC, SPARC, x86
Kernel type Virtual machine (Dis)
License 2021: MIT [2] [3]
2005: Dual [lower-alpha 1] [4] [5]
2003: Dual [lower-alpha 2] [6] [7] [8] [9]
2000: Inferno [lower-alpha 3] [10]
Original: Proprietary
Preceded by Plan 9
Official website www.vitanuova.com/inferno/

Inferno is a distributed operating system started at Bell Labs and now developed and maintained by Vita Nuova Holdings as free software under the MIT License. [2] [3] 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, many of its associated programs, and that of the current company, were inspired by Dante Alighieri's Divine Comedy . In Italian, Inferno means "hell", of which there are nine circles in Dante's Divine Comedy.

Contents

Design principles

Inferno was created in 1995 by members of Bell Labs' Computer Science Research division to bring ideas derived from their previous operating system, Plan 9 from Bell Labs, to a wider range of devices and networks. Inferno is a distributed operating system based on three basic principles:

To handle the diversity of network environments it was intended to be used in, the designers decided a virtual machine (VM) 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, in contrast 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. [11]

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 several dimensions of portability and versatility provided by the OS: [12]

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.

Features

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.

Most of the Inferno commands are very similar to Unix commands with the same name. [13]

History

Lucent advertisement for Inferno in IEEE Internet Computing, Volume 1, Number 2, March-April 1997 Lucent 1997 Ad.jpg
Lucent advertisement for Inferno in IEEE Internet Computing, Volume 1, Number 2, March–April 1997

Inferno is a descendant of Plan 9 from Bell Labs, 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 the mid-1990s, Plan 9 development was set aside in favor of Inferno. [14] The new system's existence was leaked by Dennis Ritchie in early 1996, after less than a year of development on the system, and publicly presented later that year as a competitor to Java. At the same time, Bell Labs' parent company AT&T licensed Java technology from Sun Microsystems. [15]

In March–April 1997 IEEE Internet Computing included an advertisement for Inferno networking software. It claimed that various devices could communicate over "any network" including the Internet, telecommunications and LANs. The advertisement stated that video games could talk to computers,–a PlayStation was pictured–cell phones could access email and voice mail was available via TV.

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 Vita Nuova Holdings. Vita Nuova continued development and offered commercial licenses to the complete system, and free downloads and licenses (not GPL compatible) for all of the system except the kernel and VM. They ported the software to new hardware and focused on distributed applications. Eventually, Vita Nuova released the 4th edition under more common free software licenses, and in 2021 they relicensed all editions under mainly the MIT License. [6] [2] [3]

Release timeline
DateReleaseComment
1996Inferno BetaReleased by Bell Labs
May 1997Inferno Release 1.0Winter 1997 Bell Labs Technical Journal Article
July 1999Inferno 2nd EditionReleased by Lucent's Inferno Business Unit
June 2001Inferno 3rd EditionReleased by Vita Nuova
2004Inferno 4th EditionOpen Source release; changes to many interfaces (incompatible with earlier editions); includes support for 9P2000.

Ports

Inferno runs on native hardware directly 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 modifying or recompiling.

Native ports include these architectures: x86, MIPS, 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. [16] Vita Nuova said that plugins for other browsers were under development, but they were never released. [17]

Inferno has also been ported to Openmoko, [18] Nintendo DS, [19] SheevaPlug, [20] and Android. [21]

Distribution

Inferno 4th edition was released in early 2005 as free software. Specifically, it was dual-licensed under two structures. [6] 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, excluding the fonts, which are sub-licensed from Bigelow and Holmes.

In March 2021, all editions were relicensed under mainly the MIT License. [2] [3]

See also

Notes

  1. "The Free Software Scheme" and "Commercial Developer Licence"
  2. "Vita Nuova Liberal Source Licence" and "Vita Nuova Commercial Developer Licence"
  3. "Vita Nuova Inferno Subscription License"

Related Research Articles

<span class="mw-page-title-main">Dennis Ritchie</span> American computer scientist, co-creator of the Unix operating system

Dennis MacAlistair Ritchie was an American computer scientist. He is best known for creating the C programming language and, with long-time colleague Ken Thompson, the Unix operating system and B programming language. Ritchie and Thompson were awarded the Turing Award from the ACM in 1983, the Hamming Medal from the IEEE in 1990 and the National Medal of Technology from President Bill Clinton in 1999. Ritchie was the head of Lucent Technologies System Software Research Department when he retired in 2007. He was the "R" in K&R C, and commonly known by his username dmr.

<span class="mw-page-title-main">Operating system</span> Software that manages computer hardware resources

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

<span class="mw-page-title-main">Plan 9 from Bell Labs</span> Distributed operating system

Plan 9 from Bell Labs is a distributed operating system which originated from the Computing Science Research Center (CSRC) at Bell Labs in the mid-1980s and built on UNIX concepts first developed there in the late 1960s. Since 2000, Plan 9 has been free and open-source. The final official release was in early 2015.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

A computing platform, digital platform, or software platform is an environment in which software is executed. It may be the hardware or the operating system (OS), a web browser and associated application programming interfaces, or other underlying software, as long as the program code is executed using the services provided by the platform. Computing platforms have different abstraction levels, including a computer architecture, an OS, or runtime libraries. A computing platform is the stage on which computer programs can run.

<span class="mw-page-title-main">Acme (text editor)</span>

Acme is a text editor and graphical shell from the Plan 9 from Bell Labs operating system, designed and implemented by Rob Pike. It can use the Sam command language. The design of the interface was influenced by Oberon. It is different from other editing environments in that it acts as a 9P server. A distinctive element of the user interface is mouse chording.

Limbo is a programming language for writing distributed systems and is the language used to write applications for the Inferno operating system. It was designed at Bell Labs by Sean Dorward, Phil Winterbottom, and Rob Pike.

This article presents a timeline of events in the history of computer operating systems from 1951 to the current day. For a narrative explaining the overall developments, see the History of operating systems.

JavaOS is a discontinued operating system based on a Java virtual machine. It was originally developed by Sun Microsystems. Unlike Windows, macOS, Unix, or Unix-like systems which are primarily written in the C programming language, JavaOS is primarily written in Java. It is now considered a legacy system.

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 system.

<span class="mw-page-title-main">Singularity (operating system)</span> Experimental operating system from Microsoft Research

Singularity is an experimental operating system developed by Microsoft Research between July 9, 2003, and February 7, 2015. It was designed as a high dependability OS in which the kernel, device drivers, and application software were all written in managed code. Internal security uses type safety instead of hardware memory protection.

<span class="mw-page-title-main">History of Unix</span>

The history of Unix dates back to the mid-1960s, when the Massachusetts Institute of Technology, AT&T Bell Labs, and General Electric were jointly developing an experimental time-sharing operating system called Multics for the GE-645 mainframe. Multics introduced many innovations, but also had many problems. Bell Labs, frustrated by the size and complexity of Multics but not its aims, slowly pulled out of the project. Their last researchers to leave Multics – among them Ken Thompson, Dennis Ritchie, Doug McIlroy, and Joe Ossanna – decided to redo the work, but on a much smaller scale.

The following is a timeline of virtualization development. In computing, virtualization is the use of a computer to simulate another computer. Through virtualization, a host simulates a guest by exposing virtual hardware devices, which may be done through software or by allowing access to a physical device connected to the machine.

<span class="mw-page-title-main">Berkeley Software Distribution</span> Unix operating system

The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley. The term "BSD" commonly refers to its open-source descendants, including FreeBSD, OpenBSD, NetBSD, and DragonFly BSD.

<span class="mw-page-title-main">Unix</span> Family of computer operating systems

Unix is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others.

<span class="mw-page-title-main">Rob Pike</span> Computer programmer and co-creator of Go

Robert Pike is a Canadian programmer and author. He is best known for his work on the Go programming language while working at Google and the Plan 9 operating system while working at Bell Labs, where he was a member of the Unix team.

The History of the Berkeley Software Distribution begins in the 1970s.

References

  1. Dorward, Sean; Pike, Rob; Presotto, David Leo; Ritchie, Dennis M.; Trickey, Howard; Winterbottom, Phil (1997). "The Inferno Operating System". Inferno Documentation. Vita Nuova. Retrieved 2014-05-02.
  2. 1 2 3 4 "Inferno Licence Terms". Archived from the original on 2021-04-27. Retrieved 2021-06-17. MIT
  3. 1 2 3 4 "inferno-os — Bitbucket" . Retrieved 2021-06-17.
  4. "Inferno Licence Terms". Archived from the original on 2005-08-11. Retrieved 2021-06-17. The Free Software Scheme" and "Commercial Developer Licence
  5. "Vita Nuova Commercial Developer License - 9 November 2005". Archived from the original on 2006-05-02. Retrieved 2021-06-17.
  6. 1 2 3 "Inferno Licence Terms". Archived from the original on 2003-10-26. Retrieved 2021-06-17. Vita Nuova Liberal Source Licence" and "Vita Nuova Commercial Developer Licence
  7. "Vita Nuova Liberal Source License - 29 May 2003". Archived from the original on 2005-04-05. Retrieved 2021-06-17.
  8. "Vita Nuova Liberal Source License - 14 May 2003". Archived from the original on 2004-02-23. Retrieved 2021-06-17.
  9. "Vita Nuova Commercial Developer License - 22 April 2003". Archived from the original on 2004-06-25. Retrieved 2021-06-17.
  10. "Vita Nuova Inferno Subscription Licence". Archived from the original on 2000-12-08. Retrieved 2021-06-17.
  11. Huelsbergen, Lorenz; Winterbottom, Phil (1998). Very Concurrent Mark and Sweep Garbage Collection without Fine-Grain Synchronization (PDF). 1998 International Symposium on Memory Management.
  12. "The Inferno Operating System". Bell Labs Technical Journal (papers). Vita Nuova Holdings. 2 (1, Winter 1997): 5–18.
  13. "Inferno - 1".
  14. Pontin, Jason (19 February 1996). "AT&T reveals plans for Java competitor". InfoWorld. p. 3.
  15. Hayes, Frank (19 February 1996). "Bell Lab's Inferno aims to rival Java". Computerworld . p. 6.
  16. "Supporting code to allow Inferno to act as a plugin in various browsers".
  17. Plugins, Vita Nuova.
  18. "inferno-openmoko - inferno for openmoko neo freerunner - Google Project Hosting" . Retrieved 2012-06-04.
  19. Lukkien, Mechiel (2024-01-22), mjl-/inferno-ds , retrieved 2024-01-25
  20. "inferno-kirkwood - Inferno for the Marvell Kirkwood/Sheevaplug - Google Project Hosting" . Retrieved 2012-06-04.
  21. floren (2011-09-29). "floren: inferno: wiki". Bitbucket.org. Retrieved 2012-06-04.

Further reading