Newsletter sign-up
View all newsletters

Sign up for our technology specific newsletters.

Enterprise Java
Email Address:

Lucent brews Inferno

New combination language/OS has designs on network communications

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone

Page 2 of 5

Inferno was developed by Rob Pike, Phil Winterbottom, and Sean Dorward of the Bell Labs Computing Science Research Center -- the same place that Unix, C, and C++ were invented.

Optimized for distributed network applications

Although JavaOS is designed to act as a portable network operating system, Winterbottom points out that it is not yet optimized for large-scale server applications. "An operating system implies you have things like uniform file permission, importing and exporting of name spaces, and process management," he noted. "There is a whole set of network services that are not part of the Java runtime environment. JavaOS is designed to run Java on small clients. The Inferno OS is designed to be part of a network infrastructure. This means that where Java applications currently seem client-oriented, we are more focused on being able to use resources in the network to distributed computers. We think of this more as a peer-to-peer communication where applications are actually spread over several networks."

One of the most significant differences between Inferno and other operating systems such as JavaOS is the way in which Inferno presents network resources to an application. In Inferno, every resource, whether it is a database or a distant computer, is accessed as if it were a file in a traditional hierarchical file system (like Unix). (Inferno's different services are joined into a single private hierarchical name space. The Styx communications protocol is used to access all local and external resources. Since it can run on top of TCP/IP, PPP, and ATM, Styx can be deployed easily across existing networks.) In Java, Internet resources must be accessed indirectly by making a call to the server.

"It turns out that the network interface is a file tree and the graphics interface is a file tree," Winterbottom explained. "You can have an application access the graphics device of a remote screen. This arises from the Plan 9 work. You are building an application over a higher level of abstraction. Things like naming and security are decoupled from the applications. All of these needs are met by the operating system. The design is such that the structure of the system gives you guidance on how to build applications."

Security: To trust or not to trust?

There are two kinds of security involved in network programming systems: machine protection security and encryption security. The first kind of security protects your machine against a malicious attack, while the second is used to transmit secure data and authenticate resources. Inferno has encryption security built-in, but does not have any way of automatically controlling dangerous applets. Java has built-in machine protection security, and is adding encryption support now.

In Inferno, the encryption is built into the heart of the operating system. "The fundamental difference is that Java has a secure API for a specific application," Winterbottom explained. "We have one set of APIs for doing secure things, and those secure mechanisms are built into the foundation of the system. To use them or not use them is moot."

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Comment
Login
Forgot your account info?
Add comment
Anonymous comments subject to approval. Register here for member benefits.
Have a JavaWorld account? Log in here. Register now for a free account.
Resources