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

 



Forgot your password?
typodupeerror
×
News

Inferno Plugin for IE - An OS In Your Browser 167

anothy writes: "Vita Nuova has released a preliminary version of their Inferno plug-in for Internet Explorer (other browsers and OSs pending). this embeds Inferno, a small OS built around good security, a virtual machine, and an extention of the Unix "everything is a file" model, right into your browser. The plugin itself is 719Kb (smaller than Flash or RealPlayer) and provides most general OS services, including I/O, text manipulation, floating point functions, and graphics, including a Tk (no, it's not Tcl/Tk) implementation. These are the exact same Dis files that run on native Inferno (on raw hardware) or emulated on various other OSs. They also provide additional info on the plugin, including a little info on writing Inferno applications. Inferno's originally from the same lab at Bell Labs that gave us Unix, C, and Plan 9." See our previous article.
This discussion has been archived. No new comments can be posted.

Inferno Plugin for IE - An OS in Your Browser

Comments Filter:
  • "only" 719K... Well, that's "only" 719k of superficial bloat added to... how many does IE already have? OK, might not make such a big immediate difference after all, but bloat usually creeps. And bloat it is, since the damn browser already has authentification and encryption facilities, and this plugin isn't gonna be one iota more secure than the huge mountain of swiss cheese it's being plugged into.

    The point is perfectly valid, and your stupid kneejerk respons perfectly annoying.

  • by Carnage4Life ( 106069 ) on Thursday December 14, 2000 @11:07PM (#557262) Homepage Journal
    think it's not really an OS, just a shell. Whoever said "OS" was simply slightly misguided

    Inferno is an OS which can be gleaned by checking the Overview papers on Inferno [vitanuova.com], Limbo is the scripting/programming language for the inferno OS. The plugin merely allows you to run Limbo programs in a browser which is exactly what Java plugins enable one to do with applets.

    Grabel's Law
  • Thanks to Moore's Law, there will be room for more for some time to come. Actually, you may be on to something there... Ever asked yourself what anyone would need the laterst GHz and TB monsters for when most of them are doing the same tasks with them that the hardware of 5 years ago, a tenth as powerful, was already adequate for? Well, here's your answers: layers upon layers of abstraction, emulation and embedding that do hardly anything useful and make the system all that much more complex and difficult to debug... creating more work for programmers and technical support people. And whoosh! you got yourself a "new economy" out of nothing!
  • Am I the only one wondering WHY this is cool? First off, it's just plainly sick to build an OS to run inside of Internet Exploiter, and secondly, exactly what are the features of this plugin? In other words, besides it's capabilities process-wise, what is it good for, and why would the average user give a damn 6 months from now?
  • Java, Inferno. It seems such a waste to design, construct, and optimize virtual machines, then only support a *single* language on that VM. Image the same model for real processors: "The NEW Intel Crapanium!!! Executes C++!". What a joke.
  • What do you mean a year before Java was released? Netscape with Java was the first common access to Java that many people had. Heck, you had a hack that could make Netscape compile Java code! I don't have all the URLs for the history with me. But, do have a look at this news snipper [emedia.com.au]. That was February 95, we are now nearly 2001 - counts to 6 years for me, I don't know about you.

    I repeat Inferno started out as a Java competitor. Dennis Ritchie and co were pulled out of Plan 9 to immediately work on Inferno.

  • 1. Everytime you hit backspace, it sends you back to the last page. I don't think I really want to train my fingers to forget what backspace does in a normal shell.

    2. It looks like a good flash alternative except... The traditional flash developer uses flash because it has decent development tools that a graphic arts person can understand. Are these people going to drop everything to learn Tk?

    3. Number 2 might not be a problem if it ran on Linux and was under an OSI certified license. At least the geeks who like programming, graphics, and Linux might use it. But NO, they targeted IE, and the license has some issues. Aren't the X fonts free?

    My recommendations: 1. come out with a Linux version. 2. work out the license issues to the point where it is MPL / LGPL compatable so that it can be plugged into Mozilla. 3. Offer secured EiC [vrml3d.com] as an alternative to that other funky language.

    Shoot! If they followed my recommendations, it'd be Scrubbed C [vrml3d.com] (I wrote that before I knew what a VM was. If I were to write that today, I would forget about preprocessing the language and propose a sandbox instead)

  • I do happen to know something more than others do simply because I was in school when all this was happening and I was very interested at that time. May be you should check out the following links. And check out the dates of those articles.

    Inferno and Java comparison [bell-labs.com] from your favorite Bell labs.

    A news item [emedia.com.au] that I got by just searching for inferno and java on google. I suggest you do the same.

    How about this link [njit.edu]? That URL comes incorrect when I post with Dec 7 nightly build of Mozilla. Remove the garbase after .html.

  • Hit backspace on your IE browser RIGHT NOW. What happened?
  • Sigh. From the webpage:

    Rather than being interpreted, as Java applets normally are, Juice always compiles each applet into the native code of the target machine before it begins execution.

    Java hasn't been "normally interpreted" for several years now.

  • Java is slowed by excessive decomposition in its class libraries and the need to dynamically load and check all those classes all the time. The mantra being delivered by the Java class library folks may not be the best way. That's not to say it's a bad way. Java does a lot of good things for many programmers (memory mgt. regardless of lack of implementation efficiency and some semantic warts concerning finalizers) and is better than many other languages, eg, VB.

    Limbo offers a different approach to programming than Java. The intrinsics are immediately useful rather than just providing faciltiies to allow the construction of useful facilities. You save a layer immediately. Also Limbo's syntax, once you get accustomed to it, is refreshing. It took me, a long time C (and everything else) programmer only a few hours to feel quite comfortable. The implicit typing saves so much...typing :) You get a lot of the ease of use of dynamically or un-typed languages whilst retaining strong type checking. And then there's the CSP support which is handy for today's more complex interactive programs and may be simpler to use than the Java concurrency model (I've done a lot of occam, I'm biased, and yeah I know there's channel classes for Java).

  • Duh,, if you follow da links duh... Can you say anything useful, probably not.
  • Oh, someone's going to Hell for this one. (That infinte inferno.)
  • I repeat Inferno started out as a Java competitor. Dennis Ritchie and co were pulled out of Plan 9 to immediately work on Inferno.

    How do you know, were you there?

    I work with someone who was there. Someone who has been closely involved with the Labs from the earliest days of Plan9 and Inferno. Your version of events certainly doesn't correlate with his!

  • Othello and connect four come stock with inferno. Granted it takes a little work to get them working, but they are just plain cool to play. Also, we've just completed checkers for inferno here at SUNY Geneseo for our distributed systems class.
  • The VM does not just support a single language. It executes Dis code, much as the Java virtual machine executes Java byte code. There's nothing to stop other languages using the VM.
  • Hey if you would follow those links you would see that it's authentication, and not authentification. Jeez take the time to read.
  • > Hit backspace on your IE browser RIGHT NOW. What happened?

    It went back a page. Working as designed, IE captured the backspace, it went back. Loaded up a java plugin with text input, hit backspace, and it backspaced. Loaded up a flash page with text entry, hit backspace and surprise surprise, it backspaced. Now what were you saying?

    --
  • From Vita Nuova mailing list:
    WHAT SAMPLE PROGRAMS ARE AVAILABLE?
    The sample programs currently include Bouncing Balls, Eliza (your Personal Therapy Computer), Mandelbrot Fractal Browser, Polyhedra Viewer, Reversi (Othello) and Tetris.
    Yes, they are not exactly a Quake, but they are there...
  • In college, we used to spy on the other lab using this sort of audio trick on some SunOS sparcstations. Until someone got pissed and pulled all the microphones.

    rsh otherlab "/bin/cat /dev/audio" > /dev/audio

    Thanks to the "everything is a file" philosophy, it was amazingly simple to do. But the problems start to crop up. Security is workable (set the file permissions on /dev/audio to only read/write for the console user like Solaris later did). But if I wanted to change the sample rate, I had to go use a non-file interface.

  • I'm inclined to believe that you're talking out your ass, unless VMware has made some amazing leap that lets you run multiple layers of emulation without instructions being caught by the wrong layer... Could you show me where they announced this feature?
    --
    Obfuscated e-mail addresses won't stop sadistic 12-year-old ACs.
  • Well, for one, you could install the real thing, but this is a very convenient way to try it out. 700k? C'mon, some web home pages have more graphics content than that... But also, as a plug-in, it occupies the same niche as Java, whilst being a whole lot smaller.
  • > a small OS built around good security, a virtual machine, and an extention of the Unix "everything is a file" model, right into your browser

    So now instead of mailing you a click-to-run Virus Bearing Script, the 44x0r k1ddi35 will mail you an entire click-to-run operating system to work their evil wills on you.

    Could you sucker someone into launching this and hide the fact that it was running? Might make it easy for your team to move to the front of the pack at distributed.net, if honesty wasn't one of your big priorities.

    --
  • From what I am getting out of this, I am guessing that maybe for a specific client/server app the server may decide that the best way to present information is via an app written for the embedded platform Inferno and therefore they write the application. Then, the clients, via this plugin can view the info the server presents via a standard web server.

    I am saying this because it's not nearly as general purpose a solution as Java since it is a IE plugin and, well, why should we all learn another web language...

    So, anyway, I'm seeing a cross between java and ssl only it only works on IE >5.0. Sound right? Oh well, who knows, it's late and I haven't slept for days. Damn college finals. :-)

    Justin Dubs
  • by Anonymous Coward
    Maybe it sounds like JAVA. But I've tried the examples and it is very fast executed. I've never seen a JAVA-Applet this fast.
  • Maybe that's all it sounds like because you didn't READ THE ARTICLE

    My oh my aren't we in a bad mood today.. I did read the article but I was commenting on how a "os environment hosted in a browser" sounds exactly like the idea that Java has, with a sandbox etc.. You know how Sun wants you to think of it as a PLATFORM and not a language. The basic idea is the same.

    Maybe you should lighten up a little. This is just Slashdot; a web site. It's not worth getting a heart attack over.

  • Seriously, this is really unimpressive. I cannot imagine one single thing that this plugin enables you to do that the Java VM built into Internet Explorer already gives you. Apart from a 750k download, that is. It's got Tk, whoopy-f'n-doo: IE's got dhtml, Java, COM/ActiveX, Script, XML/XSLT.
    And why does your dis file need to be signed in order for you to do communication back to the originating server? Even the Java sandbox allows you this luxury.

    We've already got the wheel, folks. Haven't you worked out what color to paint it yet?

  • by Anonymous Coward
    I don't know what the poster (or slashdot crew) were thinking. If you even read the first few lines at the website it becomes clear that this plugin allows you to emulate the behaviour of limbo machines.

    This is not complicated. Running Limbo binaries under x86 is called emulation. There is no "limbo os" its a language. The source doesn't (to my knowledge) compile under x86 (yet?). However it does compile on limbo machines (obviously).

    This is not neat, new or very interesting. Its something that has been done many many times.
  • mmm hmm... (sarcasm) yeah, ALL it does is authentification and encryption. I guess you're right.


    (not sarcasm) Fool.


    -CoG

    "And with HIS stripes we are healed"
  • Does not work neither in IE nor in Mozilla 0.6.
  • Just invoking the word "bytecode" or compiling a language to bytecode doesn't suddenly make the virtual machine language independent.

    Java bytecode, for instance, is significantly tied to the Java language specification. Go browse The Java VM Specification [sun.com] if you like -- classes fields, members, construction, interfaces, and garbage collection are built into the VM.

    Admittedly, I am ignorant of Dis code, but when I see "Inferno applications are written in Limbo" in the Inferno FAQ [vitanuova.com], my confidence in a language independent Inferno VM is shaken.

  • Well, I could tell you but then, of course, I'd have to kill you. :-)

    D.

  • I can write a config and script for plugger to run vmware from in inside Netscape/Mozilla/..., and boot in it from downloaded image for any OS that runs on x86. With all secuity and whatnot -- will I get a slashdot story for that?
  • I think we ran out of memory at an OS
  • you like to configure a lucent pathstar [lucent.com] for voice over ip and such.
  • by plunge ( 27239 ) on Friday December 15, 2000 @07:21AM (#557296)
    When you get the plug-in you are essentially downloading the Inferno kernel. I know it's hard to understand in the Windows age, where the definition of "OS" for some reason now includes a media player, but it's certainly an OS. (I actually think the Widow Manager (WM) is evenincluded in the plug-in as well.) And incredibly small and portable one, which is great. Run the "shell" program, and look around. Inferno's real "power point" is that it can run practically anywhere, either native or emulated- and does a very efficient and good job at both. Plus, Limbo is a REALLY cool language. Forget talking into a mic and making the sound come out of your computer's speakers- with Limbo you just need a few lines of code to talk into a mic and make the sound come out of _another_ computer's speakers. Neat stuff- in fact if they'd let Inferno out of the secure no-networking box this plug-in puts it in, you could play with stuff like that.
  • Maybe it's just me but that sounds like a Java virtual machine, with the exception of the small size and the "everything is a file" of course. :)
  • Yes, Lucent PathStar high end telephone VoIP switch / access server runs on Inferno. See the Google-search [google.com].

    See also info about Lucent VPN Firewall products, which also run on top of Inferno: Google-search [google.com]

  • I think you are a little misguided in you conclusion "that Inferno was in fact written in answer to Java". Though I realize, that you simply may know something that others do not know, but at least officially Vita Nuova is saying in the The design of the Inferno virtual machine [vitanuova.com] paper:
    In early 1995, we set out to apply the ideas of the Plan 9 operating system [1] to a wider range of devices and networks. The resulting system, Inferno [2], is a small operating system and execution environment that supports application portability across a wide variety of processors and operating systems. Unaware of the contemporary work to establish Java [3] from the technology of the Oak project, we independently concluded that a virtual machine (VM) was a necessary component of such a system [4]. Because of improvements in processor speed and the feasibility of on-the-fly compilers, a VM can execute quickly enough to be economically viable.
    I definitely agree with you that all these "execution environments" are simply browser bloat that I can live without. Unix tought us to combine small tools to solve complex problems. Going along this line, if you agree with it, browser should be used for browsing. Though I believe embedding Java in Netscape was a huge push for the technology recognition, and probably this is a motive that drives Vita Nuova as well. Seeing how far superior Inferno is to JVM I rather see it as a part of all browsers, so people will recognize it, begin liking and using it.
  • by jtdubs ( 61885 )
    Maybe I'm confused by this whole concept, but, the only thing that springs to mind to say is "Why?". I mean really, a browser in your OS. This has to be more of a hack than any sort of useful product. Someone please prove me wrong...

    Justin Dubs

    btw, fp?
  • The biggest thing about Plan 9 and Inferno:

    The Styx Architecture for Distributed Systems [vitanuova.com]

  • in IE? that's not exactly anywhere...

    unless you believe the browser war is over and ie won, hm...

    but there has to be an easier way than to run an os in your browser, right?
    --
    Peace,
    Lord Omlette
    ICQ# 77863057
  • But if I wanted to change the sample rate, I had to go use a non-file interface.

    On inferno...

    echo rate 22050 > /dev/audioctl

    changing volume, encoding and all the usual audio parameters is done in the same way.

    As for security. Inferno allows you to authenticate connections to your machine. You can choose the namespace (and hence devices) visibile to clients on a per connection basis, optionally authenticated, digested and/or encrypted.

  • by johnbates ( 164567 ) on Friday December 15, 2000 @07:37AM (#557304)
    You can. There's the source for a database file server in the Inferno subscriber's area on the Vita Nuova [vitanuova.com] web site.

    With it you can mount the file server from Inferno and read and write to ODBC databases. The file server presents a name space that looks like this:

    /db/new
    /db/n/cmd
    /db/n/ctl
    /db/n/data
    /db/n/error
    /db/n/format
    /db/n/status

    Each open of the `new' file results in a new conversation with the server. You can send management commands to the `ctl' file, SQL commands to the `cmd' file, read the format of results from the `format' file and the actual result data from the `data' file. You can manipulate the database through the namespace, from a Limbo program, or even from the shell like so:

    mount -A tcp!localhost!6700 /n/remote
    {
    d=/n/remote/db/`{cat}
    echo 'connect cellar' >$d/ctl
    echo 'select name from wine' >$d/cmd
    cat $d/data
    }</n/remote/db/new

    Through the namespace you can control the format of the returned results, control transactions, connect to new databases, execute commands, and of course read the results.

    The server runs under Windows on a remote machine and connects to its local ODBC service. In common with all Inferno servers it then exports those services over a network (not just TCP/IP) to other Inferno systems using the Styx [vitanuova.com] protocol.

    Its easy to write servers for other databases, and indeed other kinds of service. One of the nice things about such servers is that they can be explored using common commands like: ls, cat, awk, pwd, cp, echo, acme and even perl, i.e. without specialised interfaces in each program.

  • I don't really understand half of what you're saying here. Some of it seems to switch meaning in midsentance. Rephrase the core of the post for me please?
  • in IE? that's not exactly anywhere...
    OK, only 80%+ of all desktops.

    unless you believe the browser war is over and ie won, hm...
    please don't force me to make a lame Al Gore crack.

    but there has to be an easier way than to run an os in your browser, right?
    Considering the fact that the all you have to do is click a link, answer Yes to the question with the effect of: "Do you want to install this?", I would guess not. Installing Windows software outside of IE requires at least twice as many clicks...

  • by Anonymous Coward
    Now i can run Inferno on top of ie/win98 on top of linux.
  • point

    yes, please make the al gore crack

    point

    nice =)
    --
    Peace,
    Lord Omlette
    ICQ# 77863057
  • "dis" files on "inferno". I love it! :)


    -CoG

    "And with HIS stripes we are healed"
  • Point taken, but in this case it's quite obvious.
  • by pb ( 1020 ) on Thursday December 14, 2000 @11:38PM (#557311)
    I never got past the Apple ][ emulator in Java [geocities.com].

    I bet Inferno doesn't have any games, either.

    Damn you, AT&T, and your Unix heritage. MacOS X will never have any good games. You're not going to take away my web browser too!
    ---
    pb Reply or e-mail; don't vaguely moderate [ncsu.edu].
  • Yes, that is all it does, at least that's the only tangible benefit its makers can cite, which you'd know if you'd actually read the article [vitanuova.com]... Oh, and it's programmable. As if the browser didn't yet have Java, JavaScript, ActiveX and probably a few others I can't remember.

    If you actually have a point in implying that Inferno can do oh so much more, come forth and tell us about it instead of attacking people for failing to do something you apparently haven't done yourself.

    Moron.

  • by DrSkwid ( 118965 ) on Thursday December 14, 2000 @11:41PM (#557313) Journal
    the usual moaners saying "what's the point of that" bore me

    The point really is that you get the write once use anywhere philosophy. Ok so java has been there before but surely that fact doesn'e preclude someone else trying it out.

    The plan9, Inferno system of distributed computing through namespace binding is the true gift of this project. Although I did notice some of the Styx functionality has been removed for security (Styx is the network).

    You implement services by mounting your service as a file system. You can then execute all of your machines capabilities through echo & cat!!

    "So what!" I here the unimaginative cry well you can bind services from remote computers and use their capabilities in exactly the same way.

    want to play audio on MY computer
    roughly

    bind MyComputer\audio \hisaudio
    cat music.pcm \hisaudio

    and the audio plays out on my machine

    You imagination should take you from there.


    .oO0Oo.
  • by Yu Suzuki ( 170586 ) on Thursday December 14, 2000 @11:45PM (#557314) Homepage
    At least you're just running "an OS" instead of "GNU/Linux." Because then you'd have GNU's Not Unix's Not Unix's Not Unix's Not Unix in a browser in GNU's Not Unix's Not Unix's Not Unix's Not Unix in a browser in GNU's Not Unix's Not Unix's Not Unix's Not Unix...

    Oh dearie me.

    Yu Suzuki

  • It's very simple. They created the 578th "OS specialized for embedded applications" project, like every other software company without a sound business plan seems to be doing today. They want their project to get more exposure, excuse me, "mindshare". They figured "how much more mindshare can you get than with a plugin for the single most used application on the face of the planet?". And that's why we were blessed with this wonderful piece of ones and zeroes. A market penetration piggy back ride.
  • This dis file signing is simply what they do in this implementation, in which they've removed both Styx and security for the time being. It's by no means what you or anyone else needs to do. It's smaller than the JavaVM, doesn't require restarting the browser, and implements a great language for which many people already have apps, and would like to run. Now, even if I'm you're away from your native or emulated installation of Inferno- say at a computer lab, you can just grab and use the plug-in without any hassle. Maybe you don't find that useful, but many people would. Vita Nouva provides services to those people, and you don't need to bitch them out just because you don't happen to feel like using it.
  • i was wondering if anyone would pick up on that.
  • You know, an assumption you have here really bothers me. Who is the "we" in the "do we need this"? Lots of different people need lots of different things. Even if you are speaking just as an advocate for a software distribution model, or an OS, or whatever cause- there isn't a distinct "we" that either needs this or doesn't. Of course, Im being harsher on you that I should be, since your explanations takes the sting out of the way the "issue" is phrased. But I'm a nasty guy.
  • Uh, there IS a Linux version of Inferno, which is really what's being demonstrated here. There just isn't a browser plugin for webrowser that runs on Linux yet. The backspace key issue really does suck, espcially for those of us with typo prone fingers. There isn't much that can be done about it until IE deigns to correct the problem.
  • Great, we get a new programming language. At least this one is optimized for parallel programming and process syncronization.

    One thing I am missing is support for their target devices, like the Palm :)

    BTW: It is not Open Soruce, it is $300 for a source license.
  • by Argon ( 6783 ) on Friday December 15, 2000 @12:21AM (#557329) Homepage
    I don't want to sound cynical, but anybody remember Tclets? If you don't, head over to the Tcl Plugin [scriptics.com] at the now defunct scriptics. For all practical purposes this is a Java wannabe on the browser.

    What many folks may not realise is that Inferno was in fact written in answer to Java. Development started more than 6 years back when the first Netscape browsers were released with Java support. Java uses a stack based VM, Inferno used a register based VM.

    I remember me and my friends being pretty excited about Inferno (we were doing our post graduation). We thought Java really sucked. At that time everything was touted up as a Java alternative, including Perl (someone wrote a sandbox for Perl and was quite vociferous about it).

    Now six years later, I use the web with Java completely disabled and I really don't want a client side execution environment on my browser. Maybe javascript has it's uses (which was originally Livescript and Netscape changed it's name to hook on to the Java hype), but all these "execution environments" are simply browser bloat that I can live without.

    That is not to say Inferno is useless. I still think it's great stuff, just that I see no point in having it as a browser plugin.

  • The point is not that it adds another character to the Java, ActiveX,etc. stable. The point is that it implements a really neat OS in yet another location, in this case allowing you to run any of the applications you've written or others have written for that OS- without having to download and install the whole thing. And to boot, it's not just "another"- it's really good.

    Limbo is a truly elegant and wonderfully concieved language. It would be silly to start arguing right now whether it's better or worse than your favorite language- as I'm sure many people are prone to fall into. Who knows? It's just really neat.
  • It's not a supported feature, and in fact there is a check in VMWare to prevent you from booting vmware in a guest OS... As always, there are people that found a way around it "because they could". The early betas didn't have the check, but you could barely get VMWare installed in the guest, much less run it. It *is* amazing what one can do given the right tools, though...

    There's certainly no reason to do such a thing, but I did see it running... The person who did it has since graduated from college (a couple years ago along with myself), so he no longer has the screenshots up on his campus-connected box. I'll see what I can do about getting him to show that, or have him send me the shots and I'll host them myself...
    --
  • > The backspace key issue really does suck, espcially for those of us with typo prone fingers. There isn't much that can be done about it until IE deigns to correct the problem.

    It works fine with every other plugin I've ever run on IE, from Flash to the Sun Java Plugin to tclets. How is IE the problem?

    --
  • if anyone ever read _A Deepness in the Sky_ by Vernor Vinge, that is exactly what happened. it was easier to kruft on to the existing computer systems than redesign them from scratch (some people tried, they ended up being just as bloated and kludgy) so they ended up having people known as programmer-archeologists, who looked at thousand-year-old code and figured out how to integrate it into their systems.
  • in IE? that's not exactly anywhere...

    IE is just the latest addition to the current set of Inferno platforms.

    at the moment, it runs on:

    • Plan 9 (x86, MIPS, ...)
    • Linux (x86)
    • FreeBSD (x86)
    • Solaris (sparc)
    • Irix (MIPS)
    • Windows 95, 98, 2000, NT, ME (x86)
    • Philips screenphone (StrongARM)
    • Umec ISP2000 (webphone) (StrongARM)
    • Broadcom BCISP3000 (webphone, StrongARM)
    • 3Com Edgeserver Pro (x86)
    • other native PC x86 (e.g. Pix firewall, etc, etc)
    • Compaq Ipaq (ARM)
    • PalmPilot (although we haven't got this port any more)
    • Brightstar IPengine (PowerPC)
    • Teralogic PUMA settop box reference board (PowerPC)
    • Internet Explorer (!)

    ok, so that's not run everywhere, but we're doing our best :-). i've probably forgotten a few.

    and you could take any inferno program and run it without change on any of the above platforms.(memory requirements permitting - keeping a 1MB web image is difficult on a device with only 512K of RAM!)

    ports to Netscape, MacOS X, and others should be forthcoming. happy? :-)

  • at the moment, it runs on:
    • Plan 9 (x86, MIPS, ...)
    • [...]

    oh yes, i forgot:

    • HP-UX!
  • Didn't the Lucent guys try and do an N64 port at one point? I'm serious.
  • More of a dig at Bicrosoft for putting the back button on the Backspace key but this Infero VM doesn't seem to capture the Backspace key so hitting backspace to edit a command line or value takes you back to the previous page.

    I don't know enough about IE plugin design but is it possible to capture the Backspace event?

  • by pb ( 1020 ) on Friday December 15, 2000 @01:32AM (#557345)
    1) Operating Systems provide services to applications.
    2) Inferno is an OS
    3) Limbo apps run on Inferno

    If, indeed, Limbo apps need services from Inferno to run, and the Browser Plug-in can do this as well, then it would follow that....

    4) The web browser plug-in is an OS for the same reasons that Inferno is.

    Apparently those required services are called "Dis". I catch the reference, but it's been a while since I read up on Inferno.

    In any case, it's definitely blurring the line for what an OS is and isn't. It's pretty far away from the hardware, in any case.

    But wasn't that what people were predicting? Wasn't that why Microsoft was afraid of Netscape, and then Java? "The browser is the OS"?

    That's right, folks. It's not just emacs anymore.
    ---
    pb Reply or e-mail; don't vaguely moderate [ncsu.edu].
  • by DrWiggy ( 143807 ) on Friday December 15, 2000 @01:39AM (#557347)
    This looks to me as though it attempts to be a solution to a problem that hasn't really been defined yet. Java, Internet C, Inferno, whatever, they are all trying to address the same problem of portable code that is quick to write that can be embedded onto a user's desktop without an installation routine.

    The concept is pretty powerful, but nobody has actually turned around and asked why we would want to do this. In fact, nobody has really defined what it is we want to do. Because of that, we end up with a mish-mash of solutions, none of which quite hit the spot. At the moment Java is taking the lead because it has the largest user and developer base out of all of them. But I'm sat here, still thinking to myself whatever happened to "push" technology that was being touted 4 or 5 years ago?

    I can see the "point" to Inferno, as I can see the point to many projects like it, however I just don't think it will succeed. Looking at the page, it appears to be designed to handle embedded systems programs in a distributed manner. I'm kind of curious as to why I would want to do this in a browser. Nice idea, but as many people have pointed out, wrong application of the priniciple IMHO.
  • After reading the information on the plugin, I fail to see how this is an OS in a browser.

    The plugin allows you to run applications written in a specific language(Limbo) for the Inferno OS on your browser but isn't an OS in your browser from what I can see.

    depends what you want to call an OS! of course, from the host OS point of view, it's just another user-level program (or plug-in, for IE), but...

    the environment provided to programs running inside Inferno is indistinguishable from the environment that they'd see if Inferno was running as a genuine OS on bare hardware (as it does, on several architectures, in as little as 512K of RAM).

    moreover, at the OS source code level, the great majority of the code is identical from platform to platform (no ifdefs - this is genuinely portable C written by gurus of the language)

    so, given that programs inside it can't tell the difference, i'd say there was a very strong case for saying it's an OS inside a browser. (even if the entire OS is booted just to run one program - boot time in 0.5 seconds, not too bad...)


  • At the moment Java is taking the lead because it has the largest user and developer base out of all of them. But I'm sat here, still thinking to myself whatever happened to "push" technology that was being touted 4 or 5 years ago?

    The difference between Java and Push was that Push was complete hype and never actually materialised. Back at that time, when everyone was saying "Oh, push technology to your browser, personalised content, blah", I had an interview with a niche publishing company, and the chick who was interviewing me asked what I thought about Push technology and (even though it was obvious that she thought it was going to be the next big thing) I told her that it was a big load of hype and there was already a very nice and fully functional push technology that had been around for years, called "e-mail".

    Needless to say I didn't get the job.

    But, compare the non-materialisation of Push with the success that Java has had. It's becoming one of the main web application platforms/environments. Put it this way, back when I met you off the train to introduce you, yadda yadda yadda (remember the red jacket?:), if JSP and Servlets were around, you'd have been writing Java instead of Cold Fusion code for that thing you did.

    Java's going to be around for a while, because people are currently investing a lot of money in systems based on it.

    If I were a programmer, and I had to choose a language to specialise in, I'd choose Java.


    D.

  • No offense, but why is it that this sort of obvious joke is modded up the highest, while all the serious discussion is squished downwards.
  • Oh I get it. You get modded +3 automatically when you write something against MS.
  • by q000921 ( 235076 ) on Friday December 15, 2000 @10:26AM (#557360)
    Yes, the Bell Labs folks write nice, clean, small code, and Inferno and Plan9 are powerful and well-designed systems. But there is no free lunch. The original Java VM was pretty small and light, too. Today's Java runtimes, however, are big and complex because people wanted them to do a lot.

    Java itself offers several levels of tradeoff between functionality and size. To me, the most logical choice for a browser plugin wouldn't be an entirely new language and runtime, something that requires a lot of retraining and retooling, it would be a version of Personal Java, something that could easily fit into a few hundred kbytes.

  • Here's one example of a valid reason to do this

    Imagine...
    you have just implemented a really cool application for your next generation (Inferno) web phone or PDA and you want your investors, or potential customers to have a look at it.

    How do you go about it? Screen shots? PAH! Put it on your web site and let them play with the real thing. No recompilation is required. The same app runs on your phone, your pda, your fridge, Windows desktop, Linux desktop, Solaris desktop, and now - Internet browser!

    That's pretty damn cool if you ask me.

  • by Chris Locke ( 203530 ) on Friday December 15, 2000 @02:09AM (#557365)
    I did notice some of the Styx functionality has been removed for security

    Yup, I'm working on the security model right now (when I'm not reading /. !!!) Once we're happy with it, an update will be made available which will open up the networking support.

    We have some pretty cool applets available that use the networking. These will be put up on the vita nuova [vitanuova.com] web site, with the plug-in update once the security model is right.

  • You can run Charon (the Inferno web-browser)in the plug-in.
    I've done it!

    There isn't much point until the networking security model is established - the current plug-in has networking disabled until the security model is mature enough to enable it.
    We could enable networking right now, but that would be irresponsible.

    I have a version of the plug-in with networking enabled which Charon runs in without a hitch. Pretty strange using one web browser inside another one!

  • right, it's been there. we had a real OS booting in your browser back in 1997. here's the link: Topsy on MIPS sim in your browser [ee.ethz.ch].

    our approach was different: we put a virtual MIPS R3000 machine on top of the java VM, so it runs any OS that has support for the MIPS.

    George

  • Under Java you have to worry about crud such as what the path separator (/ or \) is on the platform you're running over

    You don't need to *worry* about it. You just need to keep your head in the game and understand that you need to take such things into account or you'll run into trouble (by hard coding such stuff). For this, there are the following fields in java.io.File:

    static String pathSeparator
    The system-dependent path-separator character, represented as a string for convenience.

    static char pathSeparatorChar
    The system-dependent path-separator character.

    static String separator
    The system-dependent default name-separator character, represented as a string for convenience.

    static char separatorChar
    The system-dependent default name-separator character.

  • Several issues arise here:
    Do we need this?
    Well why not? There are hundres of programs doing the same thing around the world. Why not for the internet? Yes, it sounds like the Java virtual machine and nobody is really sure if it adds something new. But the same can be said to hundreds of programs being released around the world.
    The usage.
    It will probably be used for something usefull. People will create powerful applications with it that will increase our experience on the internet. I am sure of it. I just wonder when a program similar to ICQ will be released.
  • you'd have to try extremely hard to write an unportable program.

    Ok. i'm not disagreeing with you there

    i'll bet you most java programs won't cope properly when the path element separator is any possible character. (i remember a system where '.' was the path separator.

    But that is a problem with the program as written, not with the interpreter. Say I had a file called blue/beard.txt (note: not a file called beard.txt in the directory blue). How do I ask Infernal to open it for me? I admit this is a specious argument but it could happen.

    in the inferno way, all you have to do is define a two-way mapping between file names in the host system and file names seen by programs inside inferno. as inferno uses Unicode throughout, you've got enough characters to play with.

    Except as I say, if / is a valid filename character, then you have to mess around with escape characters or map some other character to it (which could be a pain if the / is meaningful

    that's rubbish, i'm afraid. in C, everything is transparent. the path separator is transparent, the endianness of the machine is transparent, in fact almost everything is transparent.

    Dare you assume that I don't need to know the endianness of the machine? A lot of what I do is getting systems to interoperate. Say I have a program, compiled for two different machines. It saves its data in the endianness of the host machine (just does a memory dump or such). Now I want to write a (binary) portable program to run on both machines to interpret these data files. Without knowing the endianness of the machine, I'm stuffed.

    it's possible to write portable programs in ANSI C, if you try hard, but that doesn't mean that C is a particularly portable language.

    For what it is, it doesn't do too bad. Besides, I wasn't saying "If you have transparentness, you have a wonderfully portable language", I was saying that it is an important factor.

    it's not handy for portability, it's handy for porting. programs written under c++ on winnt won't be any more or less portable than programs written under other c++ platforms.

    I meant source code portability, not binary

    in inferno, all programs are portable, even if they're badly written.

    Whether they'll work correctly or not is another matter. Is it not possible to make incorrect assumptions about the virtual hardware (such as whether there is a graphics interface available or not) or is the virtual hardware interface strictly defined?

    Note that I'm not trying to dis Inferno overall, I'm just not sure that the Inferno method of path handling is "correct". Heck, I'd even say that assuming a traversable directory tree is suspect (What a program should really call is system.UserFileInterface and let the underlying system handle it).

    Rich

  • by mantis78 ( 170556 ) on Thursday December 14, 2000 @10:22PM (#557380)
    An OS.
    A browser in an OS.
    An OS in a browser in an OS.
    A browser in an OS in a browser in an OS.
    An OS in a browser in an OS in a browser in an OS.

    How many recursion before we run out of memory and CPU cycles?

    Just wondering.
  • This isn't a virtual machine in the way that Java is. It's the actual Inferno OS, emulated via a plug-in. Any programs that are already written to run on inferno run through this, inlcuing their window manager, Charon browser, etc. That it runs in IE isn't the big deal, but that it's yet another VERY easy way to run this OS and any programs written in Limbo for is. Really neat stuff.
  • eight megs and continuously swapping.
  • Frankly, I think the whole concept sounds pretty cool, whether it's extraneous or not or useful or not. The questions I have would center around whether or not writing this as a plug-in to a browser that works incrementally less well for plain old web browsing (at least I've noticed a marked decrease in IE4->IE5->IE5.5's ability to render regular text and image HTML) is a good idea at all, and have to hope that they have a Netscape and/or Konqueror version soon. Or why this can't also exist outside the browser... Or whether this is Free software, or even open source.
  • What would happen if we told it that it was running inside a web browser?

    Would it go insane with the knowledge that it's just a computer simulation on a computer simulation of a computer? Would it lose all compassion and kill a bunch of processes just for the fun of it, knowing that nothing was "real?"
  • > a javascript enabled web browser

    So I could run a web browser inside IE5 ? If so, will inferno be avalaible as a plugin for that browser ?

    Cheers,

    --fred
  • > How do you go about it?

    With a normal, standard win32 inferno emulator (similar to appletviever). This emulator would execute '.whatever' files, which could be downloaded from the web site in a single click. For the use you describe, having a web browser plugin in is (IMHO) pretty weak.

    But sure, it is cool. Strangely, it make more sense as a mozilla-plugin, as mozilla appliances will probably appear in a not so far future...

    Cheers,

    --fred
  • Well, I've seen VMWare run from within itself - e.g. Linux running in VMWare on NT on VMWare on Linux... as well as NT on NT on NT... theoretically, if you have enough memory and drive space, you could keep doing this.

    I've yet to see anything as complicated as VMWare run on VPC...

    --
  • they've got to glorify one of their worst nightmares from the past, that everything is a file, as if it weren't a horrible mistake.

    it isn't a horrible mistake. it's an extremely well informed design decision.

    There's nothing "universal" about a one-dimensional stream of 8 bit characters

    no? apart from the fact that all computer data can be represented as bits... that sounds fairly universal to me!

    representing resources as files provides an extremely useful abstraction layer and hierarchical naming scheme. in the inferno/plan9 scheme, it also means that resources can be transparently exported through the network (a network being anything that provides a bidirectional stream of bits); no application knowledge or intervention is required.

    it means that some simple tools become useful for an incredible range of tasks. compare to CORBA or Java for example, where you need a specialised piece of code for everything, giving you more bugs, less maintainability and lower productivity.

    BTW, neither plan 9 or inferno have ioctl, one of unix's nastiest system calls.

  • by Anonymous Coward on Thursday December 14, 2000 @10:38PM (#557404)
    hmm, Inferno...so is this telling IE users to go to hell? ;)
  • by Have Blue ( 616 ) on Thursday December 14, 2000 @10:43PM (#557405) Homepage
    OK, so I could run Inferno in IE in Windows in VPC in my Mac?

    But wait, what about OS X? Then I could run Inferno in IE in Windows in VPC in the Classic environment in my Mac.

    I wonder if any of the PC emulators could handle VPC itself. Then you could run Inferno in IE in Windows in Mac in Windows in Mac in Windows in Mac in Windows...
  • by Carnage4Life ( 106069 ) on Thursday December 14, 2000 @10:52PM (#557406) Homepage Journal
    After reading the information on the plugin [vitanuova.com], I fail to see how this is an OS in a browser.

    The plugin allows you to run applications written in a specific language(Limbo) for the Inferno OS on your browser but isn't an OS in your browser from what I can see.

    This is more akin to being able to run Java applets in your browser via the Java Virtual Machine than any OS in the browser crap.

    From the Inferno plugin page
    The Inferno Internet Explorer plug-in allows a Limbo program to run inside a web page when displayed by Microsoft Internet Explorer 4 or 5. The plug-in executes Dis within a sandbox in the Inferno Dis virtual machine which provides the execution environment for all programs running under the Inferno Operating System

    Grabel's Law
  • But that is a problem with the program as written, not with the interpreter. Say I had a file called blue/beard.txt (note: not a file called beard.txt in the directory blue). How do I ask Infernal to open it for me? I admit this is a specious argument but it could happen.

    the system dependent part of the inferno kernel (devfs.c) could map all slashes that it saw when reading the filesystem to unicode character 2215 (division slash) or 2044 (division slash) or even 2298 (circled division slash) if you wanted the distinction to be crystal clear. the translation would work the other way when filenames were presented to the kernel by inferno programs.

    in this way, the whole thing works ok. of course, it's not entirely perfect if the user wants to be able to type in those pathnames, (the name isn't exactly what they would have expected) but using the standard graphical file browser, everything would work just fine.

    the goal of Inferno is to have programs that genuinely run the same in any environment, not to have programs that are kind of chameleon-like, adopting some of the traits of the host environment. this decision is arguable, but it is the only way to get true write once, run anywhere software. you don't true portability? you know where to find Java.

    Dare you assume that I don't need to know the endianness of the machine? A lot of what I do is getting systems to interoperate. Say I have a program, compiled for two different machines. It saves its data in the endianness of the host machine (just does a memory dump or such). Now I want to write a (binary) portable program to run on both machines to interpret these data files. Without knowing the endianness of the machine, I'm stuffed.

    that's not true.
    without knowing the endianness of the data file, you're stuffed. this is a distributed system, remember. filesystems, data, network interfaces, and devices can all be imported an exported completely transparently across machine boundaries. it sounds like you're still living in the old world, where the data on the file system you're accessing is guaranteed to be on the same machine. that's just not true any more (and hasn't been for at least a decade, if truth be told).

    under Inferno, applications are completely unaware of where the files that they're accessing have come from. (and don't forget that device access is also through the "file" namespace). the file i'm accessing might go straight to the local hard disk, or it might have been imported from a mounted connection obtained by using an imported network interface, connected over a USB link to some machine over an ATM link running a Limbo program that's exporting the file.

    the resource deployment can be as simple or as complex as you like, but the applications themselves are blissfully unaware of what might be happening behind the scenes.

    any binary data file worth its salt should either keep the data in a predefined endianness, or declare the endianness in the header. that way, someone on a sparc box will still be able to interpret the data file that you email them from a linux x86 box.

    Whether they'll work correctly or not is another matter. Is it not possible to make incorrect assumptions about the virtual hardware (such as whether there is a graphics interface available or not) or is the virtual hardware interface strictly defined?

    all the hardware device interfaces reside in the namespace, so it's easy to probe to see whether a given device has been provided or not. an incorrect assumption will generate only a "file not found" error.

    if the hardware is found, it will act according to its specifications - device control is all through the file interface. low bandwidth data is generally encoded in that universal, endian-independent format: text.

    so, for instance, the interface to a tv device contains two files /dev/tv and /dev/tvctl. i can execute the shell command:

    echo window 20 20 300 300 > /dev/tvctl

    to set the currently displayed tv image rectangle. a captured tv image can be read in a standard image file format with:

    cp /dev/tv /tmp/image.pic

    it's as simple as that. this interface means that it's possible to (for instance) write a user-level program to simulate a device for which i haven't got the hardware, or to use the namespace access protocol, Styx [vitanuova.com], to import or export the device across the network securely.

    Note that I'm not trying to dis Inferno overall, I'm just not sure that the Inferno method of path handling is "correct". Heck, I'd even say that assuming a traversable directory tree is suspect (What a program should really call is system.UserFileInterface and let the underlying system handle it).

    if the underlying system doesn't provide a hierarchical filesystem, that's not a problem. the person porting to that system needs to make a decision how to map that filesystem into the inferno model. the "files" that are accessed under inferno aren't really "files" as most people think of them; it might be helpful to think of them as "hierarchical resources" which are accessed in exactly the same way as files.

    a "file" under inferno requires no physical resources; it is merely an interface to some underlying software, whether that's a device driver, interpreting writes as commands, or a disk filesystem, storing the data in each write to disk, as you'd expect of a normal file.

    you could also think of the inferno namespace as a kind of hierarchical object space, in which each file provides a common set of methods (open, read, write, etc) which can be interpreted as appropriate for the object. looked at that way, directory reading (inspecting metadata) becomes a kind of "reflection", exposing capabilities of the system to an inquisitive program, which can then use them as appropriate.

    for instance i could write a little shell script:

    if {ftest -f /dev/tv} {
    echo channel 3 > /dev/tvctl
    echo window 0 0 40 40 > /dev/tvctl
    }

    this enquires to see if there is a tv device available, and if so sets a particular channel and creates a small window for it at the top left of the screen. all without using any commands written specifically for the device.

    that's true power.

  • The first one will work in Inferno on ALL platforms

    Heck, it's just a matter of abstraction. If you want to be able to use / then subclass the File object or something. And you know, there may be a filesystem where / is a valid part of a filename, then where is your Inferno? The only safe way for platform portability is to have everything transparent.

    Interestingly, using c++ on winnt, you can use either the '/' or '\' as a path separator which is quite handy for portability.

    Rich

  • So, what you have just said is that you DO have to worry about it!

    No, I said that you need to take your head out of your ass and actually think for a minute. And you don't need to go:

    path = pathSeparator + "usr" + pathSeparator + "me" + pathSeparator + "myfile";

    ..like you said. You can for instance still go:

    path = "/usr/me/myfile";

    .. and then feed it through a method that makes it correct for each system; like so:

    path = clPath(path);

    You need to actually THINK. I know it can be hard, but try. You don't need to write "pathSeparator" 100 times and bang your head into the wall crying about how hard it is and how you have to worry about various platforms being a little different. You can also extend various java.io classes so that they will do the path separator conversion automatically. It would probably take about an hour to create a package like that if you really had a big problem with this.. Of course, it's idiotic to do something like: path = "/usr/me/myfile"; in the first place. A much better way is to define a base path (or several), which is read from a config file and then you just add file names to that base path. You don't even need to THINK about path's in your app.

  • when I can use it to connect to a database and display the results. Until then it is just eye candy.
  • It claims (without proof) to be a lot faster than Java: 1.5 - 3 times slower than C (according to this [www.dlc.fi] document, the source of much of the following information).

    It's all tooled up with both the bad bways of Garbage Collection. Yes, let's hear it, folks, for Mark and Sweep and his old sparring partner Reference Counting. Still doesn't stop it churning perceptibly in the ticker applet. (They claim RT scheduling but that's no good when you're sitting inside IE with JavaScript turned on in a force 9 pr0n gale.) The polyhedra [vitanuova.com] demo is fast and smoothe and reasonably svelte.

    'array of array of vector of arse'. Gak! Neither I nor the compiler are amused that dcl is now compulsory.

    It can run Limbo source or binaries, not just bytecode.

    Dennis Ritchie encourages [umd.edu] the development of a C compiler, and maybe the one bundled with Plan 9 has a few tricks up its sleeve. With a gcj [redhat.com]-style Dis backend you could install signed X and Gnome/GTK/KDE/Qt (or the unbelievably cool Ion [students.tut.fi] Window Manager) applets to replace the embarrassingly retro [vitanuova.com] interface. How about writing DHTML in Perl or Python instead of JavaScript? Can you say .GNET?

    The site's 3 years old and the guy may be talking out of his arse. I'll give him this, though: he sure knows how to diss up C++ with a zeal for hellfire and damnation truly worthy of his dear OS's name:

    C++ objects and their complexities are happily left out. There is no polymorphism or tricky exception handling (the difficulty of understanding exception handling caused the

    It's not every day you download and install an operating system in a couple of seconds (ADSL). Didn't even have to powercycle IE let alone reboot its other OS plugin, Windows. If they don't open the source I'm sure there's someone somewhere who's looking at his/her 1 floppy Linux distro and hatching a cunning plan. What a shame Theo de Raadt's so down on a pocket OpenBSD (reminds me of Guido's antipathy [python.org] to a Python shared object [equi4.com], Linus's allergy [linuxcare.com] to a kernel debugger). That fireproof sonofabitch would be a perfect fit for plug-in World Domination.

According to the latest official figures, 43% of all statistics are totally worthless.

Working...