Inferno var baseret på erfaringerne med Plan 9 from Bell Labs, og Bell Labs' videre forskning i styresystemer, programmeringssprog, on-the-fly oversættere, grafik, it-sikkerhed, netværk og portabilitet.
Navnet på styresystemet, mange af dets tilknyttede programmer og det nuværende firmas navn var inspireret af Dante Alighierisguddommelige Komedie. På italiensk betyder Inferno "helvede", hvoraf der er ni cirkler i Dantes guddommelige Komedie.
Inferno blev skabt i 1995 af medlemmer af Bell Labs' Computer Science Research-afdeling for at bringe ideer fra deres tidligere styresystem, Plan 9 from Bell Labs, til en bredere vifte af enheder og netværk. Inferno er et distribueret styresystem baseret på tre grundlæggende principper:
Navnerum: et programs visning af netværket er et enkelt, sammenhængende navnerum, der vises som et hierarkisk filsystem, men som kan repræsentere fysisk adskilte (lokale eller eksterne) resurser
Standard kommunikationsprotokol: en standardprotokol, kaldet Styx, bruges til at få adgang til alle resurser, både lokale og eksterne
For at håndtere mangfoldigheden af netværksmiljøer, det var beregnet til at blive brugt i, besluttede designerne, at en virtuel maskine (VM) var en nødvendig komponent i systemet. Dette er den samme konklusion af Oak-projektet, som blev til Java, men som man nåede frem til uafhængigt. Den virtuelle maskine Dis er en registermaskine, der er beregnet til at matche den arkitektur, den kører på, i modsætning til stakmaskinen på den virtuelle Java-maskine. En fordel ved denne tilgang er den relative enkelhed ved at skabe en just-in-time oversætter til nye arkitekturer.
Den virtuelle maskine giver hukommelsesstyring, designet til at være effektiv på enheder med så lidt som 1 MiB hukommelse og uden hukommelsesstyringshardware. Dens spildopsamler er en hybrid af referencetælling og en farveopsamler i realtid, der samler cykliske data.[5]
Inferno-kernen indeholder den virtuelle maskine, on-the-fly oversætter, scheduler, enheder, protokolstakke og navnerumsevaluatoren for hver proces' filnavnerum og roden af filsystemhierarkiet. Kernen indeholder også nogle indbyggede moduler, der giver grænseflader til det virtuelle styresystem, såsom systemkald, grafik, sikkerheds- og matematikmoduler.
Bell Labs Technical Journal-artiklen, der introducerede Inferno, listede flere dimensioner af portabilitet og alsidighed leveret af styresystemet:[6]
Portabilitet på tværs af CPUere: Inferno kører i øjeblikket på ARM, SGI MIPS, HP PA-RISC, IBM PowerPC, Sun SPARC og Intel x86 arkitekturer og er let portabelt til andre.
Distribueret design: Det samme miljø etableres ved brugerens terminal og på serveren, og hver kan importere resurserne (fx de tilsluttede I/O-enheder eller netværk) fra den anden. Ved hjælp af runtime-systemets kommunikationsfaciliteter kan programmer nemt (og endda dynamisk) opdeles mellem klient og server.
Minimale hardwarekrav: det kører nyttige applikationer selvstændigt på maskiner med så lidt som 1 MiB hukommelse og kræver ikke hardware til virtuel hukommelse.
Bærbare programmer: Inferno-programmer er skrevet i det typesikre sprog Limbo og kompileret til Dis bytecode, som kan køres uden ændringer på alle Inferno-platforme.
Dynamisk tilpasningsevne: programmer kan, afhængigt af hardwaren eller andre tilgængelige resurser, indlæse forskellige programmoduler for at udføre en specifik funktion. For eksempel kan en videoafspiller bruge et hvilket som helst af flere forskellige dekodermoduler.
Disse designvalg var rettet mod at levere standardgrænseflader, der frigør indholds- og tjenesteudbydere fra bekymring for detaljerne i forskellig hardware, software og netværk, som deres indhold leveres over.
Stanley-Marbell, Phillip (2003). Inferno Programming with Limbo. Chichester: John Wiley & Sons. ISBN0-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. ISBN978-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.