Definition:Inferno is a project by Lucent Technologies to create a system - independent operating system. The aims of Inferno include a common looking interface between hardware, a platform independent set of API’s, and a programming language that will work no matter where you take it.
Some Facts about Inferno:- Inferno is the successor of Bell Lab’s Plan 9 operating system. These devices go from the set-top Network Computers to the Sony Play Station, to the ordinary computer.
- The core of Inferno is portability. Almost all of the operating system is based on Limbo, the programming language of Inferno. When porting Inferno from one hardware to another all one has to do is to modify the few hardware dependent functions, and then immediately the entire system will work on the new system.
- Many people see Inferno as a competitor to Java. Java in itself is a programming language that has many of the same functions as Limbo. Both are hardware independent and both are designed as large scale projects. But Inferno as a whole is an operating system, which in turns runs Limbo programs.
- There are plans in Lucent for the next version to let Java programs execute natively. This would mean that Java programs would be able to run on a system running Inferno as their operating system.
Design Principle:Inferno is a distributed operating system based on two basic principles:
- Resources as files: all resources are represented as files within a hierarchical file system.
- Standard communication protocol: a standard protocol, called Styx (9p2000), is used to access all resources, both local and remote
LIMBO, the programming language:Limbo is the application programming language for the Inferno operating system. Although Limbo looks syntactically like C, it has a number of features that make it easier to use, safer, and more suited.
A C-like language that compile to byte codes and that run
- Over the VM (30/40 times slower than C)
- JIT compilation (2/3 times slower than C)
Pascal-like type declaration
x: int;
C-like assignments
x := 42;
Constants
EOF: con –1;
Strings are not \0 terminated
Array slices
y := x[1;3];
Lists, tuples
Abstract data types can contain functions
A ref keyword to build reference out of values
Styx Protocol:Styx makes use of the Inferno Namespace and file system to represent resource on the network in the form of file system.
The application can then transparently use this resource as a file, do open/read/write/close operations on it without knowing where the resource actually exists.
Styx is a high level protocol that can run over TCP/IP, UDP, ATM, PPP, etc.
Features of Inferno:- Portability and Scalability
The most important feature of Inferno is its portability across platforms and environments. It supports many popular processor architectures, and it is easily portable to new architectures.
- In addition to supporting different processor architectures, it also is portable in other aspects; it can run as a stand-alone operating system, and it can also run as a user application under various existing operating systems
SECURITY:Inferno provides security of communication, resource control, and system integrity.
Inferno is secure against erroneous or malicious applications, and encourages safe collaboration between mutually suspicious service providers and clients.
Object modules may be signed by trusted authorities who guarantee their validity and behavior, and these signatures may be checked by the system the modules are accessed.
Conclusion:Inferno supplies a rich environment for constructing distributed applications that are portable-in fact identical-even when running on widely divergent underlying hardware. Its unique advantage over other solutions is that it encompasses not only a virtual machine, but also a complete virtual operating system including network facilities.