Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Unix Operating Systems Software

Inferno 4 Available for Download 287

Tarantolato writes "A new preliminary public release of the Inferno distributed operating system is now available for downloading from Vita Nuova's website. Inferno is meant to be a better Plan 9, which was meant to be a better Unix. It can run as a standalone OS, as an application on top of an existing one, or even as a browser plugin. Also, all of its major components are named after things related to hell."
This discussion has been archived. No new comments can be posted.

Inferno 4 Available for Download

Comments Filter:
  • License (Score:4, Interesting)

    by vinit79 ( 740464 ) on Monday May 17, 2004 @02:15AM (#9171119)
    The VITA NUOVA LIBERAL SOURCE LICENCE [vitanuova.com] seems to be pretty good (free as in speech).

    Any ideas why they didint use GPL/BSD or any other standard license. Or is there some subtle(or obvious) licensing issue
  • New p2p (Score:4, Interesting)

    by hsidhu ( 184286 ) on Monday May 17, 2004 @02:22AM (#9171152) Homepage
    How about building a new p2p file sharing app on top of this thing? A truly cross platform app since it would run on top of the following architectures:

    Host Operating Systems

    Windows NT/2000/XP
    Linux
    FreeBSD
    Solaris
    Plan 9

    Supported Architectures

    Intel x86 (386 & higher)
    Intel XScale
    IBM PowerPC
    ARM StrongARM (ARM & Thumb)
    Sun SPARC

    and it supports crypto and since its native code its faster than java.

  • by gbulmash ( 688770 ) <semi_famous@yah o o . c om> on Monday May 17, 2004 @02:55AM (#9171264) Homepage Journal
    Considering it runs as a service, it sounds like it might be marketed as an alternative to VMWare if it had a decent ports collection... at least for those who want to have a generic GUI *nix they can access from Windows instead of dual booting.

  • Re:License (Score:5, Interesting)

    by runderwo ( 609077 ) <runderwoNO@SPAMmail.win.org> on Monday May 17, 2004 @03:06AM (#9171289)
    It's not liberal. It claims to cover any use of the software, which puts it in the class of licenses known as 'EULA', as opposed to simply being a permissive copyright license.

  • Re:Inferno? (Score:5, Interesting)

    by Anonymous Coward on Monday May 17, 2004 @03:10AM (#9171304)
    Those circles and arrows aren't tacked on. They wrote the entire thing using lightweight pipes AKA 'rendezvous'. It's some clever combination of kernel and user-level threading. Inferno was *almost* famous. It had the grave misfortune of being released 1 year after java 1.0. The final nail in the coffin came from Oracle's Ellison, who pussyfooted around with the idea of using it in the Network PC (remember that?) before putting the kibosh on the whole deal.

    -- Anon Coward

  • Re:Inferno? (Score:4, Interesting)

    by zhenlin ( 722930 ) on Monday May 17, 2004 @03:29AM (#9171354)
    This is mostly because it is based on Plan 9, which was developed at Bell Labs, where UNIX was developed.

    Trust me, it is all very interesting stuff. Just don't let it slip that you use the heathen UNIX, especially on #plan9 on FreeNode.
  • by gunpowder ( 614638 ) on Monday May 17, 2004 @03:32AM (#9171361)
    No, it isn't [snopes.com]
  • Discreet's Inferno (Score:4, Interesting)

    by tinrobot ( 314936 ) on Monday May 17, 2004 @03:37AM (#9171371)
    A lot of high-end movie effects are created using a product by Discreet called Inferno. It's been around for years. I smell a trade name suit coming.

    http://www.discreet.com/inferno/
  • by wildjim ( 7801 ) on Monday May 17, 2004 @05:10AM (#9171593)
    I remember 'Plan 9' news around 10+ years ago.
    It was distributed-only, where the Disk-subsystem ran as seperate (networked) nodes from the CPU-subsystem(s), which were seperate from the Terminal(s), etc, etc. It seemed an awful lot like a mainframe-style system using commodity parts, but you had to invest in at least 3 nodes in this way, if not more. This could have been expensive for what was mostly a research or hobby system at the time -- at least if you were going to get anything usable, speed-wise. (Others more intimate with the details may be able to correct/corroborate this)
    Soon after, they released Inferno, which was basically the same idea, but the distributed-ness of the components was up to you.
    I'd be surprised if much 3D software that old would still be considered anything like high-end.
  • Re:Inferno? (Score:3, Interesting)

    by slamb ( 119285 ) * on Monday May 17, 2004 @05:36AM (#9171658) Homepage
    Wrong. Compilers do not need separate interface definitions. They might just as well use the source files and find all the definitions there.

    Compilers do not need them if properly designed, as with the many modern languages I cited.

    But C and C++ require this. Ever notice how in C and C++, you can't refer to an undeclared type, even if it is declared later in the file? You have to provide at least a forward definition. ("class Bob;") Likewise functions, data members, etc. This is most annoying in C++, with inline functions. You have to pay attention to ordering. In other languages, you do not.

    There is actually a very good (programmer-centric) reason for doing having separate interface/implementation: If you want to remain completely (binary or source) interface-compatible you just lock down the interface file.

    Okay...that's great for those 1% of people who want the interface file to remain absolutely static. And I mean absolutely static. No new methods. No changes to the comments. No nothing. (In fact, I doubt there are even 1% of people who want this, once they give it some thought.)

    For the remaining 99% of us, this is unwanted Bondage and Discipline.

    Maybe the people who want the interface to remain static can do so in a more intelligent way. Like comparing javap output on check-in and ensuring the old methods are there, with the same signatures as before. If they're this strict, that shouldn't be a problem - they already have checkin tests to ensure all unit tests pass. Adding another condition shouldn't be a problem.

  • Re:New p2p (Score:3, Interesting)

    by Darren Bane ( 21195 ) on Monday May 17, 2004 @05:45AM (#9171680) Homepage Journal

    I must admit to a bias, as I quite like Inferno. But here are a few rebuttals to your points anyway.

    Java may compile to native code, but it's not done at program startup. The Inferno VM has a Harvard architecture which prohibits the byte-code manipulation that's allowed at Java run-time. This allows a one-off translation to native code at module load time. In contrast, the Java VM must JIT hotspots as you hit them (which does make it slower).

    I agree that CPU efficiency shouldn't be a factor. However, programmer efficiency should; and Inferno was designed as a distributed OS. Hence it makes lots of networking tasks easier than would otherwise be the case.

    Lastly, as well as a native OS, Inferno can run identically as an application under a host OS, which is trivial to install. This is like Oberon, and the DrScheme people published a paper calling this architecture a "Higher-Order OS".

  • Re:Inferno? (Score:4, Interesting)

    by Anonymous Coward on Monday May 17, 2004 @05:46AM (#9171682)
    When I was at Bell Labs, I wrote some fairly
    substantial software under Inferno. It has
    some nice features, and is by far the
    cleanest environment for multithreading
    that I've ever seen.

    At the time (c. 2000), it had a few misfeatures,
    such as no way to signal that you've closed
    a channel between two threads, but hopefully
    that's been fixed. Limbo is a nice, clean
    language. It isn't object oriented: think of
    it as the ideal C, rather than python, java or
    C++. However, interestingly enough,
    you can do large-scale OO things reasonably
    nicely in two ways:

    First, for objects that are more like lightweight
    daemons, you can have a thread that simulates
    a file (or file system, even). The rest of
    the program can then read and write to that
    special file to interact.
    One can be OO by implementing a whole directory,
    where each file corresponds to a OO message
    (member function).

    Second, for even ligher weight stuff,
    you can easily (trivially easily, compared
    to most languages) spawn a thread that
    talks via the rendevous mechanism,
    and treat that as a little light-weight
    server to which you can pass
    arbitrary data structures.

    There's no support for fine-grained OO,
    which was, I think, a reaction to some
    of the OO-idiots out there that
    insist on making objects out of things
    that aren't naturally separable.

    The failing is that there are not
    extensive libraries, and there is certainly
    not much in the line of applications that
    one can download.

    It is very elegant in many respects.
    If you need to write multi-threaded things,
    and can live without much in the way of
    libraries or applications, you should think
    about it.
  • Re:New p2p (Score:2, Interesting)

    by Temporal ( 96070 ) on Monday May 17, 2004 @05:56AM (#9171704) Journal
    I'm no Java fan. Certainly the language itself is designed in such a way that certain types of tasks are necessarily going to be less efficient. It depends on what you are doing, of course. However, the "Java is slow" assumption made by many people is quite exaggerated, mainly because most people don't understand how Java works. People like the original poster think "bytecode = interpreted = slow". I guess the concept of translating bytecode to native code just never occured to them.

    As I am currently developing a language which will, among other things, use bytecode, I'd like for this myth to die sometime soon. :)
  • by 0x0d0a ( 568518 ) on Monday May 17, 2004 @06:19AM (#9171766) Journal
    A better UNIX, though, sounds like a nice idea.

    Not that this is bad, but it isn't just "UNIX++".

    Distributed operating systems are cool -- to do research on. However, they suffer from some serious real-world-usage problems. Unless you really know what you're doing and frequently are writing the application you plan to use, you don't "magically get lots more speed" because most tasks that people want to do just don't parallelize all that well (and even if they do, take more work to parallelize). There are only a couple of non-unique software systems that *really* parallelize really, really well. Raytracing is one. The problem is that these systems are so few and far between that it's often better to just write application-specific distributed code rather than trying to write a general distributed OS that gives less good performance. There's often a fair amount of overhead involved in distributing an OS, so the vast majority of common tasks run with overhead they they wouldn't need to on a traditional OS.

    *IX is pretty good. There aren't a whole lot of obvious changes I'd like to see. Hmm...if I could make changes:

    * Standard home directory structure redone. I wrote a detailed proposal on Slashdot for this that allows a standard mechanism for dropping off files, having public files without exposing the contents of one's home directory, and not having config files litering ones home directory.

    * ACLs being standardized (and ideally used minimally or not at all on vanilla boxes). ACLs are terribly useful for end users, as it's much easier to do many tasks (and you can do things that you can't do with the standard *IX permission scheme). Minimal use is important to keep things easy to audit.

    * Linux has a fully-ordered init system rather than a partially-ordered init system. This is not that great from a performance and usability perspective. Partial orderings allow a full ordering to be forced, if necessary. However, full orderings prevent clever things being done like getting the desktop up as quickly as possible on a desktop-based system, but the nfs server up as quickly as possible on a fileserver.

    * *IX lacks a standard utility that can escape all non-line-terminators. This is terribly important for dealing with files with spaces and parens and things in their name. I have a replacement awk script called "myxargs" that does this and lets me do all the standard *IX file operations easily without having my stuff barf on files named using Windows conventions.

    * *IX does not have a standard set of features -- and on Linux, no easily-end-user-available features at all for transparent file encryption. Windows does. This is an embarassment.

    * Chroot is very cool, but also overkill for a lot of things. I'd like to see a support for a standard Linux restricted /proc, so that things can be sandboxed without being able to see everything else running on the system (and so that users can't see what other users are running -- this has traditionally been a bit of a nasty security hole, where newbies write scripts that take passwords or other critical data as a command line argument).

    * I've always wondered why network interfaces (at least under Linux, not sure if this is the same under other OSes) are not files like almost everything else in the UNIX world.

    * *IX lacks a good, common secure, easy to set up a distributed filesystem. It would be really nice if AFS was a piece of cake to set up, supported large files out of box, and was present on all *IX systems. If it could serve the role that SMB/CIFS does in the Windows world (Joe User can easily make a share), but with better performance and security, and the ability to easily distribute, we'd definitely be going somewhere.

    * *IX lacks a good, common, secure, easy to set up messaging client. Talk was absolutely wonderful back in the day, but firewalls and other nastiness have made it very uncommon. This is not just for desktop systems -- messaging can be a CLI application for troubleshooting and the like. I'd personally hope that such a system be able to do end-to-end encryption.
  • Re:Tryst with Plan9 (Score:5, Interesting)

    by anothy ( 83176 ) on Monday May 17, 2004 @06:29AM (#9171791) Homepage
    yes, plan 9 has driver issues. so will any small project. if you want to try things outside the mainstream, you're going to have to get over that.

    also, "its GUI sucked" is an overly broad and essentially content-free statement. a large part of it is subjective. the gui is certainly minimalist, but i really like that. i try hard to get any X11 system i have to use to look as much like it as possible. there's a number of things which you simply can't say "suck" - things like the chording in Acme, the exact window positioning with sweeping on creation, the underlying model. all amazing. particularly the underlying model - built using the same primitives as everything else in the system. you get things like distribution and recursion for free. wonderful stuff.

    all that being said, if you can't get Plan 9 working, that's a good reason to check out Inferno. all the Plan 9 concepts, with one or two others in the mix, and can run hosted (read: no driver worries).
  • Re:yay! (Score:4, Interesting)

    by anothy ( 83176 ) on Monday May 17, 2004 @06:40AM (#9171824) Homepage
    okay, it sounds insane on its own, yeah. but the point isn't "ooh, look what i can do", it's the idea of being able to run the same app anywhere. i like (as does my company) the idea of only writing code once, and being able to install it on our (mixed-OS) desktops and also letting external parties use it without having to install as much (installing a browser plug-in is fairly unobtrusive compared to installing a stand-alone app). OS-in-a-browser isn't exciting on its own, but becomes really interesting with everything else already in place.
  • by anothy ( 83176 ) on Monday May 17, 2004 @07:06AM (#9171892) Homepage
    to clear up a sibling: the C cross-compilers are used for building inferno, not for programming in inferno. you are correct that, at present, the only language you can write user-mode stuff in is Limbo (well, unless you count writing Dis assembly). anything that can be made to compile down to Dis bytecode is possible, though. there was a Java implementation some years ago (way out of date, not maintained or distributed), and a summer student at Bell Labs did an implementation for some scripting language (i forget which, but Perl or Python are sticking out at me; he was working with a bunch of web folks, so it seems likely). there's no theoretical reason why lots of languages couldn't compile down to Dis (C/C++ has issues in particular, however).

    there are options for getting existing C code into the Inferno world. at a high level, 3.
    1. keep it stand alone (on another OS) and provide a Styx interface to it. Styx is nice and simple; a project i was on did this with existing OCR software.
    2. put it in the kernel as a file server. this is how, for example, the network stack works. it's all C code, but the kernel provides a Styx interface up to applications. we've done this with something, but i can't remember what. TTS maybe.
    3. put it in the kernel and provide a module interface to it. this is how the fundamental stuff - like the Sys module, which provides the nearest analogue to libc for Limbo - works.
    all three are more work than a simple ports, but the results of the first two give you distribution for free, and all three make things easily available to all your apps and the environment.

    and yes, it has been an impediment to developer take-up, which is a real shame. Limbo is a simply beautiful language.
  • by Futurepower(R) ( 558542 ) on Monday May 17, 2004 @09:42AM (#9172657) Homepage

    "... funny reference to Pynchon's Crying of lot 49".

    To those who understand the reference, it may be funny. To everyone else, it is just confusing.

    FreeBSD's little devil logo is well-drawn and cute. But the logo doesn't match the subject. FreeBSD is seriously important! It's the OS of choice for those who want to run a secure web server. It's not clear to me why FreeBSD is chosen more than the other BSDs, but FreeBSD has become important to the world. The FreeBSD license allows mixing with closed source software, and commercial sale, and that's important to many commercial users. But does the logo say that? No, the logo tells first-time visitors to expect something cute.

    NetBSD is also extremely important. It allows commercial companies to strip out everything unnecessary and to sell an OS that is dedicated to being an extremely secure mail server, for example. However, I don't understand the connection with a bunch of devils taking ownership over a few broken-looking computers [netbsd.org]. The FreeBSD logo gives the initial impression that it is the OS of choice for computers gotten from a dumpster.

    I often need to go to people who don't have much technical knowledge and explain to them why I have chosen a software package. You can save me hours! You can save me hours of boring, repetitive explanation that the software is great, it is just the communication skills that are lacking.

    Also, good managers know that communication is a large part of the total cost of implementation of software. They are correct to be scared when they see evidence of poor communication.
  • Re:License (Score:3, Interesting)

    by anothy ( 83176 ) on Monday May 17, 2004 @09:52AM (#9172783) Homepage
    yes, GB is the ISO/UN country code for the United Kingdom ("what's GB stand for?" "United Kingdom." "oh, okay."). don't ask me why they didn't use the more obvious (and more common) UK, but they chose to use GB instead, and i try to use the proper codes when i can.
    as a trivia point, with the exception of legacy ones like .su for the former soviet union, .uk is the only ccTLD that isn't an ISO/UN code.

    on to your question proper: i, of course, am neither a lawyer nor british, but from what i was told GB law doesn't allow one to disclaim all warranty in the way the GPL does. of course, none of that's ever been tested in court, and i don't know what GB law says about survivability of agreements in the case of a particular clause being invalid.
  • Re:yay! (Score:3, Interesting)

    by anothy ( 83176 ) on Monday May 17, 2004 @09:59AM (#9172848) Homepage
    no, no, and no, in that order.
    one: the idea of portable executables is not a new thing to Java, nor is a virtual machine. Java and Inferno were started at about the same time, Java just beat Inferno to market. the fact that some solution to a problem exists shouldn't deter anyone from seeking a better one. Inferno takes a very different approach to platform portability than Java does, and manages to preserve the write-once-run-everywhere promise than Java does.
    two: javascript has nothing to do with java - the name was chosen as a (successful) marketing ploy. it isn't really a first-class language and certainly has no compatibility with Java. the point of my comment was that i could use Inferno/Limbo in all these places, with the same app. your suggestion of using Java for part and JavaScript for another part misses this.
    three: you can (and i have) build a custom inferno that starts up your app automatically, or only your app (and supporting infrastructure as needed), or simply includes it somewhere in the package for the user to run. there's no reason you'd have to distribute something separate, although you could do that if you wanted as well.
  • Both BSD and Inferno probably got their inspiration from a paper called something like "Pandaemonium, activation by a collection of daemons" (I really don't remember the name of the paper, it's WAY back! It may be in an old FJCC or SJCC proceedings...or possibly in some issue of Communications of the ACM. Check during the '70s or '80s.)

    Anyway, that was the first encounter I had with the idea of a daemon as a program that just sat around waiting for an activation command. (It may not have been new then, but that was my first encounter with it.)

    Now Unix et al. are definitely run on a development of that principle, so it makes sense to represent them with an iconic depiction of one of their important characteristics (which other OSs of the time didn't have [or if they did, I never heard of it...but I was generally running my programs as the only active program in any time slice on an IBM 360 [DOS, as I recall, though I heard about MFT occasionally]).

    Inferno definitely blended in inspiration from Dante, and that may have inspired the authors of the Pandaemonium paper, but I really doubt if the BSD authors were thinking of that. (Check out the depictions of devils & demons in Dante's Inferno...not a close match.)

  • a concession: I see you your point, but I don't think its that much an decision influencing factor as orig. post would suggest. Besides, your points I think are mainly valid for the entry level. FreeBSD already has an established market, which showed (according to netcraft - hello trolls btw :)) a steady growth over the years. I think, at this point, brand recognition (including logo) outweigh the potential hidrance.

    On the other hand, I think you are right about netbsd logo, but for different reasons (political climate doesn't favor 'parodies' or jokes nowdays), and absolutely right about the project from hell :) - but I think they are not for conquering the market just yet. They are for geeks who appreciate wacky humour. Devs are not as touchy as PHBs you know. In other words, I don't think Inferno is ready for the market anyway... (the market might be ready for Inferno though, if current tendencies continue).

The hardest part of climbing the ladder of success is getting through the crowd at the bottom.

Working...