Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Inferno (operating system)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Distributed operating system}} {{More citations needed|date=April 2010}} {{Infobox OS | name = Inferno | logo = | screenshot = Inferno 4th Edition.png | caption = Inferno 4th Edition | developer = [[Bell Labs]], Vita Nuova Holdings | source_model = [[Open-source software|Open-source]] | kernel_type = [[Virtual machine]] ([[Dis virtual machine|Dis]]) | supported_platforms = [[ARM architecture|ARM]], [[PA-RISC]], [[MIPS architecture|MIPS]], [[PowerPC]], [[SPARC]], [[x86]] | ui = | family = | released = {{Start date and age|1996}} | latest_release_version = 4th Edition | latest_release_date = {{Start date and age|2015|03|28}} | marketing_target = | programmed_in = [[C (programming language)|C]],<ref name="bltj">{{Cite web |url=https://inferno-os.org/inferno/papers/bltj.html |title=The Inferno Operating System |first1=Sean |last1=Dorward |first2=Rob |last2=Pike |first3=David Leo |last3=Presotto |first4=Dennis M. |last4=Ritchie |first5=Howard |last5=Trickey |first6=Phil |last6=Winterbottom|work=Inferno Documentation |publisher=Vita Nuova |date=1997 |access-date=2014-05-02}}</ref> [[Limbo (programming language)|Limbo]] | language = English | update model = | package_manager = | working_state = Discontinued | license = 2021: [[MIT License|MIT]]<ref name="license-2021-mit">{{cite web|title=Inferno Licence Terms|url=http://www.vitanuova.com/inferno/licence.html|quote=The bulk of Inferno 4th Edition is provided under the `MIT' licence.|access-date=2021-06-17|archive-date=2021-04-27|archive-url=https://web.archive.org/web/20210427125350/http://www.vitanuova.com/inferno/licence.html|url-status=dead}}</ref><ref name="bitbucket-inferno-os">{{cite web|title=inferno-os — Bitbucket|url= https://bitbucket.org/inferno-os/|access-date=2021-06-17}}</ref><br/>2005: Dual{{efn|name=dual-license-2005|"The Free Software Scheme" and "Commercial Developer Licence"}}<ref name="licenses-2005">{{cite web|title=Inferno Licence Terms|quote="The Free Software Scheme" and "Commercial Developer Licence"|url=http://www.vitanuova.com/inferno/licence.html|archive-date=2005-08-11|archive-url=https://web.archive.org/web/20050811084131/http://www.vitanuova.com/inferno/licence.html|url-status=dead}}</ref><ref name="commercial-2005-11-09">{{cite web|title=Vita Nuova Commercial Developer License - 9 November 2005|url=http://www.vitanuova.com/inferno/comlicence.html|archive-date=2006-05-02|archive-url=https://web.archive.org/web/20060502040720/http://www.vitanuova.com/inferno/comlicence.html|url-status=dead}}</ref><br/>2003: Dual{{efn|name=dual-license-2003|"Vita Nuova Liberal Source Licence" and "Vita Nuova Commercial Developer Licence"}}<ref name="licenses-2003">{{cite web|title=Inferno Licence Terms|quote="Vita Nuova Liberal Source Licence" and "Vita Nuova Commercial Developer Licence"|url=http://www.vitanuova.com/inferno/licence.html|archive-date=2003-10-26|archive-url=https://web.archive.org/web/20031026175452/http://www.vitanuova.com/inferno/licence.html|url-status=dead}}</ref><ref name="liberal-2003-05-29">{{cite web|title=Vita Nuova Liberal Source License - 29 May 2003|url=http://www.vitanuova.com/inferno/liblicence.html|archive-date=2005-04-05|archive-url=https://web.archive.org/web/20050405200241/http://www.vitanuova.com/inferno/liblicence.html|url-status=dead}}</ref><ref name="liberal-2003-05-14">{{cite web|title=Vita Nuova Liberal Source License - 14 May 2003|url=http://www.vitanuova.com/inferno/liblicence.html|archive-date=2004-02-23|archive-url=https://web.archive.org/web/20040223103304/http://www.vitanuova.com/inferno/liblicence.html|url-status=dead}}</ref><ref name="commercial-2003-04-22">{{cite web|title=Vita Nuova Commercial Developer License - 22 April 2003|url=http://www.vitanuova.com/inferno/comlicence.html|archive-date=2004-06-25|archive-url=https://web.archive.org/web/20040625084313/http://www.vitanuova.com/inferno/comlicence.html|url-status=dead}}</ref><br/>2000: Inferno{{efn|name=inferno-license|"Vita Nuova Inferno Subscription License"}}<ref name="license-2000-inferno">{{cite web|title=Vita Nuova Inferno Subscription Licence|url=http://www.vitanuova.com/inferno/comlicence.html|archive-date=2000-12-08|archive-url=https://web.archive.org/web/20001208004700/http://www.vitanuova.com/inferno/licence.html|url-status=dead}}</ref><br/>Original: [[Proprietary software|Proprietary]] | preceded by = [[Plan 9 from Bell Labs|Plan 9]] }} '''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]].<ref name="license-2021-mit"/><ref name="bitbucket-inferno-os"/> 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''. == 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: * Resources as files: all [[Resource (computer science)|resources]] are represented as files within a [[hierarchical file system]] * Namespaces: a program's 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 (protocol)|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]] (VM) was a necessary component of the system. This is the same conclusion of the Oak project that became [[Java (software platform)|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 collection (computer science)|garbage collector]] is a hybrid of reference counting and a real-time coloring collector that gathers cyclic data.<ref name="gc">{{cite conference |last1=Huelsbergen |first1=Lorenz |last2=Winterbottom |first2=Phil |url=http://doc.cat-v.org/inferno/concurrent_gc/concurrent_gc.pdf |title=Very Concurrent Mark and Sweep Garbage Collection without Fine-Grain Synchronization |conference=1998 International Symposium on Memory Management |year=1998}}</ref> The Inferno kernel contains the virtual machine, on-the-fly compiler, scheduler, devices, protocol stacks, the name space evaluator for the file name space of each process, 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:<ref name="bltj" /> * Portability across processors: it currently runs on [[ARM architecture|ARM]], SGI [[MIPS architecture|MIPS]], [[Hewlett-Packard|HP]] [[PA-RISC]], IBM [[PowerPC]], Sun [[SPARC]], and Intel [[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 Bell [[Plan 9 from Bell Labs|Plan 9]], MS [[Windows NT]], [[Windows 95]], and [[Unix]] ([[Silicon Graphics|SGI]] [[Irix]], [[Sun Microsystems|Sun]] [[Solaris (operating system)|Solaris]], [[FreeBSD]], [[Apple, Inc|Apple]] [[Mac OS X]], [[Linux]], [[IBM]] [[AIX]], [[HP-UX]], Digital [[Tru64]]). In all of these environments, Inferno programs 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, programs 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 MiB of memory, and does not require [[Virtual memory|memory-mapping]] hardware. * Portable programs: Inferno programs are written in the [[type-safety|type-safe language]] [[Limbo (programming language)|Limbo]] and compiled to [[Dis virtual machine|Dis]] bytecode, which can be run without modifications on all Inferno platforms. * Dynamic adaptability: programs may, depending on the hardware or other resources available, load different program modules to perform a specific function. For example, a video player 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. == Features == {{Expand section|date=April 2019}} Inferno programs are portable across a broad mix of hardware, networks, and environments. It defines a [[virtual machine]], known as [[Dis virtual machine|Dis]], that can be implemented on any real machine, provides [[Limbo (programming language)|Limbo]], a [[Type safe|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 (protocol)|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 from Bell Labs|Plan 9]]'s newer version of its hallmark [[9P (protocol)|9P]] protocol, [[9P2000]]. {{see also|List of Inferno applications}} Most of the Inferno commands are very similar to [[List of Unix commands|Unix commands]] with the same name.<ref>{{Cite web|url=http://man.cat-v.org/inferno/1/|title=Inferno - 1}}</ref> == History == [[File:Lucent 1997 Ad.jpg|thumb|upright|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.<ref>{{cite news |title=AT&T reveals plans for Java competitor |url=https://books.google.com/books?id=xT4EAAAAMBAJ&pg=PA3 |newspaper=InfoWorld |first=Jason |last=Pontin |date=19 February 1996 |page=3}}</ref> 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]].<ref>{{cite news |title=Bell Lab's Inferno aims to rival Java |date=19 February 1996 |newspaper=[[Computerworld]] |url=https://books.google.com/books?id=jwH_IrNuHmoC&pg=PT5 |page=6 |first=Frank |last=Hayes}}</ref> 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 Technologies|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)|Java programming language]], which was targeting a similar market, with analogous technology, that worked in [[web browser]]s and also filled the demand for [[object-oriented language]]s 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 [[GNU General Public License|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]].<ref name="licenses-2003"/><ref name="license-2021-mit"/><ref name="bitbucket-inferno-os"/> {| class="wikitable" |+ Release timeline |- ! 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 Vita Nuova |- | 2004 | Inferno 4th Edition | Open 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 architecture|x86]], [[MIPS architecture|MIPS]], [[ARM architecture|ARM]], [[PowerPC]], [[SPARC]]. Hosted or virtual OS ports include: [[Microsoft Windows]], [[Linux]], [[FreeBSD]], [[Plan 9 from Bell Labs|Plan 9]], [[Mac OS X]], [[Solaris (operating system)|Solaris]], [[IRIX]], [[UnixWare]]. Inferno can also be hosted by a [[Plug-in (computing)|plugin]] to [[Internet Explorer]].<ref name=plugin-repo>{{cite web |url=https://code.google.com/p/inferno-plugin/ |title=Supporting code to allow Inferno to act as a plugin in various browsers}}</ref> Vita Nuova said that plugins for other browsers were under development, but they were never released.<ref name="plugins">{{cite web |url=http://www.vitanuova.com/inferno/pidoc/index.html |title=Inferno - Plug-in |website=Vita Nuova |archive-url=https://web.archive.org/web/20210508041805/http://www.vitanuova.com/inferno/pidoc/index.html |archive-date=2021-05-08 |url-status=dead}}</ref> Inferno has also been ported to [[Openmoko]],<ref>{{cite web|url=https://code.google.com/p/inferno-openmoko/ |title=inferno-openmoko - inferno for openmoko neo freerunner - Google Project Hosting |access-date=2012-06-04}}</ref> [[Nintendo DS]],<ref>{{Citation |last=Lukkien |first=Mechiel |title=mjl-/inferno-ds |date=2024-01-22 |url=https://github.com/mjl-/inferno-ds |access-date=2024-01-25}}</ref> [[SheevaPlug]],<ref>{{cite web|url=https://code.google.com/p/inferno-kirkwood/ |title=inferno-kirkwood - Inferno for the Marvell Kirkwood/Sheevaplug - Google Project Hosting |access-date=2012-06-04}}</ref> and [[Android (operating system)|Android]].<ref>{{cite web |author=floren |url=https://bitbucket.org/floren/inferno/wiki/Home/ |title=floren: inferno: wiki |publisher=Bitbucket.org |date=2011-09-29 |access-date=2012-06-04}}</ref> == Distribution == Inferno 4th edition was released in early 2005 as [[free software]]. Specifically, it was [[dual-licensed]] under two structures.<ref name="licenses-2003"/> 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]].<ref name="license-2021-mit"/><ref name="bitbucket-inferno-os"/> == See also == {{Portal|Free and open-source software}} * {{annotated link|Language-based system}} * {{annotated link|Singularity (operating system)}} === Notes === {{Reflist|group=lower-alpha}} == References == {{Reflist}} == Further reading == * {{Cite book |first=Phillip |last=Stanley-Marbell |year=2003 |title=Inferno Programming with Limbo |place=Chichester |publisher=John Wiley & Sons |isbn=0-470-84352-7}} 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. * {{Cite book |first=Brian |last=Stuart |year=2008 |title=Principles of Operating Systems: Design and Applications |publisher=Course Technology |isbn=978-1-4188-3769-3}}, uses Inferno for examples of operating system design. * {{Cite book |last1=Atkins |first1=Martin |last2=Forsyth |first2=Charles |last3=Pike |first3=Rob |author3-link=Rob Pike |last4=Trickey |first4=Howard |title=The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System}} was intended to provide an operating-system-centric point of view, but was never completed. == External links == {{Commons category}} * [http://doc.cat-v.org/inferno/4th_edition/ Documentation papers] for the latest inferno release. * [https://inferno-os.org/inferno/downloads.html Inferno Fourth Edition Download], including source code. * [https://inferno-os.org/news/newsgroup.html Mailing list and other resources]. * [http://ninetimes.cat-v.org Ninetimes]: News and articles about Inferno, Plan 9 and related technologies. * [http://ipn.caerwyn.com/ Inferno programmer's notebook] - A journal made by an Inferno developer. * [http://tryinferno.reverso.be/ Try Inferno]: free, in-browser access to a live Inferno system. * [http://lynxline.com/projects/labs-portintg-inferno-os-to-raspberry-pi/ Inferno OS to Raspberry Pi] Labs: Porting Inferno OS to Raspberry Pi {{Rob Pike}} {{Distributed operating systems}} {{FOSS}} [[Category:Inferno (operating system)| ]] [[Category:1996 software]] [[Category:ARM operating systems]] [[Category:Distributed operating systems]] [[Category:Embedded operating systems]] [[Category:Real-time operating systems]] [[Category:X86 operating systems]] [[Category:PowerPC operating systems]] [[Category:MIPS operating systems]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Annotated link
(
edit
)
Template:Citation
(
edit
)
Template:Cite book
(
edit
)
Template:Cite conference
(
edit
)
Template:Cite news
(
edit
)
Template:Cite web
(
edit
)
Template:Commons category
(
edit
)
Template:Distributed operating systems
(
edit
)
Template:Expand section
(
edit
)
Template:FOSS
(
edit
)
Template:Infobox OS
(
edit
)
Template:More citations needed
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Rob Pike
(
edit
)
Template:See also
(
edit
)
Template:Short description
(
edit
)