Software Directory: Inferno

Feb. 5, 2001
Inferno Inferno was developed at Bell Labs in conjunction with the Plan 9 project. Inferno is now distributed by Vita Nouva on very liberal terms. There is no distribution-related royalty. The Styx...

Inferno Inferno was developed at Bell Labs in conjunction with the Plan 9 project. Inferno is now distributed by Vita Nouva on very liberal terms. There is no distribution-related royalty.

The Styx open-communication protocol is Inferno's backbone. It's used for all interprocess communication, such as communication between applications and devices. It uses the same hierarchical-naming convention that's used for files and directories. Common file operations are employed to access files and devices. Applications can then be used as filters or in place of device drivers.

Remote access to devices using Styx is completely location transparent. With this feature, applications can be located on systems other than the ones that contain the services the applications need or control. Styx is implemented on non-Inferno platforms, providing cross-platform communication support.

Inferno actually predates most embedded platforms. Yet its somewhat isolated development has limited the number and sophistication of associated development tools. Inferno's Tk graphical services are good, and Acme is a graphical development environment. But these seem less impressive compared to sophisticated tools like Visual Studio.NET and most Java development tools. Recent releases from Vita Nouva will improve Inferno immensely.

See associated figure

Highlights Inferno is built on the Dis virtual machine that is tightly integrated with Styx, including its encrypted communication support. The Limbo programming language utilizes Styx directly.

With just over a dozen messages, Styx is a simple communication protocol that combines the hierarchical directory naming system with concise functional support. A typical device may provide a number of different communication channels by delivering a directory of Styx ports with their own file names within the directory. Everything in Inferno is implemented using Styx, including the graphics and windowing support.

The Styx protocol has been implemented independently of Inferno on a number of platforms. This allows Inferno applications to operate with applications written in languages other than Limbo on non-Inferno platforms. This approach has been used effectively in products from Lucent Technologies, owner of Bell Labs.

Styx uses TCP/IP as a transport system. But it can also use other transport mechanisms, such as the similar Internet Link (IL). Unix pipes and shared memory can also be used for local communication. An Inferno implementation normally hides these details from the programmer.

Inferno also implements a two-tier garbage-collection system that combines the compactness of a reference-counting system with the coverage of a mark-and-sweep system. A compact garbage-collection system is very important on platforms with limited memory resources.

The Limbo language support incorporates most of the features found in other platforms, such as JIT compiler support and native-code compilation. Limbo is not a class-based language like Java or C#, but its module architecture provides many of the same features.

Inferno employs dynamically loaded modules. Modules are loaded using Styx. Consequently, modules can be loaded from any source.

As with most platforms, Inferno runs on top of an existing operating system such as Unix or Windows. There is a 700-KB Inferno Web browser plug-in for Microsoft's Internet Explorer, providing an alternative to Java and .NET solutions.

Fans of Dante may have noticed the significance of the names in the Inferno system. These appellations aren't coincidental.

FEATURES
  • Styx open-communication protocol
  • Styx implemented on other OSes
  • Hierarchical name space
  • Public-key cryptography support
  • Encrypted communication links
  • Acme integrated development environment
  • Tk graphics package
  • Two-tier garbage collection
  • Dis virtual-machine architecture
  • Low source-licensing fees
  • No royalty distribution
  • Growing 3rd-party support
  • LANGUAGE
  • Limbo
  • Combines C and Pascal syntax
  • Concurrent modular architecture
  • Garbage collection
  • Dynamic class loading
  • Native Styx support
  • Native service support
  • PLATFORMS
  • CPU support: x86, SPARC, 68K, ARM, PowerPC
  • OS support: Inferno, Windows, Linux, Solaris, Plan 9, FreeBSD, Unix
  • Internet Explorer plug-in
  • About the Author

    William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

    I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

    You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

    Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

    You can visit my social media via these links:

    I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

    I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

    Sponsored Recommendations

    Comments

    To join the conversation, and become an exclusive member of Electronic Design, create an account today!