Re: Driver optimization.

Albert Cahalan (albert@ccs.neu.edu)
Tue, 2 Jul 1996 02:26:35 -0400 (EDT)


> From: Derrik Pates <dpates@cavern.nmsu.edu>
> On Sun, 30 Jun 1996, Khan M. Klatt wrote:

>> On a similar note, I was speaking to a friend who is fairly
>> familiar with NT. He states that you can install NT 3.5/4.0
>> on computer A, a 586, and also on computer B, a DEC alpha,
>> and also computer C, a PowerPC RS/6000.
>
> Not true- there are DIFFERENT binary versions for the different
> platforms (iAPx86, MIPS R4x00, PowerPC, DEC AXP).

We could do that. Maybe someone would like to hack gcc so that
it does fat binaries (all the way through, including *.o files,
so that old Makefiles work). Then modify the install program to
optionally strip out other architectures.

>> Then you can go to a store and buy Word or Office for NT,
>> and install the same software on computer A and on computer
>> B and on computer C.
>
> There's an EMULATIOn pack you can get from another company
> (can't remember the name) to run NT binaries from other platforms
> on your choice of NT platform.
>
>> Now I must admit this sounded really unlikely; after all,
>> what kind of binary format could be implemented to generate
>> code that is acceptable to a DEC Alpha, a Pentium, and a PowerPC?

Java, which is at least a Linux binary format.

> Exactly. Your friend there needs a lesson in NT - I and my
> coworkers are working on getting an AlphaServer, running NT
> and wanted to see about Win95 apps running on NT/AXP.

>> What does it take to do "binary compatibility" across platforms? (i.e.
>> what does it take to run the *same* binary on x86, 68k, alpha, ppc?
>
> EMULATION!!!!!!!!!!
>
>> It would be nice to be able to say, "hey, if you install Linux
>> on your machine, it will run all the code for Linux, whether
>> compiled on PowerMac or on a Pentium"...
>
> Emulation is not easy, and often slow. The best emulation I've
> seen is ARDI's Executor Mac emulation software.

It is also very nice to have. I'll take SPARC and Alpha please :-)
I'm sure the non-PC ports of Linux could really use x86 emulation.
Then they can run all the Linux/i386, SCO, BSD, DOS, and Windows apps.

> It's not easy, do you REALLY want to make an even bigger kernel?
> You'd have to have emulation for EVERY CPU architecture that
> Linux is written to and THAT would be BIG and SLOW.

Use kerneld I guess.

>> Is this an appropriate thing to have on a wish-list for 2.1?
>> Hopefully, NT on a PowerPC or a DEC box isn't *emulating* x86 code;
>> otherwise we see the horrendous performance you see on a PowerMac
>> trying to execute 68k code!

NT on an Alpha emulating the i386 would be very fast. That is just
because when you get an Alpha 21164 at 433 MHz with 8 MB cache...
A new product from DEC also does on-the-fly conversion to native
instructions, which get attached back onto the executable. Over time
the whold executable gets translated. It even handles self-modifying
code so you can run the latest Intel virus.

> Nope, not appropriate for your 2.1 wishlist. Maybe (big maybe)
> 3.0, 3.1, or on down the road (once again, BIG maybe).

Isn't there a free i386 emulator that is partly done? Maybe this
could go in the 2.1 wishlist, at least for i386 emulation.