Here, the term varied computing systems involves not just desktop computers but a range of devices such as palm tops, laptops, set-top boxes and other communication equipment. The challenge in writing applications for a distributed and hybrid environment is threefold: firstly, the development environments vary greatly, secondly, systems and the way these systems present resources vary greatly and finally a varied network has varying security and authorization policies that may not necessarily synchronize across the network (vitanuaova.com, nd). Inferno was developed as a successor of Plan 9 OS primarily with the help of Dennis Ritchie and Ken Thompson in the Bell Labs computing Sciences research centre in New Jersey, USA in 1995 (operating-system.org, 2008). The entire team of INFERNO includes Sean Dorward, Rob Pike, David Pressotto, Dennis Ritchie, Howard Trickey and Phil Winterbottom.
The primary motivation behind INFERNO is generating the capability to include a range of everyday use hardware devices into a distributed network. INFERNO OS facilitates the creation and support of distributed services in the new and emerging world of network environments, such as those typified by CATV and direct satellite broadcasting systems, as well as the Internet (Dorward et al 2002). Inferno is designed to accommodate the diverse providers of content and services from equally diverse transport and presentation platforms. From the above discussion it is evident that the main strength of INFERNO lies in its portability across several dimensions. Primarily, it is portable across various processor architectures. Currently it works with Intel x86, Intel XScale IBM Power PC, ARM, SunSPARC and MIPS (vitanuova, nd). Secondly INFERNO is portable across platforms. It can run as either a stand-alone operating system or as an application under the regular operating systems such as Windows and Linux (Dorward, Pike, Pressotto, Ritchie, Trickey and Winterbottom, 2002). Inferno's underlying architecture, the STYX protocol is the reason behind Inferno's interoperability. The protocol has been designed such that all communication is essentially handled through the file system which is very similar to UNIX OS (electronicdesign, 2000). Almost all of the INFERNO's capabilities and functionalities are based on Limbo, which is the programming language of Inferno. The primary reason for choosing Limbo to support INFERNO is because of its ability to support distributed computing. Multi-tasking is supported directly by the Limbo language. It supports multi-tasking with the help of independently scheduled threads that can be spawned, and coordinated which enable communication between tasks. It supports modular programming, strong type checking, interprocess communication, automatic garbage collection and simple abstract data types (Ritchie, 2005). Another motivation behind Limbo is its similarity to commonly used languages such as C and PASCAL (Dorward et al, 1997). So, if one needs to port INFERNO from one hardware or a system to another all one has to do is to modify a few hardware dependent functions. This is how it turns out to be an excellent operating system for all types of hardware and distributed computing. The system can be used to build portable client and server applications