By Maureen O’Gara

Bell Labs ace developer Dennis Ritchie, one of Unix’ fathers and inventor of C, sure left a lot unsaid back in February when he revealed the existence of Inferno, his newest project, and touched off reports that it would rival Java. Comparisons to Java may be misplaced since – despite all the hype – Java’s only a programming language while Inferno’s a whole new network operating system and programming environment. At the alpha stage, granted, but with things in the can, so to speak, that Java still has to do. It has its own type-safe language, a thing called Limbo, and a virtual machine named Dis after the god of the underworld that will run Inferno programs, according to our sister publication ClieNT Server News. It also has a communications protocol named Styx, continuing the classical motif, after the mythological river over which the souls of the dead are ferried to Hades. The names Inferno, Limbo and Dis are now all trademarks of Lucent Technologies Inc, the newly public AT&T Co spin- off that’s Bell Labs’ new home. Lucent or rather its Network Systems arm is prepared to consider ways of using Inferno and is willing to talk privately to third parties about business propositions. We should warn you that under Lucent this appears to be a new reconstituted Bell Labs whose first words out of its mouth are refreshingly, We want to make money. Amra Tareen, Inferno’s commercial contact, says Lucent is currently negotiating Inferno source code licenses. CDs could be in outside hands by May 1. Terms are currently on a client-by-client basis hinged, it is suggested, on the project involved. Later this year a demo version of the Inferno beta could find its way to the Internet to attract application developers. Some kindly provisions are also expected to made for universities. Apparently Bell Labs and Lucent have targeted initial applications and cosied up with network service providers, the RBOCs, client device makers, server guys and ISVs. Currently there are no Inferno applications other than the e-mail system, browser and media player Bell Labs has built. Ritchie and his team, including lead developers Sean Dorward, Phil Winterbottom and Rob Pike, who happened to be reading Dante’s Inferno when the question of a name came up, describe Inferno as an operating system for delivering interactive media in a heterogeneous client/server environment. The eight-man team has just put out what it calls in its own whimsical vocabulary a Buff Paper, meaning no doubt a white paper yellowed by the fires of Hell that can be found at www.bell-labs.com if one looks. The four-page overview, learnedly entitled Inferno: la Commedia Interattiva plainly spells out some of Inferno’s possibilities. All are in emerging network environments, to wit, the set-top boxes, phones, handheld devices and inexpensive network computers that are exactly the terrain Sun Microsystems has mapped out for Java. (Though Bell seems to scoff right now at Java’s ambitions and calls it insecure and difficult, who’s to say one day Java might not find itself mounted on Inferno) The Bell Labs team also envisions Inferno being used in conjunction with traditional computing systems. According to the Buff Paper, Inferno is a small portable distributed OS written largely in standard C that already runs on Intel, Mips and AMD 29k architectures and can be made to run elsewhere. It runs standalone on PCs and as a user application under NT, Unix, Windows 95 and Inferno’s linear antecedent, Bell Labs’ own still- uncommercialized Unix-update, Plan 9, many of whose basic ideas are repeated in it. Ritchie and company say Inferno runs useful applications standalone on machines with only 1MB of memory and requires no memory-mapping hardware. Inferno applications are written in the C- and Pascal- informed Limbo language designed specifically for Inferno.

Ye that are of good understanding, note the doctrine that is hidden under the veil of the strange verses! – Canto IX, 61

Dennis Ritchie and his team, veterans of two previous operati

ng systems, imagine that their new one, Inferno, and its Java-like programming language Limbo can be used to invent applications that work in text mode over a POTS modem, show still pictures over ISDN and video clips over digital cable. Limbo supports the standard data types common to C and Pascal as well as higher-level ones such as lists, tuples, strings, dynamic arrays and simple abstract data types. It also supplies several advanced constructs integrated into Dis, Inferno’s virtual machine. For instance, a communication mechanism called a channel is used to connect different Limbo tasks on the same machine or across the network. Limbo also supports multitasking directly. The Buff Paper claims that by building channels and tasks into Limbo and Dis, communications are made safe and easy. Like Java applets, Inferno applications are small and flexible. They are built out of self-contained dynamically accessible modules with a well-defined interface containing functions, abstract data types and constants. Sounding all the more like Java, the Bell Labs boys say that Limbo programs are compiled into byte-codes of instructions for Dis. Under Dis is the Inferno kernel containing the interpreter, on-the-fly compiler, memory management, scheduling, device drivers, protocol stacks and file systems including the name interpreter and code that turns file system operations into remote procedure calls (RPCs) over communications links. There are apparently several standard modules built into Dis including systems calls (Sys), a basic graphics library for faster graphics, fonts and windows (Draw), facilities for images and text inside windows (Prefab), numerical programming procedures (Math) and a graphics toolkit with a Limbo interface (Tk). There are several versions of the Inferno kernel, Dis/Limbo interpreter and device driver set depending on the environment Inferno is implemented in. As a native operating system, the kernel includes all the low- level glue. As a hosted system, it’s apparently machine- independent adapting to the resources presented by the OS it’s running under. The Buff Paper describes Inferno as secure against erroneous or malicious applications though exactly how deep that runs in laymen’s terms is unclear. It explains at one point that unlike Java, we do not claim our virtual machine enforces security. Instead, Dis files may be signed by trusted authorities who guarantee their validity and behavior. Inferno is said to provide communications security and key management and can handle encryption. Like Plan 9, which can be got easily enough from Bell Labs, Inferno applications treat devices as files and device drivers as small directories. La Commedia Interattiva says the OS design is based on three principals. First, all resources are named and accessed like files in a hierarchical file system. Second, the disjoint hierarchies of different services are joined together into a single private hierarchical name space. Third, Styx uniformly accesses these resources whether local or remote. Team leader Ritchie writes that the Inferno kernel implements a mount driver that transforms file system operations into RPCs for transport over a network. The server at the other end unwraps the Styx messages and implements them with local resources. The Buff Paper says that means it’s possible to import resources from other machines. Styx lies above and is independent of the communications transport layer. It is carried by TCP/IP, PPP, ATM and other modem transport protocols. Like Java, Bell Labs is looking for experienced developers to work on Inferno. Java’s hype machine is running so fast it may be impossible to catch it, if that is Lucent’s game. On the other hand, the race has really just begun.