Inferno OS on Raspberry Pi

Unix isn’t the only operating system that came out of Bell Labs. In an effort to decouple hardware from user interfaces over a network, Bell also developed an OS named Plan 9 (named after the famously bad Ed Wood movie).  While Plan 9 is still in use, it never got the momentum that Unix did. In 1996, Bell Labs (now AT&T) decided to shift its focus to Inferno, an operating system  that was meant to challenge Java as a cross-platform virtual machine environment. Now LynxLine Labs has ported Inferno to the Raspberry Pi.

Not only did they do the work, they documented it in 26 labs if you want to follow along. Or, you can just head over to the project page and get the results along with updates (judging from the commit log, the project is under active development).

Dante would be proud, as the company that is now maintaining Inferno is  named Vita Nuova Holdings. The virtual machine is named Dis, the base language is Limbo, and the communications protocol is named Styx. Styx, by the way, is identical to the latest Plan 9 file system protocol.

Given its heritage, it isn’t very surprising that Plan 9 and Inferno share a lot of common ideas. In particular, all resources are files, even network resources. Styx manages all communications to resources, both local and remote. It isn’t quite the same as Raspberry Pi, but Sandia National Labs has even ported Inferno to an Android phone (see video below).

If you are looking for more education on using the Pi for OS development, we found a course for that. If you are impressed that Plan 9 and Inferno make all resources look like files via software, don’t forget that you can do it with hardware, too.

20 thoughts on “Inferno OS on Raspberry Pi

  1. Another virtual machine to slow things down. Great for programmers of limited skill and experience, but I can’t wait hours for the OS to boot, churn the limited memory available, and then crash due to some stupid stack error, and give an obscure error message, running code in the debugger making it “only” 10X slower.

    1. Programming languages, like Operating Systems, are tools to accomplish your goal. I use a screwdriver to drive in screws, I use a hammer to pound nails, and wouldn’t switch them because it would make the end goal harder to achieve. I use Linux for networking, I use Windows for gaming, I use Mac for design/art. I use assembly for engines and time-critical uC tasks, and I use VMs and high level languages for quick prototypes and portable code that needs teamwork.

      Every tool has its purpose.

      1. People used to call a hammer “The Birmingham Screwdriver”. Yes, you can say those things are tools but the difference is that an operating system can (if designed accordingly) teach the operator about how the computer works and the same can be said for programming languages. Calling any of those things tools is such a limited world view.

    2. DIS (virtual machine / jit compiler) It is not quiet exactly same as “normal” virtual machines like in Java.

      There is little different idea. The Dis assembler is pretty same as general computer architecture is, except that it does not have registers. So Dis machine operation to add two numbers looks like ADD mem1,mem2,mem3, so it operates only references to memories. Due to this, on JIT phase every Dis instruction is straightforward translated into only 1-5 ARM or x86 instructions and then they will run. Translation Dis ->Arm also straightforward and less than loading time of dis file from disk.

      Still in case of need “high speed” there are still possibilities to develop native C code module with Api which is accessed from Dis.

      That’s why it is very fast actually and extremely flexible.

      1. Anyone remember the Transputer? Admittedly it had Local/Non-Local register stacks and not a completely flat memory space, but sounds rather familiar in terms of opcodes… ST were baking the Transputer core into the ST20 Set top box unit still, and the C compiler for it identifies as ‘ICC’ – Inmos C Compiler ;-) The transputer is dead, long live the transputer!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.