Running Linux Apps on Windows (and other stupid human tricks) Part II

In Part I, I laid out the why and how of OpenNT as a portability solution for UNIX/Linux applications to Windows NT, the early days of the startup, and ideas for running a business based on liberally licensed software before we had the open source definition. In Part II, I talk about the end game, the acquisition, and some final thoughts.

End Game

By Spring 1999 we were in trouble. We had taken US$8.5M in four rounds. We were about 45 people. Although we were selling units (~40 thousand in use), we were burning cash too fast.

By never quite giving up control of the company in each round, we never took enough money in any one round, and subsequently the executive team was constantly raising money instead of being executives. Each round meant having investors claw back options we had already vested, but because you want the money, you accept the terms. And the terrible thing about investment is that it removes the immediacy of the feedback loop of paying customers in the name of “growth.” Who knows what poor bets we placed without enough customers telling us we were investing correctly to solve their problems.

In 1998 we ran into problems with the brand. Northern Telecom (not Microsoft) had a problem with the name OpenNT. So we went through a rebranding exercise and the product became Interix. We still had the buried “NT” reference, and had worked in the -ix extension.

We went through our second acquisition discussions, this time with Microsoft itself. But at the last minute, a Microsoft exec suggested they simply do a deal for “a couple million” in co-marketing dollars rather than an expensive acquisition, and talks fell through. This was absolutely the right answer for both sides, except the co-marketing discussions were out of another team’s budgets and never happened.

We were living deep in Geoffrey Moore’s chasm and hadn’t realized it until it was too late. I met with the CIO of a Wall Street Bank and his senior architecture team in the spring of 1999. The team loved Interix. They had ported large numbers of applications over to Windows NT on Interix in a matter of days. Everything was running well. They were all very excited. Once the architecture team left the room, the CIO asked how many people worked at our company. I hand-waved at “around 50.” He said it was too bad — his team loved the technology, but he couldn’t afford to bet their move of business-critical applications to a still unproven operating system from Microsoft on the backs of a small venture-backed startup. Simple really, if you look at it from the customer’s perspective.

Our investors thought we looked tired and had lost interest. There was a shiny new set of World Wide Web business investments to make. That bubble wouldn’t burst for two more years.

One of the interesting events in our dying days was Bob Young and Red Hat. Bob understood what we had built. Red Hat was growing like a weed. He liked the depth of experience in our R&D team. Everyone knew Microsoft would make the next big release of Windows NT in the near future. Bob wanted to release “Red Hat for Windows” in time for Microsoft’s big launch. Red Hat carried our payroll for June 1999 through the due diligence as we discussed the possibility of an acquisition. In the end, they were buried in filing to go public and the talks fell through. I do wonder how much fun we might have had if Red Hat had acquired us back then, and what the effects of the “Red Hat for Windows 2000” distro would have meant to Microsoft. (It may not have been a trivial lawsuit, as Microsoft was already buried in the DOJ proceedings at the time.)

Microsoft started asset acquisition talks immediately after Red Hat talks fell through, and picked up the payroll of our substantially smaller company. We still had that rather unique Windows source license, and a small hardcore R&D team of UNIX systems engineers that now understood the core of the NT kernel.

Through the summer, we were trying desperately to close a US$2M sale with the IRS to deploy a key application they had already ported, but we were caught. They wouldn’t close the deal unless Microsoft acquired us. They, too, weren’t about to bet business-critical application ports on small startup companies.

On 16 September, 1999, Microsoft finished the acquisition of what was left of Interix. The investors received about $0.25 on the dollar. Founders and the Series A friends-and-family round didn’t. Roughly half of the R&D team took job offers. The rest weren’t interested in the move from Waterloo to Redmond and worked on long term contracts through until early 2000 to get Microsoft Interix 2.2 out the door. Everything was now different.

[And the IRS bought US$2M worth of licenses the week following the acquisition, as they now trusted they could deploy the technology and yell at Microsoft if there were problems. So Microsoft even got back 40% of the acquisition costs in the first week.]

Inside the Giant … and Out

The new reality was a body shock. I had become a Product Unit Manager in the Windows world. We left the life and death fight of a startup, to enter Microsoft at a interesting juncture in its history. Windows 2000 released to manufacturing that fall. The MSFT stock had split four times in five years, and the parking lots were awash in Porches and BMWs. The company had grown from around 26,000 employees when we signed the software license in 1995, to 40,000 as we walked through the door four years later (and would be 60,000 by the time I left in December 2004). They were in the middle of the Department of Justice proceedings.

