Next Up on the System i: Native .NET
May 22, 2006 Timothy Prickett Morgan
For all of the benefits that the File Serving IOP, the Integrated PC Server, and the Integrated xSeries Server have given to OS/400 shops since they were introduced in 1994, the very idea of a server co-processor is somewhat in conflict with the integrated nature of the AS/400, iSeries, and System i5 platforms. Windows, which has always been the dominant operating system installed on this co-processor, gets bolted onto the side of the OS/400 server, but is not woven into its fabric in the same way that Linux and AIX are today though the advent of mature, dynamic, and sophisticated logical partitioning.
For years, many of us in the OS/400 market have advocated for a native implementation of Windows on PowerPC and Power servers. This, back in 1991, certainly was the plan when IBM, Apple, and Motorola announced the PowerPC Alliance. For a short period of time, Windows 3.51 was actually available on IBM’s PowerPC-based workstations, but was almost immediately killed off in the wake of Louis Gerstner become chairman and CEO of IBM. He cut a lot of projects, and got a lot of credit for it, but that move was probably one that he ought to kick himself in the seat of the pants for. I understand that IBM and Microsoft had plenty of bad blood after their experience with OS/2, but I also understood then that Windows was going to be a mighty force in the data center, and carry more weight than any processor architecture.
Look at it this way. IBM has about 1,700 customers running Linux on its mainframes, and these customers now account for 20 percent of mainframe sales. IBM began to support Linux in 2000 on mainframes, first unofficially, then officially with support of Red Hat and Novell. It took years to get Linux hardened and ported to IBM mainframes, and it is not an inexpensive license, either. And yet, it drives a fifth of total mainframe revenues on engines that cost a quarter of regular engines that run z/OS. That tells me IBM sells 20 times more mainframe engines running Linux than it does z/OS, and considering that the Linux buyers are about a fifth of the mainframe customer base (which measures about 10,000 customers worldwide with about 20,000 footprints), the Linux buyers on mainframes are the ones spending.
Imagine if IBM had supported Windows on its mainframes and Power-based servers five or 10 years ago. How much more popular is Windows–in terms of footprints and revenues–than Linux? The answer is quite a bit, even with the impressive growth of Linux.
For whatever reason, IBM and Microsoft could never come to terms on getting a native Windows port to the Power architecture after Gerstner pulled the plug on the Power desktops a decade ago. My guess is that Microsoft didn’t want to pay for the port, and neither did IBM. But, somewhere along the line, someone certainly paid for a more modern Windows port, unless the “Xenon” Xbox360 is running Linux and no one has told Bill Gates. The Xbox 360 is certainly running Windows, and it is a 64-bit Windows, too. As I said in late 2004, when the Xbox 360’s features were first being leaked, once IBM and Microsoft have created the hardware abstraction layer (HAL) that allows a stripped-down variant of Windows on the Xbox with PowerPC cores, how hard would it be to create the HAL to allow the future Vista Server 2006 to run on IBM’s Power6 platforms? Not hard at all.
But Microsoft and IBM probably are not going to do it.
The next best thing to running Windows on the System i5 platform natively is to allow it to run Windows applications. In January of this year, IBM and Mainsoft announced a partnership deal that would allow customers using its server platforms to convert their .NET applications to Java and then run them in Java virtual machines. Specifically, companies buy Mainsoft’s Visual MainWin for J2EE tool, which plugs into Microsoft’s Visual Studio development environment, and this plug-in grabs applications written in Visual Basic and .NET languages like C# and running against the Windows middleware stack and ports them to any J2EE-compliant server–notably Linux, Unix, OS/400, and mainframe servers. As it turns out, what Mainsoft’s tool does is expose the ASP.NET and ADO.NET class libraries of the Mono middleware to Visual Studio.
I have nothing against Mainsoft, or any other application tool vendor for that matter, but I think IBM needs to get this .NET support integrated more directly into the System i5 server. Specifically, I want a Mono runtime environment embedded into the appropriate layer of the i5/OS microcode. This way, no matter what application development tools OS/400 shops use, if they wanted to code in C#, they could do so natively.
The appeal of Mono is that it will allow companies to deploy a common set of tools and technologies that span Unix, Linux, and Windows as they refit those applications for a Web services world. If Microsoft wanted to be a tools company, it would have to make .NET run on Unix, Linux, and other platforms like OS/400, but Microsoft sees itself as a platform company, so it wants everyone to use the Windows stack and has made Windows more appealing by adding .NET features. Mono is, in essence, a validation of the .NET features Microsoft has created, but it is driven by the open systems impulse to make these features available on all platforms. One is about making money with good software and lock-in, while the other is about making good software. Customers will decide which approach is better when they vote with their dollars. And because some people were annoyed when Novell bought Ximian, and therefore got control of Mono, there is also another open source alternative to .NET, which is called DotGNU. So it doesn’t even have to be Mono, per se, that IBM adopts as the .NET runtime environment.
However, Mono is not quite ready for primetime, which means this is a perfect time for IBM to get involved and start integrating it into i5/OS. Beta 1.2 of Mono that was announced a few months ago at LinuxWorld, and it has some important features that were lacking. I talked to Miguel de Icaza, the founder of the open source Gnome graphical user interface, Ximian email client, and Mono .NET environments; de Icaza is also vice president of developer platforms at Novell. With Mono 1.2, the environment now supports an application programming interface called Windows.Forms, a common method used by Windows developers working with Microsoft’s ASP.NET tools to create GUI screens for their applications.
“About 40 percent of new server applications and about 45 percent of new desktop applications are built using Windows.Forms functionality,” explained de Icaza. The beta release supports the .NET 1.1 framework and has partial support for the .NET 2.0 framework. The Mono framework clone runs on Linux, Mac OS X, Solaris, BSD, and Windows platforms, and runs on X86, X64, Power, Sparc, and mainframe processors. Incidentally, the Banshee music player, the F-spot photo management tool, and iFolder and Beagle desktop searches that are part of the upcoming SUSE Linux 10 releases were all written using the Mono tools.
At some point, Mono will implement all of the .NET 2.0 features, and it will be good to go, That would be a perfect time to launch a native .NET runtime either inside i5/OS or running in a stripped-down, easy-to-maintain Linux partition that is absolutely invisible to OS/400 shops.
The idea is to get the benefits of running Windows applications, but to avoid the pain of actually having to deploy Windows at all, or even Linux as an alternative to Windows. Customers just want to run Windows applications, and if .NET is the wave of the future for Windows applications, all you need is .NET. Forget Windows, and make i5/OS the best environment in which to run .NET applications.
To put this in simple terms, IBM, beat Microsoft at its own game. Get a little revenge for OS/2. And if you don’t want revenge, then just license C# and the CLR and give Microsoft some more money it doesn’t need. But get it done.