An interview with FX!32 developers
Besides the Intel version of Windows NT, three other versions exist:
one each for the SGI/MIPS family of processors, the Apple/IBM/Motorola PowerPC
series, and the Digital Alpha series of chips. Until now, you had to rewrite
programs (or at least recompile them) for each of these platforms. In a world
utterly dominated by the Intel processor, this necessity has been a major
stumbling block to the acceptance of Intel alternatives.
Many computers can run software emulators; mainframes used them for decades
to run code for machines that no longer existed. But these solutions just turn a
particular 1401 instruction into equivalent 360 code, or disk calls from one
system into those for another. Developers speak theoretically about dynamic
recompilaton of code from one system for another, but the talk never amounts
to more than a few papers in academic periodicals and one or two lab
experiments.
Thus, when Digital Equipment announced a software emulator, FX!32, that can
transparently load and run 32-bit Intel programs on an Alpha system, NT users
showed great interest. For a chip that Intel neither designed nor inspired to
achieve significant market penetration, it must run a large body of code. An
emulator, or an automatic binary translator, is a major step along the path.
When Digital set a goal of an Intel application running at 70% of the
native application's speed, even more people noticed. Seventy percent of a fast
Alpha's native speed is faster than a Pentium, and in the past most emulators
ran two to three times slower than native. If FX!32 works as advertised, it is a
major achievement, both in software engineering and as a credible alternative to
Intel's hegemony. And with the price (FX!32 is freeware), even more people are
interested. In fact, Microsoft is releasing a 32-bit emulator for future
versions of non-Intel NT, according to rumors conveniently timed to either
improve FX!32's credibility or steal its thunder.
Joel Sloss examines FX!32's performance, credibility, and architecture,
starting on page 137. To get the inside story, I conducted the following email
interview with Philippa Jollie, FX!32 product manager, and Joyce Spencer,
engineering manager.
The Development Cycle
Pournelle: How long did FX!32 gestate?
Spencer: We
spent about a year on the prototype and then about two years getting FX!32 to
external beta, and finally six months in beta. All told, it's been a bit over
three years since we began working on the x86-to-Alpha problem. At a Comdex
demonstration, an Alpha ran a set of applications (Office'95, CorelDraw, and
Photoshop) that were not available natively on Alpha.
Pournelle: I heard rumors of FX!32 running
on NT 3.51. Instead, you are releasing FX!32 with NT 4.0.
Spencer:We
considered 3.51 as a target, but then we realized that some applications rely on
the existence of the enhanced-mode 16-bit emulator, which wasn't available to
Alpha users until NT 4.0. Turns out, the applications are 32-bit, but the
installer on the kit can be 16-bit enhanced-mode! So those applications don't
install cleanly on Alpha without NT 4.0.
Pournelle:Just
how much work went into FX!32? How many people were on the development project
team? How many are committed to its ongoing maintenance and development?
Jollie: Six
engineers compose the core development team, and we added a few more in the
project's final months. But we are now putting into place the team for testing
and validating FX!32, marketing, product support, and distribution support.
Pournelle:How
many innovations does FX!32 contain? Are patents and papers due from it?
Spencer:FX!32's
execution paradigm, which is a unique combination of emulation and binary
translation, is one of the innovations. We have entered new territory in several
other areas, as well. We have filed nine patents and a technical paper is
underway.
Pournelle:Did
you need any additional hooks inside NT to make FX!32 work, or did they exist
already?
Spencer:Microsoft
didn't change NT to make FX!32 work. But we confronted several challenges, of
which Object Linking and Embedding (OLE) was prominent.
Jollie: What
Joyce is saying (probably more tactfully than I can) is that we made FX!32 work
without any help from Microsoft, so we did a huge amount of work to get into the
guts of NT and understand it. As we've proven the technology, Microsoft and
others have been more forthcoming with information. We hope this new cooperation
will lead to improvements in FX!32, but we've only just started with that work.