JDJ: Could you please introduce yourselves to our readers and tell them a little bit of your background and what you do at Lucent? It would be helpful if you could also tell us a little about Lucent Technologies itself.
RP: I've been at Bell Labs since 1980 and have gone through two restructurings during that time. We are all members of the Computing Sciences Research Center laboratories. Since the breakup this year, we are all now in Lucent Technologies. This was the equipment arm of the old AT&T. We have been a separate company since the beginning of October. We are the technology company for AT&T. We make equipment for various networking technologies and the software to run them. The other side of the business, the service side, stayed with the old AT&T.
PW: Collectively, the three of us work in what would loosely be called the Systems Department of the Computer Science Research Center. In the past, we've developed things like C, C++ and UNIX. Most recently, we worked on the Plan 9 operating system. I get into building hardware. I built data switches for optical interconnects before we started Inferno.
SD: I work in the same department with Rob and Phil. Prior to my working on this project, I was working with the processing and information research people on compressed audio.
JDJ: Please describe Inferno to our readers.
PW: Our business is changing. Traditionally, Lucent built telephone switches and transmission equipment to support AT&T. We are becoming more interested in data networking and data switching and there was a realization here that the software to run those systems is really important. We took the lessons we learned from writing Plan 9 and applied those lessons to developing a structure for doing data networking. This means that you can do electronic commerce or a new funds system. Inferno is an attempt to make a system that would allow you to develop applications for what the environment might be in a few years.
RP:The Limbo development environment, which includes the Limbo compiler and debugger is all written in Inferno. There is also a really nice debugger that Sean built for source level analysis of Limbo programs. All of that stuff is in the Developers Kit. It's a self supporting system and it's all there on the table for people to pick off the Web.
JDJ: Could you describe Plan 9?
PW: Plan 9 is a general purpose research operating system that we've been distributing now for three years. Several thousand copies are out at universities and people are doing research with it. Basically, it is an operating system that really understands how to structure networks of computers to work cooperatively. We developed Inferno on top of Plan 9. It was how we experimented with a lot of the ideas.
RP: A lot of the research here for the last ten years has centered on how to structure networks of computers to work cooperatively. There is work on programming languages, networks, operating systems, security, graphics, and how to build distributed applications. About a year ago, we realized that a lot of the ideas that we had developed while doing research had commercial potential. We wrote a proposal to develop something deliberately commercial. We wanted to make a commercially viable product rather than just do pure research. The interesting thing about this is that it was our idea. It's not Lucent telling us that we can't work on pure research. Lucent supports our research, but we thought it was an interesting thing to do for our own reasons. It has turned out to be a fascinating exercise.
JDJ: Which pieces of the system did everyone work on and how did you coordinate the effort? It seems like a tremendous amount for three guys working alone.
RP: We three were the principals. We got a lot of help from other people in the company, both in research and development. It was a collaborative effort, but the design was done by the three of us. We did pieces appropriate to the various skills we had. Sean, who was interested in languages, did most of the language design and wrote the compiler. I'm a graphics person, so I did most of the system graphics plus some of the operating system because I was one of the principals in Plan 9. Phil did the virtual machine and most of the operating systems work.
SD: I wrote the Limbo compiler and helped out with the implementation of the virtual machine.
RP: The way that we work around here is on a consensus basis. The design team is informal. We all decide on the direction that the group wants to go and whoever is most interested in doing something will get it.
PW: Another thing is that we are very iterative. We don't sit down and just write things in final form. A lot of code gets thrown away as we sit down together, rewrite and share code. I will write something and Rob will say it's incorrect. Then I'll throw part of it away and rewrite. After a while we approximate toward something we are all happy with. It's a different way of working together.
RP: Many parts of the system are new, but they are all being designed to work together. At the same time that we are addressing problems in pieces of the system, we are looking at the system itself. We‘ve found that this way of doing development gives a real unique flavor to the product and also contributes to the elegance and compactness of the system.
PW: We don't work in our offices all day. There is a big room called the UNIX room in Murray Hill and on a given day at least half our people will be sitting in there working together as sort of a community.
JDJ: What kind of tools did you use to develop Inferno?
PW: All the development was done using our own compilers and debuggers, all on top of the Brazil system, which is the current research incarnation of Plan 9. Once we had Inferno working on Brazil, we ported it onto the UNIX and the Microsoft platforms. I wrote the debugger, Ken Thompson wrote the compilers, and Rob wrote the Windows system we use in the editor. We designed all our own tools.
JDJ: Why would you use Inferno for networks rather than the current existing operating systems?
PW: We saw that people were spending way too much money developing software for different platforms. People develop for Windows, for Mac, for UNIX, and for NT. They have to spend money developing code over and over again and porting between platforms. We wanted to really make good on the write once - run anywhere idea, but to do that isn't just a language issue. We had to go deeper and offer interfaces to all the services that people have come to take for granted as being part of a network. These include authentication, security, encryption, file systems, permissions, and all the things that traditionally come with an operating system. So, to make good on our claim to write once - run anywhere, we developed two parts: an operating system that runs standalone on very small boxes up through PCs and workstations to big machines and we also have an emulation system that runs on the top of other people's operating systems. The idea is that when you look down from the application level, you see an identical view of everything on the network. You can rely on having the same services wherever you are. We also went beyond that and said: Build into the system the intelligence to understand how you structure applications throughout the system. I think that this is something that we do quite nicely. You can import and export resources all over the network and make use of them in clients. You can run different pieces of applications in the server vs. the client and get a real distributed system using fairly simple building blocks.
JDJ: How did you decide to use your own language, Limbo, rather than Java in Inferno?
RP: At the time we started, we didn't know Java was going to be the phenomenon that it has become or that it would bear directly on what we were working on. We did, however, realize, in the same way that Java did, that one of the keys to deploying portable stuff in the network is the use of a virtual machine. Where we differed from Java is that we also decided that in order to get portability and the ability to run on a huge array of platforms and different networks, we needed to take the virtual machine and integrate it with an operating system. The OS needed to support the virtual machine directly and so the virtual machine and the operating system are closely connected. The virtual machine provides things like file descriptors, network connections, and garbage collection in a way that works beautifully with the way the operating system manages its resources.
As I said before, we had all the things that we had developed in our lab over the years. We had strong ideas about how programming languages should work and about how operating systems should work with them. We decided to create our own language because that is our nature. When Java came out it didn't strike us as direct competition for a while because we were really addressing different issues. We were talking about building systems that really use the power of the network to deploy applications rather than just running a program in a browser. We ended up in a related but different space than Java, but the planning that got us there was really quite different.
JDJ: What hardware and software requirements are necessary to run and develop using Inferno?
PW: We knew from the outset that one of the most important new markets was going to be information appliances. As a telephone company, we have deployed about 800 million phones. We wanted to push down the requirements of what you need so we engineered a systems that will run comfortably on a 32-bit microcontroller without an MMU and with only a megabyte of memory. That's the low end of the spectrum, but as far as applications go, it will run a whole spectrum of hardware up from that to 286's, Pentium Pros, workstations and servers. It's a fairly low level environment and we did a lot of engineering to make sure that the memory requirements were low. We use a unique hybrid garbage collection algorithm that is part reference counting and part coloring which I don't think has ever been done before. It means that Limbo programs are very conservative in their memory usage.
If you want to see how it is done, a developer can hit our Web site for the Inferno Developers Kit. We are currently shipping the package together with a lot of software applications for Windows NT, Windows 95, Solaris, Pyrex. We are also in the process of adding a Linix port. That is in test now.
JDJ: Is Inferno a direct competitor to Java?
PW: Java is cruising toward that space. We've covered a whole spectrum of space including electronic commerce, audible graphics environments, and a standalone operating system. We have all of those pieces and as time goes on, Java will duplicate a lot of them.
JDJ: So you are saying that you were there first?
PW: Yes, but we didn't go out and hype it the way Java did. We didn't get into the market in the same way that Java did.
JDJ: Sometimes a number of different approaches to providing a service will increase the size of the market. Do you see the inclusion of both languages in the marketplace increasing the size of the market?
PW: Yes, I absolutely agree. I started out by saying this industry is changing and the outcome of that change is going to be a huge expansion in the number of CPUs and displays that can run applications off the network. Everything is becoming more networkcentric. The market will explode and I don't think it will need just one answer. Different people have different requirements. Java isnt the answer to everything. Inferno isn't the answer to everything. As an example, I haven't heard people talking about using Java to run switches, but we have a lot of technology in Inferno to make it an ideal operating system to run switches and routers.
JDJ: How would you see that being done? Would that be done mostly by the big communications companies, or would you see people actually going in and taking care of their own PBXs and stuff like that?
PW: The PBX is going to be evolved away. Either the PBX will become a data switch or data switches will start handling PBX-style traffic. Either way, the software requirements are going to change. I think people are going to want more flexible interfaces to manage those kinds of systems. Just as people are managing their own routers, I think that they will start to manage their own PBX's. The structure of IT, and the way in which their networks work is different from the way the telephone company works. The current situation where the telephone company runs customer equipment is going to go away.
JDJ: What do you see as the next step for Inferno. Can you tell us if any companies are currently using Inferno for development besides you?
RP: I cant go into too much detail. The beta version has been out for about a month now. A lot of people have picked it up. We've been getting a lot of very strong feedback from people who understand what we are proposing. There is a lot of stuff brewing and I think around COMDEX time, you will hear a lot of announcements from people related to Inferno. I really cant go into it now, but I assure you that there is a lot going on.
JDJ: Will you be able to port Java code into Inferno?
PW: We've actually had a project within Inferno for around eight months to take Java class files and translate them into Dis. We have a program that picks up Java class files, essentially decompiles them and assembles them back into a Dis file so you can run Java class files over the top of Inferno. We have that tool pretty much working. The real question is what we are going to do about APIs and that is still up in the air.
JDJ: Have you been involved with any of the Java Beans specifications or standards?
PW: No, we haven't been involved in that effort.
JDJ: Do you have any plans on working with JavaSoft toward any common goals?
PW: We are working with JavaSoft, at least peripherally. I went to Java One in San Francisco and met with Alan Baratz . We've been having a dialogue ever since.
JDJ: Do you see Inferno as being a more developed environment than Java?
RP: That's fair. I think that some of the technical differences may make it more interesting than Java. Sean, who worked on the compiler for Limbo, has a different take on that.
SD: Our virtual machine, Dis, was designed to be architecturally neutral and, more importantly, language neutral. We plan on porting other languages to our operating systems. Like Phil said, there has already been work on porting Java byte code and there are other people here interested in porting functional languages to Dis and/or writing a C compiler for Dis. We plan on porting more language environments on top of our internal API.
JDJ: Would you say that Java is evolving toward Inferno?
RP: Like Phil said earlier, Java started off being hyped as an applet language for browsers and we were trying to develop a system for writing more general distributed applications. As time has gone on, Java has evolved toward that with the introduction of Java OS.
PW: One of the problems that the Java people are facing is that because of the nature of their virtual machine, they have things missing that are important to running other languages like Limbo. For instance, you can't do indirect function calls, so unless they are prepared to modify the specifications of virtual machine, they will have problems running other languages.
JDJ: Are you planning on having any of the other operating systems include the Inferno virtual machine, Dis?
PW: I don't understand the effort to do that. I'm not sure what the advantage is. When you run Inferno over an operating system, you get all the advantages of Inferno. I'm not sure what inclusion in the operating system would do other than give the operating system vendor a real headache in maintaining the current version of the software.
JDJ: IBM and Microsoft have both included Java up and down the line of their operating systems, but you dont see them getting much bang for the buck by doing that?
PW: I don't think so.
JDJ: What was the most unique aspect about developing Inferno? Did that give rise to the provocative names you have for your environment, Inferno, Dis and Limbo?
RP: It is clear to us that the strangest thing about Inferno is the way in which it is working within Lucent. This is a very unusual project: to take a research team and connect them directly to the business and to try and take research ideas and move them directly out into commerce. We have a very unusual structure where the principals here in research are working with a business team created specifically to take this program out of research and make it a business. We report directly to people very high up in the company. We have met most of the executives. I personally have now met more than once with most of the people on the Lucent board. There is a real keen corporate interest in what we are doing. That is a very unusual thing for us and very different from the old AT&T days when we were off in a corner doing our own thing, being very well supported, but not very well connected to the rest of the company.
I can speak to the naming question too, since I am the culprit. At dinner one night, we were told by the President of Bell Labs that we needed to come up with a name for our product and, at the time, I was reading the new translation of Dante Allegheris "Inferno" and it seemed like a really nice name. I have been taken to task in the past for naming things with silly names and this time I wanted a serious name for a serious product. It seems that taking one of the masterpieces of Renaissance literature and naming our product after that was pretentious rather than provocative. It was also a nice source of other names and I was really very surprised when people started taking issue with the name. I thought it was as serious a name as you could come up with considering where it comes from, so it wasn't meant to be provocative, quite the opposite. I judged it wrong, I guess.
JDJ: At the beginning of Dante's "Inferno," the words over the cave read, "Abandon Hope All Ye Who Enter Here." Will Lucent Marketing have a problem with that image?
RP: That's at the beginning of the book. At the end you'll observe that our hero emerges into the sunlight and finds himself totally refreshed and much wiser for his journey. I think that's a better metaphor to carry away.
JDJ: Are you calling the Help facility Virgil (Dante's guide through the "Inferno")?
RP: Actually, Virgil is the part of the system that guides you in and gives you secure access to things. It's another use of that metaphor.
JDJ: How are you going to add Java support to Inferno? Who will be supporting that effort?
PW: We have a fairly large support organization here and we will continue to support whatever code we produce. I do not expect us, at least in the short term, to include code from JavaSoft.
JDJ: Are you coordinating any of your development efforts with JavaSoft?
PW: There are some areas where we are doing just that. For instance, there is a security forum that is talking about the kinds of protocols that people can use for authentication and electronic commerce. JavaSoft, Microsoft and us are represented on that committee so there are areas where corporation is very important. Everybody is finding their niche in this business. This is a market that is hard to define and it is clearly evolving very rapidly. Each of the parties involved is vying for position. It's clear that Microsoft is vying with JavaSoft itself for control over the Java standard, such as it is. We're kind of leery of getting pulled into that.
JDJ: So you want to be left alone and just get all the techies over in your corner?
PW:That is a fairly accurate description, but we have some fairly large traditional customers who have some very real problems in running networks. I think that that is a little more serious than just being put away in a corner. Lucent is a company with a lot of important customers and we are interested in getting our technology out into those markets.
RP: Remember that Lucent Technologies itself has some really large customers including network providers, RBOCs, cable TV companies, etc. Those are the markets that Inferno is going after. I think that Java is aimed at a very different kind of customer, someone peripheral to the network who wants to build smaller applications. There is no reason that those two systems can't coexist quite happily and we'd like to see it happen.
JDJ: Can you tell our readers a little about yourselves from a personal basis? Did you read the "Inferno" in Italian?
RP: No, though Dave Presado, who wrote the security stuff, castigates me endlessly for not learning Italian in order to read it in the original. My bio is on my Web page. Everything you would want to know about me is there.
PW: I wouldnt claim to have many hobbies other than rock climbing and that's been a bit slow in the past year or two. Inferno has kept us all rather busy. I do technical climbing, where you don't use protection to aid you going up the rock.
JDJ: Is there anything that you would like to add?
RP: You can pick the Limbo Developers Kit up off the Web. The URL I can give you is http://www.lucent.com/inferno/. The kit is there waiting for anyone who wants it.