“If it ain’t broke, break it”: Inferno environment ported to Android

Inferno, the spiritual successor of the Plan 9 operating system, has been …

Back in the day, the researchers at Bell labs developed an experimental network operating system called Plan 9. Although it had some highly compelling technical characteristics—including a sophisticated network-transparent interprocess communication mechanism—the platform never gained serious acceptance outside of research and academic circles.

Plan 9's spiritual successor, a platform called Inferno, is still actively developed by an embedded systems company called Vita Nuova, with the involvement of hobbyists and researchers. A group at Sandia National Laboratories recently developed a port of Inferno that runs on top of Google's Android mobile operating system.

The port, which is called Hellaphone, will run on the Nexus S handset and the Nook Color tablet. Even support for the cellular radio has been implemented, making it possible for the device to handle calls and SMS messages in the Inferno environment.

The port was achieved by stripping out Android's Java userspace stack and adapting Inferno so that it could be compiled against Android's custom libc implementation and run on top of Android's underlying Linux platform layer. The developers modified the Inferno windowing system so that it would work better on the smartphone form factor. They used some graphics code originally developed by the One Laptop Per Child (OLPC) project to do framebuffer rendering.

The code has been published so that enthusiasts can flash it onto their own devices for testing. It can coexist with a conventional Android userspace in a dual-boot configuration. For the best results, the developers recommend installing CyanogenMod on the phone before installing Inferno.

Although calling is functional and there is an existing body of Inferno software that is compatible with the environment, it doesn't offer many tangible real-world advantages over the conventional Android userspace stack. The release notes jokingly indicate that the slogan "if it ain't broke, break it" represents the motivation behind the project. Despite the lack of real-world practical value, the port is technically intriguing and demonstrates the viability of running alternate computing environments on top of Android on existing hardware.

It's worth noting that the Inferno environment has been brought to a number of other consumer electronics products—such as the Nintendo DS—via a variety of native and Linux-hosted ports. Because the software that runs on Inferno—developed with the Limbo programming language—target an architecture-neutral virtual machine, the individual applications will theoretically run on all of the various ports.

You can see Inferno in action on a Nexus S in a video published on YouTube. The source is available from a mercurial repository hosted on BitBucket.

Plan 9 has a distributed architecture. It can be installed and used on a single self-contained system, but also has the capability to separate the functional components of the OS between separate hardware platforms. In a typical Plan 9 installation, users work at lightweight terminals running the rio GUI and connect via the network to CPU servers that handle computation-intensive processes, with permanent data storage provided by additional hosts acting as file servers and archival storage.

Also, great work to the CM guys for their work in making AOSP usable to everyone. Kudos should belong there, no?

Linux (and probably some other Unixy OSes) adopted some ideas from Plan9, so it's not like it was a waste. Two things I thought were especially cool about it: 1. Everything is a file. Even network "sockets" and windows in the UI are in the filesystem hierarchy. 2. Each process gets its own "view" of the filesystem. One process could mount a network resource and then use it as if it were local, while another process might have a different resource mounted at the same path without interfering.

On a serious note this shows that the ability to fork Android is available to the major carriers should Moogle go evil.

Oh I hope your 'Moogle' meme doesn't catch. I like Googorola. Although I kind of like Google but I hate(d?) Moto, so I don't mind if they get swallowed up completely. Hopefully Google will send their engineers all to clockwork orange style open-source indoctrination camps where they get sick if they start getting the urge to lock their bootloaders again.

And the next time I hear someone repeating, yet again, the line that Android (the phone version) is not *really* open - I'll link here. Yes. It. Fucking. Is.

And the next time I hear someone repeating, yet again, the line that Android (the phone version) is not *really* open - I'll link here. Yes. It. Fucking. Is.

Not trolling you, just curious, does that mean you acknowledge that the tablet version of Android *isn't* really open?

I thought it was understood that they didn't release the tablet source yet because they are waiting to release the unified version with ICS to actually help the developers by trying to reduce the number of tablet versions to support.

And the next time I hear someone repeating, yet again, the line that Android (the phone version) is not *really* open - I'll link here. Yes. It. Fucking. Is.

Not trolling you, just curious, does that mean you acknowledge that the tablet version of Android *isn't* really open?

When I refer to 'open' I mean 'open source', and Android Gingerbread (the latest released phone OS) is open. For tablets, parts of the Honeycomb OS, the Google-optimized Linux kernel, are open, but no, the tablet operating system itself is not open, in that the source isn't released.

It's a pet peeve of mine when the term 'open' starts to mean 'good' or 'virtuous', as it has been used in the past by certain tech writers, and turned against Google as some kind of 'gotcha' when they do something that isn't 'good'. To me, that's politics. The word 'open' is supposed to be about source code. Gingerbread is open. Honeycomb is not (unfortunately). It's really an easy distinction to make, although those of us who like open source hope that it won't be necessary in the next iteration. *crosses fingers*

And the next time I hear someone repeating, yet again, the line that Android (the phone version) is not *really* open - I'll link here. Yes. It. Fucking. Is.

Not trolling you, just curious, does that mean you acknowledge that the tablet version of Android *isn't* really open?

I thought it was understood that they didn't release the tablet source yet because they are waiting to release the unified version with ICS to actually help the developers by trying to reduce the number of tablet versions to support.

This is essentially Android - Android, which leaves you with a Linux kernel plus some Bionic-linked userspace binaries for various driver bits (graphics, sometimes other hardware.) This isn't impressive WRT Android at all, but rather a good show of what can be accomplished using open source tools and software packages.

