Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Technology

Universal Emulators Return 546

webmilhouse writes "Wired has an article about Transitive Corporation that claims their software "allows any software application binary to run on any processor/operating system" without any performance hit. That would allow any program written for Windows to run on Linux or Mac, and vice-versa, which Wired likened to digital alchemy. The Transitive software is supposed to be released today. What do you think, vaporware or miracle?"
This discussion has been archived. No new comments can be posted.

Universal Emulators Return

Comments Filter:
  • Like many hyped up concepts, I don't think this product is really all they're making it out to be. At the same time, however, I don't think it's vapor. Instead, it's probably something in between that performs as advertised, but mitigating factors (300MHz CPU?) result in it not being everything everyone expected.
  • Not vapor (Score:4, Insightful)

    by BoldAC ( 735721 ) on Monday September 13, 2004 @10:02AM (#10235042)
    If it's going to be released today, I am assuming it is not vapor...

  • by Anonymous Coward on Monday September 13, 2004 @10:02AM (#10235045)
    when I see it.
  • Games Games Games (Score:5, Insightful)

    by Gr8Apes ( 679165 ) on Monday September 13, 2004 @10:02AM (#10235054)
    If true - we'd have any game worth playing on Linux or Macs, and life would be good, most likely, too good to be true.... :(
  • by Anonymous Coward on Monday September 13, 2004 @10:03AM (#10235062)
    Yeah right, that's not possible, just translating to another set of instructions takes some of the cpu's resources... that alone would debunk the claim of no performance hit...
  • Any program? (Score:5, Insightful)

    by vistic ( 556838 ) on Monday September 13, 2004 @10:04AM (#10235077)
    Wouldn't you still need a bunch of supporting files and APIs to run a Mac program on Windows, vice versa, and for other operating systems? Programs make specific calls to the operating system, like windowing toolkits... this emulator must be huge to ensure everything works and they must have done massive successful reverse engineering of closed source files in the Windows architecture.
  • Taos (Score:4, Insightful)

    by mirko ( 198274 ) on Monday September 13, 2004 @10:07AM (#10235102) Journal
    A few years ago, while I was still primarily using my Acorn ARM-based RiscPC, I remember being in contact with TAOS people, they were making an heterogeneous processor operating system on which they claimed they emulated a virtual processor on which the whole environment would run, regardless of the hardware.
    So, this idea reminds me of this project...
    It could still be possible, we've got Java classes instantiated and running on many architectures, after all...
  • by theluckyleper ( 758120 ) on Monday September 13, 2004 @10:07AM (#10235108) Homepage
    If there's no performance hit, there must not be true "emulation" going on... it would be impossible to emulate another OS and architecture without a few extra cycles!

    The only way I can imagine this happening is if the software reads your executable and then does a one-time translation into a native executable. That way the native executable wouldn't be emulating anything, it would be the real deal. But... the complexity of such software would be staggering.

    Here's hoping it works!
  • by sketerpot ( 454020 ) * <sketerpot&gmail,com> on Monday September 13, 2004 @10:08AM (#10235115)
    How about, "no performance hit on the order of what you get with CPU emulation? CPUs are generally fast enough that you can accept a relatively small performance hit on all but the most demanding programs.
  • by Gherald ( 682277 ) on Monday September 13, 2004 @10:09AM (#10235124) Journal
    "Emulating" architectures and "Emulating" native OS libraries/APIs are very different things.

    Is Transitive claiming to do BOT universally!? If so I am very skeptical, because even doing 1 of the 2 would be impressive.
  • by Libertarian_Geek ( 691416 ) on Monday September 13, 2004 @10:09AM (#10235137)
    Sounds like an emulator equivalent of a perpetual motion machine. I can't say if this is real or vapor for certain, but it sure sets off my BS alarm.
  • I doubt it. (Score:1, Insightful)

    by Anonymous Coward on Monday September 13, 2004 @10:09AM (#10235140)
    Will it run software written for my Wang 2200? Will it run VMS? No. Please do not make such broad claims if you can't even begin to back them up.
  • by Cus ( 700562 ) on Monday September 13, 2004 @10:10AM (#10235146)
    a Linux version of Quake III -- running on an Apple PowerBook
    ...and...
    Windows laptop running the Gimp image editor for Linux

    Funny how those applications are already available for those platforms, hmmm? I'd like to have heard about something being shown that isn't already available natively.
  • by Firehawke ( 50498 ) on Monday September 13, 2004 @10:10AM (#10235147) Journal
    Unless it's a static or dynamic recompilation technique-- it could translate before execution, dumping a new binary which it executes. You'd have a much longer start time, obviously, but it'd run at the full speed possible. Assuming, of course, that your recompilation techniques are 100% perfect.

    Doubtful, but possible.
  • Game piracy? (Score:2, Insightful)

    by tepples ( 727027 ) <tepples.gmail@com> on Monday September 13, 2004 @10:13AM (#10235194) Homepage Journal

    From the article:

    "We try and avoid the word," said Wiederhold. "When people think of emulators they think of things that are very slow."

    When some people think of "emulators", they also tend to think of the arcade and console game ROM piracy scene that goes along with it. The company may have dodged more bullets than it's letting on to us by not using that word.

  • Re:Any program? (Score:5, Insightful)

    by little_blaine ( 126227 ) on Monday September 13, 2004 @10:15AM (#10235212)
    Well said. I can see a program that does on-the-fly translation of assembly code, but the first time you try to access a windows .dll on a mac, or a linux .so on windows (for example), or make any kind of system call on a foreign platform, you will hit problems.

    Now here's an interesting thought: MacOS X on x86. Or windows on PowerPC.
  • Re:Vaporware (Score:1, Insightful)

    by Anonymous Coward on Monday September 13, 2004 @10:17AM (#10235240)
    No, but you might be able to get it to run under Linux ;)
  • by Cylix ( 55374 ) * on Monday September 13, 2004 @10:18AM (#10235253) Homepage Journal
    Danger Will Robinson! Danger!

    Robby seems to think these claims are a bit outrageous.

    Just think of how much work would be involved in something like this. Maybe it's a compiler and their own widget set. Emulate APIs? Not quite an emulator really. Perhaps its a java emulator? Who knows what twist is really there, but we know from past experience this is tricky stuff.

    Boisterous claims are often given by boisterous men... neither of which have any solid value.
  • by visionsofmcskill ( 556169 ) <vision AT getmp DOT com> on Monday September 13, 2004 @10:18AM (#10235258) Homepage Journal
    Bottom line, a porcessor essentialy comes down to several basic comparisons and read/write add/subtract operations.

    so it is technicaly feasible that if you map out a fair amount of the pipelines of most of the popular chip sets, you could technicaly have a command chain to allow binaries the same calls through a sudo-emulation layer of the software.

    fundamentaly possible, and even do-able.... but without a performance hit? no way. Each processor is geared towards a particular way of solving a physcial and mathmatical set of problems... some processors are designed for massive loads of database driven calculations (XEONs)... some for multimedia (G5)... some for science (PPC, Sparc?)... some for power savings (ARM)....

    depedning on which archetecture your using, the performance will be greatly hindered if your trying to do something designed for a radicaly different chip. Such as trying to run some expansive G5 optimizied photoshop plug on a ARM chip.

    "no performance hit" = total bullshit

  • Clearly vaporware (Score:5, Insightful)

    by hopethishelps ( 782331 ) on Monday September 13, 2004 @10:19AM (#10235264)
    without any performance hit. That would allow any program written for Windows to run on Linux or Mac, and vice-versa,... What do you think, vaporware or miracle?

    This is vaporware. What they're claiming - "without any performance hit" - is impossible. Accomplishing the rest of what they claim is not impossible, but it's very difficult, and since the "without any performance hit" claim establishes conclusively that these people are bullshitters, I don't believe they can even come close to doing it.

  • by Maffy ( 806058 ) on Monday September 13, 2004 @10:20AM (#10235277)
    Does anyone what the legal status of running this operation over commercial software would be?

    The reason you need a licence to use software is because your CPU makes a copy of the program (in RAM) and this would otherwise violate the programmer's copyright. I believe that the licensing terms are generally pretty strict, e.g. one copy, to RAM only. Therefore, I'm not sure you'd be permitted to take a copy of their program, mangle it and dump it back out to disk.

    Does anyone know of any reason why this would be permitted, or how people intend to get round this problem?

    I appear to have been reading too much groklaw.
  • huh? 24hrs early (Score:2, Insightful)

    by SubtleNuance ( 184325 ) on Monday September 13, 2004 @10:28AM (#10235364) Journal
    If The Transitive software is supposed to be released today

    Why not ask "What do you think, vaporware or miracle?"

    tomorrow?

    Why speculate when you can... i dunno, wait 24hrs and inform yourself...
  • by gfxguy ( 98788 ) on Monday September 13, 2004 @10:30AM (#10235387)
    Surely you can't read into "no performance penalties" not to mean "on like hardware".

  • Re:Remember... (Score:5, Insightful)

    by Arker ( 91948 ) on Monday September 13, 2004 @10:37AM (#10235461) Homepage

    Show me Windows Quake 3 running on a Powerbook, now that would be something a little more impressive.

    Actually, not. Emulating x86 on a PPC chip is easy.

    What would be truly impressive would be running, say, Wolfenstein3d Mac on an x86 box, with reasonable speed. That would be far more difficult.

    Reading the article, it sounds like a lot of hype, and I suspect the product behind it, even if it's pretty well done, will never live up to the hype.

  • by photon317 ( 208409 ) on Monday September 13, 2004 @10:43AM (#10235531)

    Actually, I could conceive a brilliant software engineer coming up with a universal translation mechanism that turns x86 assembler into functionally equivalent PowerPC assembler, or vice-versa, or to other platforms. I believe IBM had been funding research in thsi area for quite some years now.

    What sets off the BS detector for me is the APIs. They consistently state that they can do this for any OS. You have to do API translation, and you'd have to do that per OS, and it's a staggering volume of work to get all the APIs translated (think Wine project, just trying to do windows->linux api on a single shared hardware platform). When my linux binary calls any given kernel, C library, or even other common library (readline?, pthreads?, opengl?, etc..), those calls all have to be translated to equivalent MacOS or Windows API calls.
  • by wertarbyte ( 811674 ) on Monday September 13, 2004 @10:49AM (#10235581) Homepage

    According to TFA, this is a pre-compiler/translator, not an emulator. i.e. The entire program is recompiled for another platform using only the binary data as the source. This is theoretically possible and has been attempted many times, but such compilers often trip over levels of indirection that programmers add.

    So it's more or less a cross-decompiler with a compiler attached. This could perhaps convert from one CPU to another, but what about system libraries? This part is probably the most difficult, considering how much effort is put into the wine [winehq.org] project.
  • Re:Easy refutation (Score:3, Insightful)

    by jjoyce ( 4103 ) on Monday September 13, 2004 @10:54AM (#10235644)
    When you speak of the computational complexity of an algorithm, you must define what constitutes a computational step. The total cost of the algorithm is then based on these steps. For example, when people say that binary search runs in O(log n) time, they mean that it takes a logarithmic number of steps (where n is the number of possible values to search through) and the computational step is a comparison of two values. What you are doing is saying that the computational step is the movement of tape, which changes the model. That does not prove that binary search's running time is no longer a logarithmic number of comparisons.
  • by Anonymous Coward on Monday September 13, 2004 @10:58AM (#10235692)
    vapor is evaporated already

    did you fail the earth science regents exam?
  • by AstroDrabb ( 534369 ) on Monday September 13, 2004 @11:26AM (#10235985)
    I am sure they didn't mean it could run your application at the same speed on _slower_ hardware. Anyone with more then 3 brain cells could figure that out. Basically they are claiming on similar hardware you should not notice a speed loss.
  • by Firehawke ( 50498 ) on Monday September 13, 2004 @11:26AM (#10235993) Journal
    Entirely plausible. They'd probably end up using some sort of caching of binary translations to prevent there from being the same startup delay every time you start up your application. Applications where you have an identical interface (eg OpenGL) would see no performance hit on the graphics side.

    Emulation programmers have been playing with dynarec cores for years now, but compatibility at a low level tends to suffer. Some software is expecting scanline-perfection because they're talking right to the hardware and are tuned to that performance. You'll notice the ABI/API compatibility only talks about various Unix variants and mainframes. So, dynarec PROBABLY won't have to worry about that so much in this case.

    Kinda disappointing. I'd like to see what wrangling they could do with MacOS and Windows. Those would be much harder to pull off.

  • RTFA?! (Score:2, Insightful)

    by ElDuderino44137 ( 660751 ) on Monday September 13, 2004 @11:26AM (#10235997)
    "That would allow any program written for Windows to run on Linux or Mac, and vice-versa ..."

    Did the person who posted the article read it?

    As far as I can tell ... It speaks nothing of running your Wondows software under your Linux OS. It says that you could run your Windows OS on any "chip".

    I think the real problem is the confusion as to what the word "platform" means. It doesn't just refer to Windows vs. Linux vs. MacOS. It could refer to one compiler vs. another compiler. It could refer to one chip vs. another (as in this case). For example: the PowerPC chip vs. the Intel chip.

    The article specificly talks about the xBox issue this software could solve:

    "For example, Wiederhold said QuickTransit will allow the next-generation Xbox (which will have a Mac-like PowerPC chip) to run first-generation Xbox software (which was written for an Intel chip)."

    Cheers,
    --The Dude

  • by Anonymous Coward on Monday September 13, 2004 @11:36AM (#10236098)
    > Surely you can't read into "no performance penalties" not to mean "on like
    > hardware".

    That's exactly what the guy you're replying to is suggesting. Where does the software house claim than they can enable a 300mhz pc to have more clock cycles in software? Is anyone claiming that? Bizarre. I guess that's Slashdot for you.
  • READ THE ARTICE (Score:3, Insightful)

    by Conor Turton ( 639827 ) on Monday September 13, 2004 @11:48AM (#10236203)
    Nowhere does it say there isn't a performance hit. It merely says that because of the speed of current hardware, only real power users are likely to notice any difference.

    "QuickTransit fully supports accelerated 3-D graphics and about 80 percent computational performance on the main processor."

  • by gl4ss ( 559668 ) on Monday September 13, 2004 @11:49AM (#10236220) Homepage Journal
    it's not the machine code that's the trouble with playing windows games on x86 linux machines, rather the problem lies in the supporting libraries(d3d & others).

  • by Anonymous Coward on Monday September 13, 2004 @01:43PM (#10237479)
    I beg to differ. In Independence Day, they DID have experience with the alien computer, as they had captured one of the alien ships...the one they used to upload the virus.
  • by Anonymous Coward on Monday September 13, 2004 @02:36PM (#10238239)
    I wouldnt be at all surprised if this was just a deliberate attempt to create media hype surrounding the company in order to inflate its value prior to a sell off or something... I get the feeling that when the cloud of vapour finally lifts, a lot of people will be disappointed, and a couple of people will be much richer.
  • Re:Any program? (Score:4, Insightful)

    by Chris Burke ( 6130 ) on Monday September 13, 2004 @04:20PM (#10239332) Homepage
    Every x86 processor since the Pentium Pro (possibly the AMD K5, not sure, but regardless...) has had x86 decoders that translate the x86 CISC instructions into much simpler RISC-style micro-ops that the rest of the machine deals with. The typical case is that the decoders can directly translate simple instructions (e.g. add eax, [rsp + 10] -> a load micro-op followed by an add micro-op), and refer to a microcode ROM to get the sequence of RISC ops for more complicated instructions like FXRSTOR or INT.

    In the case of the Pentium 4, the x86 decoders only operate on instruction data coming from the L2. The trace cache on the P4 caches RISCy micro-ops, which is the main benefit of the trace cache on the P4 -- skipping the relatively lengthy decode of x86 instructions.

    So from a micro-architecture standpoint there is very little difference between CISC and RISC, since you just translate CISC->RISC. x86 still manages to be a big PITA because of weird things like shifts by zero which don't effect the flags.

    CISC vs RISC is basically a done deal, with RISC "winning" along with it essentially not mattering anymore.
  • by null etc. ( 524767 ) on Monday September 13, 2004 @07:55PM (#10241645)
    Okay, I doubt anyone will read this post, as it's late in the game, but here's some questions that came to mind when I analyzed the text from Transitive's web site. In all examples I will use Windows as the native operating system and Linux as the foreign application, unless otherwise noted.

    Comment 1.

    When a foreign application is started, the operating system recognizes that the application needs translation and automatically starts Dynamite.

    How does the operating system recognize that the application needs translation? I see three possibilities.

    The first possibility is that the native operating system lets Transitive execute all applications, and Transitive decides whether to translate an application, or let the native operating system run the application unaltered. Integrating this functionality (properly) into an operating system would be extremely diffult, let alone multiple operating systems.

    The second possibility is that the native operating system attempts to execute all programs, and only invokes Transitive if an unexpected application type is encountered. Due to the way that Windows only executes files according to file associations (".exe" = DOS/Windows executable, ".com" = micro-executable, ".bat" = batch file), this seems very unlikely, as Windows wouldn't even know how to execute "gimp" because it lacks an extension such as "gimp.exe".

    Even if one was to rename "gimp" to "gimp.exe", Windows would attempt to load the "Windows Program Header" for the file, which would be invalid because it's a Linux application. Windows would then generate an error. Of course, Transitive could overwrite certain error handlers within the operating system to catch this kind of error, and then analyze the file using a "magic number" command to determine which operating system and what file type was under scrutiny. But then Transitive would have to overwrite these certain error handlers within all operating systems, a very unlikely proposition.

    The third possibility is preconfigured "virtualization sandboxes". Virtualization software like VMWare assumes that for a virtualized system, all files and executables within that virtualized system will be executed according to the rules of that virtualized system. Ergo, if you're running a virtualized Linux system, any executable will be executed as a Linux application. Does Transitive require one to preconfigure foreign applications as existing within a predefined virtualized system? Either way, there's alot more to this than simply the "operating system recognizes that the application needs translation."

    Comment 2.

    Depending on the requirements for the integration, Dynamite can be configured with a wide range of options, including the ability to build "bridges" between translated code and code running native on the target platform.

    This sounds like a fairly intensive process, given the number of operating systems and APIs out there.

    Comment 3.

    This feature has been used, for example, to allow translated applications to call a native accelerated graphics library for the graphics chipset in the target platform, delivering higher quality and speed than other solutions.

    Does this mean that Transitive will take a Windows DirectX application and translate it to Linux OpenGL? Or does Transitive have it's own API, which is compatible with all video card drivers out there? For either claim, that's pretty impressive; a technology worth being bought out by nVidia or ATI. Considering the breadth and depth of all graphics libraries and versions available for numerous operating systems, that's phenomenally impressive.

    Comment 4.

    The front-end decoder reads blocks of instructions from the foreign application's binary and decodes them into an intermediate representation. The intermediate representation allows Dynamite to understand the highe

  • by LiquidCoooled ( 634315 ) on Monday September 13, 2004 @08:41PM (#10242044) Homepage Journal
    I have a sneaky suspision that this software relies on caching the local translated version of every known executable file.

    The engine will likely allow template driven translations, and x86 linux to x86 windows could be byte for byte identical.

    So it takes a moment to scan a file. We all run virus checkers in Windows every day, they scan our files and we dont notice.

    THIS is the kind of comparisons it could feasibly say is 100%. Clicking on the Doom3 windows exe in linux loads up the preconverted translated file.

    Now, different processor configs do work differently, and from the sounds of things they can't have done much work there. I think shying away from it by using Windows->Linux as their "test" operating system purely because they are the simplest.

    This is like the Macintosh emulators that became available for the amiga. Both machines ran on 680x0 processors, and emulating a same period apple mac was a lot more usable than emulating an 8086.

"May your future be limited only by your dreams." -- Christa McAuliffe

Working...