Jump to content
We owe you an explanation.
July 10: An important update for readers in Japan.

You deserve an explanation, so please don't skip this 1-minute read. It's Friday, July 10. Our fundraiser won't last long, but fewer people are seeing our message this month and we might not hit our goal. If you've lost count of how many times you've visited Wikipedia this year, we hope that means it's given you at least ¥300 of knowledge. If everyone who finds Wikipedia useful gave ¥300, we'd hit our goal in a few hours.

It's been 25 years and Wikipedia is still free. It's still created by people, not machines, and we don't run ads or put up paywalls because we're not here to make a profit off your attention. In other words, it's still the internet we were promised.

Less than 2% of our readers donate, so if you've never given and Wikipedia has provided you with at least ¥300 worth of knowledge, donate today. If you are undecided, remember any contribution helps.

Proud host of Wikipedia and other free knowledge projects
How often would you like to donate?
Support Wikipedia year-round
Thanks for your generous support
Please select an amount (JPY)
The average donation in Japan is around ¥800.
  • Preferred Amount
Please select a payment method
Please select an amount (minimum ¥154)
We cannot accept donations greater than 3850000 JPY through our website. Please contact our major gifts staff at benefactors@wikimedia.org.
Please select a payment method
Can we follow up and let you know if we need your help again? The support and advice we get from donors in Japan is priceless, but many donors don't let us stay in touch. Will you commit today, this Friday, to staying in touch with the Wikimedia Foundation?
Sorry to hear that. We don't email often; would you consider changing your mind?
Thanks for changing your mind! We’ll respect your inbox.
Your information is handled in accordance with our donor privacy policy, and each email you receive will include easy unsubscribe options.
Please select an email option
Almost done: Please, make it  monthly.
Monthly support is the best way to ensure that Wikipedia keeps thriving.
How would you like to be reminded?
Whether you give now or later, any contribution helps. We can send you an email or text message reminder to join the 2% of readers who donate.
🎉 Thank you for donating recently! 🎉
Your support means the world to us. We'll hide banners in this browser for the rest of our campaign.
Where your donation goes
Accountability and transparency are core values at the Wikimedia Foundation. We manage funds and resources to ensure that every contribution supports our mission. We have earned the Platinum Seal of Transparency from Candid (formerly GuideStar), and Charity Navigator awarded us its highest rating. You can read our most recent annual report for more information about our financial health.
45% $85.4M Technology 32% $60.7M Support 12% $22.8M Fundraising 11% $20.9M General $189.7M Total Funding
45% Investment in Technology

Nearly half of our budget goes toward supporting the technology that powers Wikipedia and other Wikimedia projects. We are constantly working to enhance the user experience for both contributors and readers, improve site security, and ensure reliable access to our websites globally. This infrastructure and product support sustain one of the top ten most visited websites in the world, all at a fraction of the cost of popular for-profit websites.

32% Support for Volunteers

The global reach of Wikimedia projects is made possible by the hard work of volunteers from across the globe. We provide grants, legal support, and other resources to help build vibrant volunteer communities. Additionally, we promote community engagement through outreach initiatives and advocate for the growth and protection of free knowledge.

12% Allocation to Fundraising Efforts

Donor support is crucial to sustaining Wikipedia and our other free knowledge endeavors. Our team is committed to efficient and effective fundraising throughout the year, ensuring that every contribution helps advance our mission.

11% General and Administrative Expenses

Operational costs are essential for the smooth management and governance of the Wikimedia Foundation. These expenses help us recruit top talent and support staff around the world, empowering them to carry out the mission of the Wikimedia Foundation.

Inferno (operating system)

From Wikipedia, the free encyclopedia
Inferno
Inferno 4th Edition
DeveloperBell Labs, Vita Nuova Holdings
Written inC,[1] Limbo
Working stateDiscontinued
Source modelOpen-source
Initial release1996; 30 years ago (1996)
Latest release4th Edition / March 28, 2015; 11 years ago (2015-03-28)
Repository
Available inEnglish
Supported platformsARM, PA-RISC, MIPS, PowerPC, SPARC, x86
Kernel typeVirtual machine (Dis)
License2021: MIT[2][3]
2005: Dual[a][4][5]
2003: Dual[b][6][7][8][9]
2000: Inferno[c][10]
Original: Proprietary
Preceded byPlan 9
Official websitewww.inferno-os.org

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.

