Here's a story you've heard a bunch of times: IBM liked the software so much, it bought the company. And so the story ran again last week, when Big Blue bought software emulation specialist Transitive for an undisclosed sum. Transitive makes a bit of software called QuickTransit, which allows applications created for one chip to be encapsulated and run on completely different architectures.
Like so many of IBM's moves, the acquisition of Transitive appears to be both an offensive and defensive move at the same time. More on that in a bit. But first, let's review what QuickTransit was when it was launched in September 2004 and how it has been used since then.
The technology underlying QuickTransit is the result of work that Alasdair Rawsthorne, a computer science professor at Manchester University who is also a processor designer well acquainted with deconstructing programs at runtime and optimizing them, started in 1995 with a bunch of students. They wanted to take a stab at the software emulation problem - running code for one system on another one with a completely different architecture - and figured out a way to modularize the emulation problem to improve performance as well as allowing support for multiple platforms.
Transitive was formed in October 2000, and after three rounds of venture capital financing (bringing in $24m), the company delivered QuickTransit in late 2004. At the time, Transitive was headquartered in Los Gatos, California, where it had seven employees, with a research and development center back in Manchester with 60 engineers. Pond Venture Partners, Manchester Technology Fund, Crescendo Ventures, Accel Partners, and Meritech Capital Partners all kicked in the dough.
At launch time back in 2004, Transitive had these four different products available, and this original list is important, since a lot of people forgot that mainframe apps were part of the plan for porting apps, and by extension, so could AS/400 midrange applications be done:
- QuickTransit for Itanium: supported MIPS, Power/PowerPC, X86, and mainframe binaries
- QuickTransit for Opteron: supported MIPS, Power/PowerPC, and mainframe binaries
- QuickTransit for X86: supported MIPS, Power/PowerPC, and mainframe binaries
- QuickTransit for Power/PowerPC: supported MIPS, X86, and mainframe binaries
The QuickTransit tool has three parts. One bit runs on the source platform where the operating system and binary applications were originally created. There is also a back-end part of QuickTransit that sits on the target platform, with its processors and operating systems. Sitting between the QuickTransit front-end and back-end is the secret sauce, an optimizer layer that translates blocks of instructions in the source platform into an intermediate form, which Transitive calls intermediate representation, or IR. The optimizer, as the name suggests, performs optimizations on these blocks of instructions and stores these routines in the cache of the target server platform. The optimizer then encodes the binaries for the new target environment and handles all of the operating system and graphics mapping calls, which allows the application to run.