To me the most interesting part of plan9 has always been 9p protocol. This in that one could conceivably mount parts of every computer on the network onto the one i would be sitting in front of, and then control the whole network as if it was as single huge computer.

Most of the team that developed Inferno and Plan 9 (and Unix!) at Bell Labs, including Rob Pike and Ken Thompson are now at Google working on the Go programming language, which is heavily influenced by their experience designing Limbo

Also Brad Fitzpatrick (of memcached and other projects fame) recently moved from the Android team to the Go team at Google. Go programs can already run on Android, but at the moment building Android apps in Go is not possible, but I wouldn't be surprised if this changes soon.

And the next time I hear someone repeating, yet again, the line that Android (the phone version) is not *really* open - I'll link here. Yes. It. Fucking. Is.

Not trolling you, just curious, does that mean you acknowledge that the tablet version of Android *isn't* really open?

I thought it was understood that they didn't release the tablet source yet because they are waiting to release the unified version with ICS to actually help the developers by trying to reduce the number of tablet versions to support.

I'm guessing ICS code will be released.

Is it open or not?! You've just admitted it's not.

With all due respect, Google have been pretty clear about this. Gingerbread AKA Android 2.3 is open, the source code is available, just like it was for all previous Android versions. The ONLY exception has been Honeycomb AKA Android 3.0/3.1/3.2, because it is a fork of Android tailored for tablets. Google have said that the source code for Ice Cream Sandwich will be released, as it includes changes to support both tablets and phones in the same codebase. So Android is open, with the exception of a single fork, Android 3.x, which was a specialised stopgap measure in an attempt to give designers something better than horrible Android 2.2-based butcherings which were initially used by a few companies for tablets. I really can't understand how people have difficulty with this.

I get the impression from the previous posts that pure amazingness of Plan 9/Inferno is lost on most people. Plan 9 was essentially a re-write by the guys that wrote UNIX. Some of its concepts are difficult to grasp at first, but then you have the "Oh my God" moment.

Yes, they have been pretty clear that Android is NOT open. This is not a difficult question. It's either Open, or it's not Open. Being "Open" when Google finds it convenient does not make it Open. That's actually the exact opposite of open.

Quote:

The ONLY exception

I'm sorry, but exceptions don't apply to "Open" Over and over you are admitting it's not open, so I'm not sure why you are arguing this point still?

And the next time I hear someone repeating, yet again, the line that Android (the phone version) is not *really* open - I'll link here. Yes. It. Fucking. Is.

Not trolling you, just curious, does that mean you acknowledge that the tablet version of Android *isn't* really open?

I thought it was understood that they didn't release the tablet source yet because they are waiting to release the unified version with ICS to actually help the developers by trying to reduce the number of tablet versions to support.

I'm guessing ICS code will be released.

Is it open or not?! You've just admitted it's not.

With all due respect, Google have been pretty clear about this. Gingerbread AKA Android 2.3 is open, the source code is available, just like it was for all previous Android versions. The ONLY exception has been Honeycomb AKA Android 3.0/3.1/3.2, because it is a fork of Android tailored for tablets. Google have said that the source code for Ice Cream Sandwich will be released, as it includes changes to support both tablets and phones in the same codebase. So Android is open, with the exception of a single fork, Android 3.x, which was a specialised stopgap measure in an attempt to give designers something better than horrible Android 2.2-based butcherings which were initially used by a few companies for tablets. I really can't understand how people have difficulty with this.

You're right, and darkpill knows you're right. Hell, Richard Stallman knows you're right. Stop feeding the troll (look at his post history). As you state, only reason Honeycomb's source wasn't released in its entirety (from what I understand, a lot of it _was_ released) was to keep the phone makers from slapping it on phones, when it wasn't designed to behave on it. It was done solely to ensure that it was only on devices it would perform well on, and thus prevent a PR disaster from phones running an OS not built for them (people think the phone-oriented android was bad on tablets? can anyone imagine how bad the tablet-only one would be on a phone?!). If ICS isn't released with source, then the trolls will have something to base their claims on. Personally, I'll call two major versions, plus all their minor versions being open as more anecdotal evidence than one major version and two minor versions (plus explicit stated intent to release next major version, since it will be designed to play nice on both formfactors.)

As you state, only reason Honeycomb's source wasn't released in its entirety (from what I understand, a lot of it _was_ released) was to keep the phone makers from slapping it on phones, when it wasn't designed to behave on it.

No it wasn't. It wasn't released to protect the profit margins of Google's closest partners. It's not open. That's a fact. Who cares if it wasn't optimized for phones.

"Open" means you can do what you want with it, not do what you want as long asGoogle says it's ok - that is not open, not matter how you slice it.

"Open" means you can do what you want with it, not do what you want as long as Google says it's ok - that is not open, not matter how you slice it.

Open doesn't mean that. It also doesn't mean "virtuous", "good", "awesome" or "what Jesus would do". It means open source, as in, the source is available to the public. Gingerbread is open, the source is available at the AOSP (Android Open Source Project) website. This Inferno project was a modification of that source and only possible because it was open. Cyanogenmod is also compiled and modified from the AOSP branch of Android. Honeycomb is not open, it is a private branch. Since both of them are "Android" you cannot say "Android's not open" anymore than you can say "cars are blue". Some are, some aren't.

If you want to define "open" to mean "does good deeds like saints and Oprah", then you can, but its not what the word means.