Design principles

[edit]

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 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, 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, 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, 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:[1]

  • Portability across processors: it currently runs on ARM, SGI MIPS, 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, MS Windows NT, Windows 95, and Unix (SGI Irix, Sun Solaris, FreeBSD, 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 memory-mapping hardware.
  • Portable programs: Inferno programs are written in the type-safe language Limbo and compiled to 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

[edit]

Inferno runs either as a native operating system or as a hosted application on several existing operating systems, including Linux, Windows, Plan 9, FreeBSD, Solaris, Mac OS X, and Irix. Supported processor architectures include Intel x86, ARM, PowerPC, and SPARC.[12][13]

Applications are written in the Limbo programming language, which provides static typing, garbage collection, and built-in concurrency features. Limbo code is compiled into architecture-independent bytecode executed by the Dis virtual machine. The Dis VM can interpret the bytecode or compile it just-in-time into native instructions, allowing applications to run consistently across different platforms.[12][13]

All resources in Inferno, such as devices, services, and network connections, are represented as files in a hierarchical namespace and accessed using standard file operations like open, read, write, and close. Inferno uses the Styx protocol, equivalent to Plan 9's 9P2000, to interact with both local and remote resources in a uniform manner.[12][13]

Security features include per-process namespaces, authentication, and encryption. Applications operate within restricted namespaces, limiting their access to only authorized resources. The system supports a range of cryptographic protocols, including RSA, Diffie–Hellman, and symmetric encryption methods such as RC4 and DES.[12]

Inferno provides a full development environment that includes a compiler, graphical debugger, scripting tools, and libraries for networking and user interfaces. It supports dynamic module loading and can operate with low resource requirements, such as systems with 1 MB of memory.[12][13]

History

[edit]
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
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

[edit]

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][22]

Distribution

[edit]

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

[edit]

Notes

[edit]
  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"

References

[edit]
  1. Jump up to: 1 2 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. Jump up to: 1 2 3 4 "Inferno Licence Terms". Archived from the original on 2021-04-27. Retrieved 2021-06-17. The bulk of Inferno 4th Edition is provided under the `MIT' licence.
  3. Jump up to: 1 2 3 4 "GitHub - inferno-os/inferno-os". Retrieved 2025-10-05.
  4. "Inferno Licence Terms". Archived from the original on 2005-08-11. 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.
  6. Jump up to: 1 2 3 "Inferno Licence Terms". Archived from the original on 2003-10-26. 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.
  8. "Vita Nuova Liberal Source License - 14 May 2003". Archived from the original on 2004-02-23.
  9. "Vita Nuova Commercial Developer License - 22 April 2003". Archived from the original on 2004-06-25.
  10. "Vita Nuova Inferno Subscription Licence". Archived from the original on 2000-12-08.
  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. Jump up to: 1 2 3 4 5 Dorward, Steven; Fioravanti, Alan; Nehab, Marcelo; Pike, Rob; Trickey, Howard; Winterbottom, Phil (1997). "The Inferno Operating System". Bell Labs Technical Journal. 2 (1): 5–18.
  13. Jump up to: 1 2 3 4 "Inferno". Retrieved 2025-08-03.
  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. "Inferno - Plug-in". Vita Nuova. Archived from the original on 2021-05-08.
  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. "Inferno OS Running On Android Phones". Slashdot. 2011-09-17. Retrieved 2025-10-05.
  22. John Floren (2011-09-16). "Announcing Inferno for Android phones". Retrieved 2025-10-05.

Further reading

[edit]
  • Stanley-Marbell, Phillip (2003). Inferno Programming with Limbo. Chichester: 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.
  • Stuart, Brian (2008). Principles of Operating Systems: Design and Applications. Course Technology. ISBN 978-1-4188-3769-3., uses Inferno for examples of operating system design.
  • Atkins, Martin; Forsyth, Charles; Pike, Rob; Trickey, Howard. 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.
[edit]