Inferno is a MIT Licensed distributed operating system started at Bell Labs, is now held by Vita Nuova Holdings and maintained by Terzarima Systems. 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 Vita Nuova were inspired by Dante Alighieri's Divine Comedy. In Italian, Inferno means "hell", of which there are nine circles in Dante's Divine Comedy. Inferno64 is a continuation of Inferno for 64-bit edge computing platforms.
Design principles Inferno was created in 1995 by members of the AT&T Bell Labs Computing Sciences Research Center to bring ideas derived from their previous operating system, Plan 9 from Bell Labs, to a wider range of devices and networks. Lucent would later shutdown the Bell Labs Computing Sciences Research Center in 2005. 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; Derived from Plan 9 namespaces 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 Sun Microsystems 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. This was inspired by AT&T's work on the CRISP processor. 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, 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 POSIX compliant math modules.
Inferno Paper introducing the original Inferno release The Bell Labs Technical Journal paper introducing Inferno listed several dimensions of portability and versatility provided by the OS as of first public release in 1997:
Portability across processors: Inferno currently runs on Intel, Sun SPARC, ARM, SGI MIPS, HP PA-RISC, IBM PowerPC, and AMD 29k 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 Labs Plan 9, Windows NT, Windows 95, and Unix. 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 freed content and service providers from concern of the details of diverse hardware, software, and networks of the 1990s over which their content was delivered. The majority of IoT Hardware operating in 2024 used Linux in comparison to the hardware challenges that the Inferno designers faced.
Features
Application development and APIs To ensure memory safety, applications are written in the Limbo programming language, which provides static typing, garbage collection, and built-in concurrency features, this allows the operating system to safely run without a hardware MMU; only kernel modules and internal parts of the Dis virtual machine itself can be written in C. 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. Low level operating system functions such as process creation and inter-process communication are implemented within the Dis virtual machine itself; This means applications cannot access memory outside their allocated range and all resources such as file descriptors, network connections, and window manager objects are connected to the garbage collector; the garbage collector uses the very concurrent garbage collection algorithm. In hosted mode, kernel threads are handled by the host operating system.
… excerpt ends here. Continue reading the full article.



