Inferno Source Release
shawk writes "Vita Nuova today announced that it has obtained the exclusive,
worldwide rights to the Inferno Operating System from Lucent
Technologies' Bell Labs and that it is to publish the Inferno source
code under inexpensive, commercial licence terms. Vita Nuova has also
announced that Lucent Technologies and a UK investor have invested
equity capital into Vita Nuova to develop and market Inferno.
Personal Inferno Subscriptions cost $300 with a 50% discount for
academics and students. Corporate subscriptions cost from $1000 for
five developers. You can order your Inferno boxed set including CD,
programmer's manual and papers today. Full details can be found at the
Vita Nuova."
Because the inchfan is so L337 that we have to screen candidates. It's a long and grueling application process, and I'm not quite sure that you could hack it. We're talking a half dozen phone interviews, of about 45 minutes each, 4 days personal interview (though we do put you up in a local hourly motel when we're through with you), complete reference check going back to third grade, require a sizeable tithe bi-monthly. IF you pass the first round, then there are further trials you must pass, but I can't let you know what they are until you past the first day.
;-)
Rule one: No one talks about the Inchfan.
Rule two: Don't listen to a word I say
Bad things often happen to good people,
It is up to them to see that they remain good.
you can do with that what you want. if you want to hack the kernel, port it to a new platform, whatever, then, yes you have to pay your $300 and become a subscriber. but once one person has done that, they can distribute the kernel binaries with no hinderance, and due to the portable nature of inferno, all worked under it will still work under the new version.
if i wasn't involved in inferno development and was stuck under Windows of some description, then i'd get a copy, just for the environment. unix-like shells under NT are ok, but they don't give you that "my whole environment is pliable under my fingers" feel that having a complete environment does.
the beauty of inferno includes the fact that once you've got something in your namespace (and everything, including network connections, is accessed through the namespace) you can transparently export it through any type of datalink, with whatever sort of encryption/authentication you want, and use it as if it was local. i don't know any other system that provides that much flexibility for so little protocol overhead.
I was reading through the Inferno docs, and I must say, I'm quite impressed. It looks like a very clean and unified architecture. However, does the cleanliness of the design outweigh the performance disadvantages of this? Sure it may make it easier to port, and the whole "everything is a file!" think may make it a more unified design, but in the end is it worth it? Two things. /var/shm, and means that every access incurs a slight overhead by having to go through the file system.
A) Most operating systems only run one major architecture. Portability is good, but excessive portability at the expense of speed is bad. I think Linux strikes a nice balance in this regard, it uses ugly performance code when it has to, but keeps the whole thing pretty portable. Also, according to the Be developers, "there is no such thing as portable code, only code that has been ported."
B) Everything is not a file! To some extent, it makes sense, but I never understood the whole file concept. Isn't it much simpler to treat everything as a region of memory? So if you are writing a driver, you simply write to regions of memory starting from a base address rather than doing ioctls, which seem to abstract it to much. Also, when stuff like DNS lookups are done through files, isn't it getting a little silly? Isn't it simpler to map closer to the way the software is actually working? Especially in the cases of stuff like DNS lookups which don't totally make sense being treated as a file. Also, doesn't going through the FS create some overhead? In BeOS a region of shared memory (an "area") is simply a region of memory. You get a pointer to it through the create_area() function, and you tell the OS that you're done with it through delete_area(), kind of like malloc() and free(). In kernel 2.4, it is treated as a file mounted at
A deep unwavering belief is a sure sign you're missing something...
Small nitpick. QNX is also a(n) UNIX.
A deep unwavering belief is a sure sign you're missing something...
Is there any relationship between Inferno and Plan9?
Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
What all products are currently using the Inferno OS?
I know that the Lucent Managed Firewall / VPN Gateway does, and I have to say, even though it has quite a price tag (>$10k), it's still a very nice device. They integrate a full feature ICSA and NSA-certified hybrid firewall including anitivirus control and URL blocking. I believe the throughput is in the 75 Mbps range for 3DES (with a few thousand VPN tunnels). Real nice box, but yeah, you pay for it.
Shouldn't be too hard. The host OS needs the ability to intercept and annull system calls. There are some other things which would be nice to have, but probably can be worked around if they're not there.
NT allegedly has the capabilities, 98 is iffy, and 95 is out. I've looked at FreeBSD (and one other, I think NetBSD) and they don't seem to have system call interception. I don't know about the other Unices.
Jeff
had to respond to this, as i've recently finished writing the inferno shell. (unless that's anonymous coward chris, ya bugger, in which case i've just been trolled, sorry folks)
where else can you make a distributed app in one line of shell script? /dev/shellctl {} {somecommand ${unquote ${rget data}}} /dev/shellctl /dev/shellctl :-)
file2chan
that one line makes a file in the namespace - any write to that file runs somecommand with the arguments that have been written to the file. i.e. i can do:
echo ${quote arg1 'arg 2'} >
or even better:
fn somecommand {
echo ${quote $*} >
}
somecommand arg1 'arg 2'
and it'll run
somecommand arg1 'arg 2'
in the original process. the properties of the inferno namespace mean that i can then export that across the network transparently, encrypted, etc. corba eat your heart out.
I for one would rather be involved in the embedded Linux effort.
If you knew anything about embedded programming, you wouldn't want Linux to be an embedded OS. You don't really want an embedded system with the "unlimited resources" attitude of UNIX. That's not to say Linux is bad, just that it is out of place for embedded systems work.
Judging from the prominent (aka "big-ass") quote on their website, it was inspired by Dante's opus of the same name. It also fits in nicely with the name of the related programming language: Limbo.
"If one is really a superior person, the fact is likely to leak out without too much assistance" -- John Andrew Holmes
Could you point me at the code in the kernel that implements it? Or anything on a FreeBSD system that uses it?
I looked at the FreeBSD system call path and saw no sign of any kind of tracing or interception. Also, the ptrace headers contain nothing resembling PTRACE_SYSCALL, and strace doesn't exist on the system I looked at.
Jeff
I looked at Inferno when it first came out, and it was very impressive in 1996, and it's still impressive today. Javasoft is attempting to target the same market with Jini, and meeting with equally glazed eyes, unfortunately.
But what sent me running away screaming was the programming language you were expected to use. Here was a language that looked like it was a solid step backward from C! And I'm sure everyone from procedural to functional programmers and everything in between can agree that this is an undesirable first impression to make upon someone.
-
Just because it works, doesn't mean it isn't broken.
many of the original developers from the Inferno project are now working for a comany called savaJe tech that is working on a product called jscream, a java kernel and os for information appliances.
I believe Microsoft holds the trademark for their own Infernal OS. This company's just looking to get themselves sued!
Wait, Inferno?
-Denor
Posted by 11223:
It seems that this company is publishing two OS's from Bell Labs - and is trying to enter the alternative OS market. I've played with the inferno emulation environment under Linux, and it was interesting but horridly slow. I hope the standalone version corrects that. However, I do have a few questions: What is it good for? What programs are for it? How easily can I port programs from *NIX?
Charging $300 a pop will certainly drive developer acceptance. I'm rushing right out to get my copy.
Wait. Linux is *free* you say?!?!? Never mind.
-Vercingetorix
"Necessitas non habet legem." -St. Augustine
One thing I found interesting is that Inferno, as well as being a stand-alone OS, can also be run as an application under Windows NT, Windows 95, Unix (Irix, Solaris, FreeBSD, Linux, AIX, HP/UX) and Plan 9.
How hard would it be to make Linux do that? I'd think that User Mode Linux would be a very good start.
--
Life's a bitch but somebody's gotta do it.
Not that I'm complaining--they're entitled to go after any market they like. It's just plain from the price structure that they've no interest in the grassroots individual developer market at all.
It's probably not a bad choice, if they want to keep it for use only with "network devices" rather than PCs. But still, as PalmOS has shown, having grassroots developer support for non-PC computing devices is certainly an asset.
Steve
Inferno only runs directly on one architecture: the Dis virtual machine. This isolates in a very clean way the platform-specific parts that need to be changed to get Inferno to run on various architectures: just rewrite the Dis machine wherever you want Inferno to run.
Most of Inferno was written in a new language called Limbo. It's authors seem to like this language, although I've seen a good bit of criticism of it from others ("the infernal language"). I don't know much at all about Limbo first hand.
This concept is borrowed from Plan 9. The concept is that different processes have different views of the system called namespaces. Each namespace is essentially a hierarchical file system that presents available resources to the process. If a process does not have enough privilege to use something, it won't even see it. What are these resources? This gets into the next point...
This concept is borrowed from Unix but is taken to new extremes. All resources in the namespace are presented as files. The idea is to unify the interfaces to a variety of things by having an open/close/read/write way to use a variety of resources. Unix presented devices this way (/dev). Inferno goes a step further by presenting other machines, network cards, and a variety of other resources as files. For example, DNS lookups and socket programming can be done simply by reading and writing files. This is not so under Unix.
By using this hierarchical filesystem view of everything, Inferno can essentially hide that parts of this file system are remote (like NFS mounts). The hope is that programmers can write programs that read like simple shell scripts (open, read, etc.) to manipulate local and remote data and machines.
Styx is the protocol that is spoken over the network in order to present this filesystem abstraction remotely. Note that these 'files' are not traditional files: they can have arbitrary semantics (they can make things happen on the server when read/written; the possibilities are endless). A Styx server exports some filesystem to a Styx client. Note that the server decides what the semantics are for this filesystem (writing file A causes some configuration to be rewritten, reading file B reads off the current configuration, etc.) The client can mount this filesystem so that it appears in the namespaces of processes on the client machine.
I think Inferno has a lot of potential, even if only for simple management of networks. Today, management of heterogeneous network can be pretty complicated (managing routers with LDAP, SNMP, etc.). If routers implemented Styx servers to expose their configuration options as a filesystem, then some Inferno machine could mount all of the routers in a directory and run a simple script to configure them all. This would be much simpler than what goes on today.
I use the Acme development environment (which both Inferno and Plan 9 have) as my editor of choice on Linux, Windows and Plan 9.
subject says it all
Tweet, tweet.
The above post is an impostor.
Bruce Perens.
From this introduction at the web site:
Inferno is intended to be used in a variety of network environments, for example those supporting advanced telephones, hand-held devices, TV set-top boxes attached to cable or satellite systems, and inexpensive Internet computers, but also in conjunction with traditional computing systems.
Have we not seen this before? There certainly seems to be a proliferation of "network" operating systems for non-computer systems at the moment. Whilst I'm not knocking Inferno, I don't really know much about it, it has to be said that this are is fast becoming saturated, and the competition is likely to be fierce.
One thing I found interesting is that Inferno, as well as being a stand-alone OS, can also be run as an application under Windows NT, Windows 95, Unix (Irix, Solaris, FreeBSD, Linux, AIX, HP/UX) and Plan 9. This could give it an edge since it increases the number of places where its applications (written in Limbo?) can be run. So even if it doesn't become hugely popular, it might still survive on other platforms.
---
Jon E. Erikson
Jon Erikson, IT guru
The things you write generally seem rational but they aren't what I would write. Your posting on the Academy tonight was especially far off.
Get your own name, already, cowboy.
Bruce
Bruce Perens.
How many other OS choices do we need?! Didn't QNX just attempt a similar sort of pricing structure change in order to attract new developers?
It's true, choice is a Good Thing(tm) when it comes to OSes, but I think that these companies are really starting to get jealous of the developer interest and support that the *Nixes enjoy and want a piece of the action.
I for one would rather be involved in the embedded Linux effort.
Intergalactics - A pretty cool strategy game in a java applet