Slashdot Mirror


Universal Emulators Return

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?"

35 of 546 comments (clear)

  1. Re:Any program? by BobTheAtheist · · Score: 2, Informative

    Run the whole OS... The device drivers will just work by magic

    --
    -- You're too stupid to be an atheist.
  2. Re:no performance hit? by AKAImBatman · · Score: 5, Informative

    that's not possible, just translating to another set of instructions takes some of the cpu's resources

    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.

    For example, a programmer might place the video address in a variable, then reference that for screen paints. Such a trick would be impossible to detect at compile time, and would only be properly handled by a true emulator.

  3. Re:ooooooh, yawn! by swillden · · Score: 4, Informative

    When I can run Office 2003 natively inside Linux then we can talk.

    Define 'natively'. Because Crossover Office can run Office 2003 on Linux just fine, today.

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  4. Did anyone note... by cavac · · Score: 4, Informative

    ...that they seemed to run only processor-native code. Even Linux-Quake: Linux IS ported to the Mac ;-)

    And the example of the XBox: Xbox is essentially a PC anyway.

    This looks more like the technique the WINE project is using: Run a program on it's native hardware platform on another OS by making library- and systemcall-wrappers.

    If that is indeed the case, "translating the code page-wise" can be translated to "re-linking dynamically loadable code page-wise".

    Just my 2 cents

    --
    Look, this thing is totally safe! Built it myself, you know. You just press that button like this and then turn that lev
  5. Re:ooooooh, yawn! by isolation · · Score: 3, Informative

    If you can get it to install it will run but I dont know how well. At this time we dont support Office 2003 but we are working on it.

    --
    Free Unix? Free Windows. http://www.reactos.com
  6. not impossible, but we'll see. by pb · · Score: 4, Informative

    The marketing jargon goes a bit over the top, but it isn't impossible to translate code for one ISA to an intermediate form, optimize it, and then generate code for another ISA. I don't know that it's revolutionary either. Note that LLVM takes a similar approach, and has a very simple intermediate form. I hear someone on their team is working on a PPC front-end, and as for language front-ends, Java and C# is in the works.

    Getting back to Transitives, in July 2001, they claimed to already be doing x86->MIPS translation, which bodes well for x86->PPC. However, doing things efficiently the other way around is tougher. And of course you need to support or translate a ton of the native OS API calls etc. It'll be interesting to see for Windows on Linux (for example) if they require a copy of Windows to run the binaries.

    --
    pb Reply or e-mail; don't vaguely moderate.
  7. Qemu by ssewell · · Score: 2, Informative

    http://fabrice.bellard.free.fr/qemu/ Qemu needs work, but already has several different host-target CPU combinations complete (in the ARM x86 and PPC areas anyway).

    http://pearpc.sourceforge.net/ PearPC fills in the gaps on PPC emulation where Qemu is lacking. (I run OS X 10.2 on my PC at work.)

  8. Remember FX!32 ? by Anonymous Coward · · Score: 1, Informative

    DEC had several compilers that translate from executable to executable format. This trick was
    done compiling Vax images on Alpha, and I believe it also was done for Solaris Sparc images on Alpha and
    x86 images on Alpha, and has now been done at least for alpha images on IA64 (Itanium). Performance achieved there could be as high as 80% where the self-tuning aspects of the technology were used. (That is, every time you ran the image, more stuff got identified as code and compiled.) At least for Windows, though, it would be necessary to have emulations for all the NT functions, which led to a rat race trying to chase all the new DLL functions down, which would change frequently, with the apparent aim of keeping anyone from building an emulation of everything. The FX!32 product did pretty well even so and allowed many x86 binaries to be run on Alpha. Seems to me that the claimed performance may be a tad optimistic (80%) unless many tuning runs are done, but still quite usable. But I would be surprised to see more than a small subset of OSs supported, much as it would be pleasant to be able to run Alpha VMS on an Athlon 64 this way.

  9. Answer from Transitive's Website by mofochickamo · · Score: 5, Informative
    Transitive explains the architechure of their system here. Basically, to support APIs on different operating systems they have what is called an Operating System Mapper. They don't claim that it maps Mac to Windows or Linux to Windows. Basically, it maps two like systems together (like Solaris to AIX or HPUX to Linux). If there is no straightforward mapping then the customer defines the map.

    After reading this, the term Universal Emulator doesn't seem to apply. Here is the text from Transitive's Website:

    Operating System Mapper. Dynamite supports operating system mapping between any two Unix/Linux-like operating systems, as well as mapping between mainframe and any Unix/Linux-like operating systems. Where similar operating system calls exist between the source and destination operating system, Dynamite maps calls between the two. Where an equivalent operating system call doesn't exist in the target environment, Dynamite maps to similar calls per the customer's guidance. Dynamite also monitors certain system calls, for example thread scheduling and memory mapping calls, to ensure that it can reproduce the complete behaviour of the program it is executing.
    --
    Honk if you're horny.
  10. Re:OT: where is that from? by Matthaeus · · Score: 3, Informative

    From the forward to Hawking's "A Brief History of Time."

  11. Enderle? Media Whore. by sparkhead · · Score: 4, Informative

    "Analyst Rob Enderle of the Enderle Group said Transitive benefits from the fact that most modern machines are fast enough to emulate each other without much affecting performance."

    All I needed to know. This guy will say anything and if he appears in your press release (yeah, it's an "article" but certainly the material is in a press release), chances are you're straining for credible commentary.

  12. Complete Text of Transitive's Architecure by mofochickamo · · Score: 3, Informative

    Dynamite allows software that has been compiled for one processor/operating system to be run on another processor/operating system without any source code or binary changes. To do this, Dynamite provides a hardware virtualization technology that consists of four key components. First, an integration FUSE allows Dynamite to be easily integrated into the target system. Second, a dynamic binary translator tackles the challenge of moving from one instruction set architecture to another. Third, an operating system mapper translates operating system calls from the source system to the target system in situations where the source and target operating systems are different. Finally, a graphics subsystem mapper translates graphics system calls from the source to the target system in situations where the source and target graphics systems are different.

    Integration FUSE. Dynamite is integrated with the operating system of the target system and runs like any other application. Unlike static translators that translate an applications binary once before run time, Dynamite translates instructions and operating system calls while an application is running. When a foreign application is started, the operating system recognizes that the application needs translation and automatically starts Dynamite. 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 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. Integration options also provide for different optimization schedules and the ability to reconfigure the use of the translation code cache to better match performance to customer needs.

    Dynamic Binary Translation. The dynamic binary translator in Dynamite is a breakthrough technology that uses a modular architecture consisting of three key components. The front-end decoder reads blocks of instructions from the foreign applications binary and decodes them into an intermediate representation. The intermediate representation allows Dynamite to understand the higher-level semantics and intent of the code.

    The optimizing kernel reads the intermediate representation and optimizes the code. At first, simple optimizations are performed. In most applications, however, a 90/10 rules holds where 10% of the code is executed 90% of the time. The optimizing kernel looks for blocks of code that are executed often, spends increasing amounts of time improving the optimization of this code, and then stores this optimized code in memory. Each time a frequently used block of code needs to be executed, the highly optimized code stored in memory is used instead of optimizing that block of code again. Because the blocks of code that are executed change frequently, the optimizing kernel flushes old optimized blocks and generates new ones. The optimizing kernel produces superior code optimization compared to static binary translators or compilers. It optimizes code based on how an individual user is using that application and does not need to optimize code for the general case.

    The back-end code generator outputs code for the target processor

    --
    Honk if you're horny.
  13. Re:no performance hit? by khrtt · · Score: 2, Informative

    For example, a programmer might place the video address in a variable, then reference that for screen paints.

    I don't see how that could be a problem. There is a serious problem with self-modifying code and code generated on-the-fly. Basically, every time anything crosses the data/code boundary, it would have to be translated. A simple translator would only handle the data/code boundary that the program crosses when it's first loaded into memory from an executible file.

    Then, there are thunks (in Win16/Win32 programming; small pieces of code generated dynamically to help call Win16 libraries from Win32 code and vice-versa). Then there are compressed executables. Encrypted executables for copy-protected games. Dynamically generated code for inner loops for high-performance computations, maybe. Code generated by applications that compile on-the-fly, like your average LISP system., or JVM. A binary translator would not be able to handle any of those, unless you try to detect a jump to data somehow, which may be prohibitively expensive on a PowerPC. Is it?

  14. Re:Remember... by Erwos · · Score: 4, Informative

    Do a Google search for PearPC. People have most certainly gotten MacOS X running on their x86 boxes.

    -Erwos

    --
    Plausible conjecture should not be misrepresented as proof positive.
  15. Re:Remember... by aldousd666 · · Score: 3, Informative
    that's not done by translating stuff, that's actually emulating another processor... Vitrual PC is not the same thing here. Same goes for vmware.

    This product claims to translate the code block by block into native code, thusly not emulating another processor per se. Metaphysically we could say that the two are equivelent, but it's not built around the fake processor as a unit like the other popular emulators are.

    --
    Speak for yourself.
  16. Re:Any program? by Anonymous Coward · · Score: 1, Informative
    Now here's an interesting thought: MacOS X on x86.

    PearPC Community Page
    PearPC Sourceforge Page
  17. Details, details, details... by chill · · Score: 4, Informative

    The graphic on Transitive's website shows only Unix/Linux operating systems. One of their steps, Operating System Mapping, says "QuickTransit supports operating system mapping between any two Unix/Linux-like operating systems, as well as mapping between mainframe and any Unix/Linux-like operating systems." Doesn't sound like Windows to me.

    All of this is supposedly done on the fly, and not beforehand.

    Quake and The Gimp wouldn't be my choices to show off flexibility. Quake is OpenGL on Linux and OSX, so there isn't any graphics magic going on. And the ability of BSD-based systems to run Linux binaries is old hat. The Gimp isn't exactly taxing on a CPU as far as user responsiveness goes.

    Extraordinary claims require extraordinary proof. Press conferences for journalists aren't a conducive forum for proving anything. They are a good place to baffle 'em with bullshit, though.

    -Charles

    --
    Learning HOW to think is more important than learning WHAT to think.
  18. Re:Not Vapor and not the arrival of Christ by grantsellis · · Score: 5, Informative
    Yes, it's not all they're making it out to be. The poster read the teaser instead of the article, not that we're surprised :)

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


    and


    Analyst Rob Enderle of the Enderle Group said Transitive benefits from the fact that most modern machines are fast enough to emulate each other without much affecting performance.

    "Typically with emulation you take a big performance hit," he said. "Their big breakthrough is they are much more efficient ... but there's so much overhead anyway, you can pretty much put any software on any platform. The power user might notice the difference, but the other 95 percent won't notice."


    so yes, it does affect performance. You take a 20% hit. The "almost no performance hit" means, in this context, "computers are fast enough that no one will notice unless they're doing something crazy like video editing. Go back to surfing slashdot."
  19. Re:Not Vapor and not the arrival of Christ by Anonymous Coward · · Score: 1, Informative

    Wait; they got Enderle for a quote?

    It's all bullshit.

  20. Re:OT: where is that from? by stankulp · · Score: 4, Informative

    Nobel Prize-winning physicist Stephen Hawking starts his book A Brief History Of Time with an anecdote about a scientist giving a public lecture on the nature of the earth, the solar system, and the galaxy. After his talk, an elderly woman rises from her chair and says "What you have told us is rubbish. The world is really a flat plate supported on the back of a giant tortoise." "Ah. And what is the tortoise standing on?" asks the scientist. "You're very clever, young man, very clever," retorts the old lady. "But it's turtles all the way down."

    http://www.imdiversity.com/villages/native/arts_ cu lture_media/ture_turtles.asp

    --
    We must be alert to the danger that public policy could become captive to a scientific-technological elite. - Eisenhower
  21. HP Dynamo come to mind by MarcoPon · · Score: 2, Informative
    It remaind me of an HP project named Dynamo. It allowed to translate and existing binary at runtime, eveng gaining some performance in the process. The demo/test was demonstrated on a PA8000 (IIRC). So it got PA8K ASM in, digested it (!), and come out with different PA8K ASM. Every translated block (to a branch point) was cached and reused if possible. All with minimum overhead.


    See here: '99 Paper


    Bye!

    --

    SeqBox
  22. Re:Legal status (pretty OT) by Maffy · · Score: 2, Informative

    The reason you need a license for the software is because that software is copyrighted and in order to use or display copyrighted material you need to have a license for it.

    This isn't true.

    Copyright only prevents you from copying something. If the software publisher makes the copy and gives it to you, you can read that copy (e.g. play music from a CD) without requiring any other licence from them.

    Computer software is in the interesting situation of requiring making a copy before use. As a previous poster pointed out, there is an additional section of copyright law to try to get round this.

  23. Re:OT: where is that from? by plover · · Score: 2, Informative
    It is attributed to an unnamed woman attending a lecture by Sir Arthur Eddington in the first half of the 20th century.

    Google found this page for me.

    --
    John
  24. Re:Any program? by gt623 · · Score: 2, Informative

    i think i remember reading that the xbox 2 development kits use powermacs with windows nt ported to powerpc. and mac os x was ported to x86 on a collaborative project with intel until jobs pulled the plug.

  25. Re:Games Games Games by eam · · Score: 2, Informative

    This isn't about running windows on a different processor. It is about running applications for windows in a different operating system with different hardware.

    MS might care about that.

  26. Universal? -- No by 1u3hr · · Score: 2, Informative
    in the small print you find something to the effect of "for this product to function as described, you must meet the following requirements....".

    Like this, I think:

    Operating System Mapper. Dynamite supports operating system mapping between any two Unix/Linux-like operating systems, as well as mapping between mainframe and any Unix/Linux-like operating systems.
    So nothing about Windows, and Mac only as OSX, I think. No mention in the Wired article of it being limited to *ix-like OSs. Which idiot calls this "universal"?
  27. Re:OT: where is that from? by IamNotWitchboy · · Score: 2, Informative

    Everything you say it's true, except the part about the Nobel Prize.

    Professor Hawking has never won the Nobel Prize. You might want to confirm that up in the several bios available on the net.

    --
    The best cure for insomnia is realizing that it is already time to get up. EsteEncanto.com - Blog on technology, urban
  28. Re:no performance hit? by fitten · · Score: 2, Informative

    There were several. One was the translation of VAX code to Alpha to run on Alpha-VMS. The other was FX!32 that translated x86 Windows binaries to Alpha binaries.

    FX!32 worked most of the time but it rarely gave the expected speedup we expected.

  29. Re:Remember... by CritterNYC · · Score: 4, Informative

    Do a Google search for PearPC. People have most certainly gotten MacOS X running on their x86 boxes.

    I have. PearPC has been great for firing up Safari and Mac IE on my AMD 64 3200+ box to test websites. It's no speed demon, though. It's sluggish even on my system. The PearPC folks state that performance is roughly 1/40th that of native.

  30. Re:Tortoises all the way down. by Blitzenn · · Score: 2, Informative

    Even with that, the feat is not possible. If one processor (let's say a CISC processor) has an instruction for a function in the target code, and the second processor (let make this one a RISC processor), does not, It will HAVE to take more clock cycles to accomplish the same task. To make open claims that there is no performance hit is simply ridiculous. The facts of how different processors handle the same or similar instructions make that impossible. I'll bet you they claim it can suck a golfball through a garden hose too.

  31. Re:No performance hit? by julesh · · Score: 2, Informative

    What sets off the BS detector for me is the APIs. They consistently state that they can do this for any OS.

    Actually, it seems to be primarily other people saying this. Read their site; they only claim to be able to do it for UNIX-like systems.

  32. Re:Note to moderators: by tabrnaker · · Score: 3, Informative

    maybe it's just not funny?

  33. Dynamite: A framework for dynamic retargetable bin by Anonymous Coward · · Score: 1, Informative

    Alasdair Rawsthorne has written a few technical reports on the technology behind this which includes some discussion on performance. See:

    Machine Adaptable Binary Translation

    The paper's a few years old, but I would definitely say this is not vaporware and I would expect them to have worked out most of their performance limitations since that time. Will it run as seamless as people here seem to expect? That remains to be seen. In the meantime, instead of immediately crying foul, read up on the subject and come to an informed conclusion. It looks promising. Search around, there's more up to date info.

  34. Re:Remember... by Saeger · · Score: 2, Informative
    The PearPC folks state that performance is roughly 1/40th that of native.

    Sounds about right. It took over 8 hours to do a minimal MacOSX 10.3 install on my 1.2Ghz athlon system (running SuSE9.1), and it takes about 5 minutes just to boot it up. Still, it's great for testing Safari compat even at a snails pace.

    --

    --
    Power to the Peaceful
  35. Re:You mean like classic Mac OS's mixed-mode? by Eight+01 · · Score: 2, Informative

    The Amiga did it first! Google the saga of Jim Drew and the Emplant board. The same types of claims were made. It could emulate the Sega Genesis, the PC and the Mac at full speed using some revalutionary Amiga-Fu.

    Of course it was all B.S. then too.