1. Can you tell us about Vita Nuova?
Michael Jeffrey: We formed Vita Nuova in 1996 as the first software company specializing in the Inferno operating system then currently under development at Bell Labs. We were particularly interested because of the very highly regarded people in the Software Sciences Research Group at Bell Labs who were involved in the project; famous names such as Rob Pike, Ken Thompson and obviously Dennis Ritchie. In addition, there were a large number of less well know but very talented Computer Scientists such as Phil Winterbottom and Dave Presotto involved in Inferno’s design and implementation.
It seemed like an exciting opportunity to get involved in a new technology and so we pursued it vigorously. From 1996 through to 1999 we built Vita Nuova into a small but thriving company providing Inferno services to a variety of customers and were also actively involved in helping Lucent with the development of the product.
In the Summer of ’99 the New Ventures Group at Bell Labs was looking to spin-out the Inferno technology; it is ironic that one of the world’s most famous software research groups is run by a corporation that is not a software company. The New Ventures Group explored a variety of options for spinning-out the technology, in the end they decided that the commercial and technical strengths of Vita Nuova made it the ideal candidate. In March 2000 we obtained from Lucent the world-wide exclusive rights to Inferno and a significant equity investment from Lucent and a UK Investor.
2. Do you feel the pressure and attention that might come with the pedigree of your products?
Michael Jeffrey: I personally do and I think most of our technical staff also. It is a great privilege to have the stewardship of this technology and we are always striving to retain the clarity of though and simplicity of design that the creators had.
3. What’s the background of Plan 9?
Michael Jeffrey: In the mid-80s Bell Labs stopped research and development into UNIX. It is reported that they considered ‘the problems with UNIX were too deep to fix’. Instead they focused their energies on the design and implementation of a new operating system that became known as Plan 9. The Plan 9 operating system at one level will feel familiar to anyone with a UNIX background; many of the UNIX commands and utilities are available in Plan 9 and programs are written in C. Plan 9 however, is fundamentally different in its structure.
The earliest UNIX systems were effectively a superstructure for testing out ideas on how to represent and access data. Many of these ideas have now entered the vernacular and are pervasive throughout computing; hierarchical file systems for one. In contrast Plan 9 started with the idea of the definition of a protocol for the access of all resources in the network whether local or remote. Resources to Plan 9 include data, services or hardware devices. This protocol (9P in Plan 9 and STYX in Inferno) is a very simple file service protocol that allows all resources to be represented as a hierarchical collection of names. Of course those with experience of UNIX may say that UNIX has represented in devices as files in the same way. UNIX, however, has represented serial devices for one as special files with special properties; to miss-quote George Orwell ‘all files are equal except some are more equal than others’. Because these devices have special properties there are significant problems in exporting them as resources across a network for other systems to use.
Plan 9 applies the hierarchical naming of resources rigorously and consistently to all data, services and devices, no buts no ifs.
4. So, how did Inferno come to be?
Michael Jeffrey: Work on Inferno started in the latter part of the’90s. Inferno, like Plan 9, uses the same file service protocol for accessing (and thus distributing) resources around the network.
Inferno, however, goes a step further than Plan 9. Plan 9, like most operating systems takes control of an entire device and must replace an existing operating system. Inferno on the other hand has been designed such that it can either run as a native OS on bare hardware or as an application on existing operating system platforms (Windows 95,98,2000,NT, Linux, Solaris and others). Inferno also runs all its applications within a Virtual Machine that guarantees byte code portability across both native and hosted platforms. Inferno is uniquely capable of providing an environment for distributed applications across devices large and small.
5. Inferno’s capability to run native or hosted is particularly interesting can you tell us more?
Michael Jeffrey: We consider the development of distributed applications to be one of the biggest challenges facing software developers over the coming years. I like to define a distributed application as one that runs across two or more devices where no one device is the master; or more poetically, consider it to be a circle whose circumference is nowhere and whose centre is everywhere.
At the moment developers end up using a collection of technologies depending upon the platforms involved in the application. The reality is that the number of operating system platforms is increasing not decreasing; there are a significant number of Windows OSes, quite a few more UNIX or Linux OSes and in the real-time or embedded world there is even greater variety. The idea of one OS taking their place is a non-starter.
To confront this, Inferno can run as an application on existing systems establishing precisely the same environment that it would if it were the native operating system running on bare hardware. Going further still, it is possible to implement the Inferno protocol for distribution in tiny amounts of space (< 6k bytes) this enables the Inferno metaphor for distribution to be incorporated into really tiny devices.
Inferno offers absolute application portability across different environments. With Inferno, a developer can take a native port, compile it on something like the Compaq iPaq and take the byte code and run it without modification on an NT machine.
6. Inferno’s role sounds a lot like Java and JavaOS.
Michael Jeffrey: Inferno and Java originated around the same time, but Java OS never got off the ground. The VM appeared but I think its implementation didn’t match the real portability that was promised by the Java OS. I believe Inferno achieved what Java set out to do.
- "Part I of the Interview"
- "Part II of the Interview"