Interix had grown to a complete collection of the UNIX commands and utilities, and a complete development environment that included the GNU C Compiler suite, and libraries from a variety of sources. The collection included a complete port of the X11R6 suite (with the exception of the X11 server itself).

That Microsoft wasn’t interested in promoting Interix became clear over the next two years. Interix was the dancing bear to be dragged out when they needed to close a sale against Sun, but otherwise hidden away. Interix was rolled into Services for UNIX (SFU), that eventually became the Subsystem for UNIX Applications (SUA).

The Interix Achilles heel was that an application couldn’t make calls to more than one environment subsystem, so one would need a port of the Oracle libraries instead of the Win32 libraries. Microsoft was utterly uninterested in entering such discussions with Oracle, or Rogue Wave, or any of the other key UNIX and Windows ISVs. The multiple-subsystem problem would eventually be solved, but we had already demonstrated tight integrations with COM objects, whereby a ported UNIX/Linux application could be wrapped as a COM object and deliver its results into the Windows world (e.g., into an Excel spreadsheet).

Linux (and Red Hat, more importantly from an enterprise perspective) hit its stride in 2000. Product people in Microsoft who originally feared applications ported to Windows NT could be ported back to UNIX systems were now concerned that they could be ported to Linux. So instead of boldly leading with “run all your Windows, UNIX, web applications on Windows 2000,” they expected customers to re-write working applications (they didn’t), and so mostly captured new green field applications to the up-and-coming .NET world, while allowing Linux to replace expensive UNIX systems.

I left the product team after two years. I worked in the Rotor team for a year (aka the Shared Source CLI). I moved into the Windows business development team for a couple of years to help the Windows executives understand open source. (This was long before the Open Source Lab, and it was a very different effort to the messaging shades of grey around “shared source” in the Windows marketing team.)

Jim Allchin was still EVP of Windows and I finally convinced him of why there was a genuine engagement strategy to be had with the open source world, but in the end selling down the organization became a relentless head banger. The only successful experiment we got out the Microsoft door was the WiX toolset in 2004 (still maintained by Rob Mensching). WiX was the only successful Microsoft publication of software under an open source license for years to follow. I left Microsoft in December 2004.

I had a miserable meeting with the Windows High Performance Computing team several years later. They were competing heavily for a bid against Linux and the rise of Beowulf clusters. They needed a porting solution for the common tool suites used in the “Linux world” and were thinking of Cygwin. No one in the Windows team beyond the build team even knew Interix existed anymore. I had been called in by consultants that were helping with the work.

I had to explain to the HPC folks that they already owned the technology they needed, but to no avail. They couldn’t get their head around the idea. It couldn’t be a “good” solution if the Windows marketing folks didn’t talk about it. And everyone knew about Cygwin. The fact that the Cygwin performance and semantics were poor (certainly in comparison to SUA/Interix) would surely encourage the end users to commit and rewrite the tools to .NET.

Postscript

The Interix subsystem shipped up through Windows 7. As well as processing taxes for the IRS, the US armed forces food services used it (breakfast in Afghanistan to dinner in Alabama), as well as California’s water quality monitoring to name a few examples. A number of large manufacturers and pharma companies used and liked Interix in various guises.

Which brings us to last week’s announcements about running native Ubuntu binaries on Windows. This is interesting technology because it’s binary compatibility, and not the source portability embodied by Interix. Interix represented “just another port” in a customer world already experienced with porting applications between different variations of UNIX systems. It will be really interesting to learn more about how the binary compatibility is done in the coming weeks and months. I’ll also be really curious to understand the business “why” as we move from a world of virtual machines to containers. I’m assuming the “cool” factor of running Ubuntu binaries has everything to do with hosting Ubuntu-based containers on a Windows [Nano?] Server world. Perhaps I suffer a lack of imagination at this point.

The Interix R&D team remains one of the best teams with which I’ve ever had the privilege to work. A few of the seniors are still hiding in corners inside Microsoft and the Windows PowerShell was certainly better for their work. So much of what we did seemed so obvious from a software engineering and product delivery point-of-view, but apparently people still have trouble getting it right. So much of what we did seemed natural to us living in a collaborative software community, before the open source definition was created. To this day, I don’t believe in an open source business model because it’s all just software business, and the engineering economics of collaborative development will always ultimately be the best way to build software.

Show your support

Clapping shows how much you appreciated Stephen Walli’s story.