
Inferno: A compact OS for building cross-platform distributed systems - arm
http://www.vitanuova.com/inferno/
======
eggy
I am waiting to see what becomes of Arthur Whitney's Desktop and Server OS
based upon his language K5/K6. KDB+/Q (database and language) is a small
download, but is very powerful.

I had heard of Inferno and Plan9, but aside from some YouTube videos and
links, I never really looked it over or took it for a drive. I'll have to
check this out; after all, it's amazing what nuggets are buried in the recent
past of CS.

Here's some timing tests done in various languages (C, Java, Perl, Tcl, and
others) in 1998 compared with Inferno [3]. Brian W. Kernighan of K&R fame was
one of the author's at Bell Labs!

And here's a comparison to Arthur Whitney's K language, I believe not too long
after using the same code to compare with K on a 100MHz Pentium [4]. K is
significantly faster and shorter in LOC.

The tests were mainly loops, text and stdio. APL derived languages like A+, K,
J, or Q don't usually do loops, they are better with binary, and memory-mapped
files, but K did very well in the benchmarks despite those factors.

[1] [http://kparc.com/](http://kparc.com/)

[2] [https://kx.com/](https://kx.com/)

[3]
[https://9p.io/cm/cs/who/bwk/interps/pap.html](https://9p.io/cm/cs/who/bwk/interps/pap.html)

[4] [http://kparc.com/z/bell.k](http://kparc.com/z/bell.k)

~~~
imglorp
As attractive are kx's claimed numbers, you'd need to be a highly motivated
company to embrace it. The single character for everything culture is
impenetrable and unreadable, thus very high bar for maintenance at the
organization level.

~~~
sansalaman
Just providing readers with a different take on things: I've been coding in K
professionally, after coming from a C-heavy (not functional-programming!)
background, for about three months. It only took a few hours with the language
to have the apparent line-noise make sense, and after a few weeks I could
decipher the function of most snippets I see.

There are great reasons why a dev team might not want to switch over to K for
its operations (or switch languages at all, really), but seeing K in action, I
have to respectfully disagree that readability and maintainability are those
reasons.

------
SixSigma
I've worked professionally with Inferno and know the inventor and current
maintainer.

It's a good system and is used in a couple of commercial systems I know of.

It is also ported to IBM's Blue Gene and used in the research programme there.

~~~
saganus
Could you elaborate a bit on what kind of commercial systems you used this
for? and what was the role of Inferno in it?

I've been really interested in playing with it since my college years, but
every time I got to poke around I felt like it wouldn't be (in my very
uneducated opinion) fit for something in production.

However the idea of the OS is very appealing to me, so I would love to hear
more on how does this fare in the real world and what would be a compelling
use case.

Thanks!

~~~
SixSigma
My friend used it as the OS for an acoustic levitator built in the US and sold
to a Japanese Company - he got sensible hardware control and a GUI toolkit all
in the same OS.

I worked for a startup trying to build a phone - I'm NDA on that so can't say
much about it except we incorporated Sql lite into it easily enough - the
beauty of an OS in C, tack on a 9P interface and you don't need drivers or
headers in your Limbo code.

In fact that's the greatest takeaway from Plan9 and Inferno for me. Add 9p to
your server and you never need native drivers again - it's a bit like REST.
Once you can mount 9P you compose all sorts of stuff.

The canonical example is TCP. If I can mount _your_ /net/tcp on my file system
I can use _your_ network stack. Even if I am only connected to you with a
serial cable. And it is on a _per process_ basis so I can have _two_ shell
windows importing two network stacks from different remote machines and use
two networks and they are separate.

~~~
jff
I'd be interested in talking about the phone project in more detail... I'll
even sign an NDA if the startup still exists, or just generally talk about
Inferno. We have probably communicated on the Inferno list in the past,
actually, but since neither of us have contact info in our profiles you can
reach me at this disposable address for the initial contact:

alt.za-2othz2qa@yopmail.com

------
pmarreck
Been watching Plan9 and its ilk for a while; some fantastic OS-level ideas
that really deserve more traction.

~~~
f2f
the time for grand OS ideas has long passed. here's an eulogy by one of the
authors of plan9 and inferno (you won't hear anything from the authors of
other operating systems except tannenbaum):

[http://herpolhode.com/rob/utah2000.pdf](http://herpolhode.com/rob/utah2000.pdf)

~~~
mveety
No it hasn't. There's a ton of cool shit that hasn't been invented yet. What's
stopping research is (as rob more or less states) researchers want to make a
usable system more than they want to make an interesting or innovative one.
It's going to happen again someday. It has to, a gaping hole like this will
get filled in.

~~~
pjc50
Systems which aren't usable don't get used, and so the research stays in the
lab.

OS choice is a market dominance issue.

~~~
mveety
The goal for a research OS isn't market dominance or to have users. It's to
test ideas.

------
rcarmo
I've been playing around with it on[1] and off, mostly on the Raspberry Pi[2].
It's very nice conceptually, almost impossible to use practically except for
research purposes.

[1]:
[http://taoofmac.com/space/blog/2014/05/04/2230](http://taoofmac.com/space/blog/2014/05/04/2230)
[2]: [https://bitbucket.org/infpi/inferno-
rpi](https://bitbucket.org/infpi/inferno-rpi)

~~~
SixSigma
I know of commercial products containing Inferno. What makes you think it
impossible?

~~~
rcarmo
Well, code reuse is a pain, for starters. Limbo is not something people
actively develop in, there are very few native ports of networking protocols,
and you need to rebuild the OS if you want to expose hardware functionality.

~~~
jff
Only takes about 30 seconds to recompile the OS, though.

------
jff
I've written a good bit of Inferno and one thing that's really neat is how
closely related Limbo (the programming language) is to Go. There's good reason
for this, of course-the guys who wrote Inferno went off to Google and made Go.
The Tk GUI capabilities are a bit annoying to work with, but it's really not
hard to whip up a GUI application in Inferno quickly--all the while getting to
interact with those 9P servers which make data exchange really simple.

------
feelin_googley
Google should have used this for Android instead of...

But, they took the easy way out.

~~~
nickpsecurity
You mean this? ;)

[https://mobile.slashdot.org/story/11/09/17/2050200/inferno-o...](https://mobile.slashdot.org/story/11/09/17/2050200/inferno-
os-running-on-android-phones)

~~~
mveety
Ah I forgot hellaphone! I miss having a 9P interface to my texts that I could
just mount and use with some rc scripts on my terminals. Sucks that I have an
iPhone now where this is probably impossible or insanely hard to do.

~~~
easytiger
you could still do it on android. You can't buy an iPhone and then complain
that you can't do anything on it.

~~~
mveety
No I can do things to it; I have u9fs installed and use that often. How it
does sms, though, isn't clear and I can't find anything on it.

~~~
jff
If you want to make a 9P interface to SMS without running Hellaphone, you
should start by looking into the RIL daemon. If I remember correctly, it runs
at the Linux level (not Java) and drops a socket somewhere. The Java libraries
for making phone calls, texts, etc. work by sending commands to that socket.
You can read/write that socket yourself and use it to e.g. send SMS

------
mingodad
Would be easier and nice if there was a ready to use virtualbox image. Someone
knows if it exists ? Cheers !

~~~
swiley
Inferno runs strait off Linux (you start the emu program). Plan9 also has 9vx
or so. Plus with plan9, all you need to start a workstation is 9pcf (the
multiboot PC kernel) and a plan9.ini. You can literally just hand those two
things to qemu and mount the rootfs from a file server with almost no setup.

~~~
0xdeadbeefbabe
Would you consider typing out the commands and posting them somewhere where we
can see?

------
floatboth
> IDEA, 56 bit DES, 40, 128 and 256 bit RC4 encryption algorithms > MD4, MD5
> and SHA secure hash algorithms

They certainly haven't updated it to match the modern world…

------
adricnet
Ah Inferno!

Did anyone make any headway porting/redoing the browser plugin to Mozilla?
There were some mumblings about GSoC for that not that long ago.

~~~
0xdeadbeefbabe
Probably not what you were after, but someone did devdraw for js in 2014
[https://bitbucket.org/dhoskin/9webdraw/](https://bitbucket.org/dhoskin/9webdraw/)

------
0xdeadbeefbabe
So does golang work on inferno?

~~~
1ris
No, only limbo (and I think a scheme) work on inferno. But limbo is very, very
much like golang.

