Microsoft .Net to support Linux

Beta testers and developers say the writing's on the wall. There's evidence that Microsoft may ship a smaller version of .Net for operating systems other than Windows
Written by Peter Galli, Contributor

Is Microsoft preparing to port part of its .Net platform to Linux? Beta testers and developers think so, saying there is growing evidence that the software giant may well ship a smaller version of its .Net common language runtime on operating systems other than Windows, including Linux and Unix.

While there has been much speculation around this on Internet chat groups for some time now, the second beta of Visual Studio .Net released last week contains hard evidence of this, testers said.

"I found a list of the target operating systems to be supported in .Net in that beta. The list includes Linux [kbLinux], Unix [kbUnix], Macintosh [kbMacintosh], Windows and Windows CE," said Rob Scoble, an editor at Fawcette Technical Publications and a beta tester.

"I selected the 'Help' menu and then the 'Edit Filters' link. I then expanded the 'Target Operating System' [TargetOS] in the 'list of Attributes and their Values', which brought up a list of the target operating systems to be supported in .Net," he said.

It was not surprising that Microsoft would support these platforms in some way, particularly as it moved to counter the threat posed by Java. But what was unusual was the fact that it had not publicly announced this support.

A Microsoft spokeswoman said the list that appeared in the beta was "incorrect as this is not what is happening". She said she had "no idea" why the Visual Studio team would have included this in the beta. While Microsoft had previously talked about moving the .Net Framework and the common language infrastructure to other platforms "we have made no official public statement as to which platforms these will be", she said.

Barry Goffe, the group manager for Microsoft's .Net Developer and Enterprise Communications, agreed that, technically, some core pieces of the framework could be moved to other platforms. "But we have no specific plans for doing that at this point," he said.

But Scoble was not buying this for a moment, saying that while Microsoft may well have meant to remove the list from the beta, "it indicates to me that they are seriously considering shipping the .Net runtimes on Linux."

Another source close to Microsoft says the company is planning a significant announcement around the Common Language Infrastructure (CLI) -- a key subset of the .Net Framework -- and its porting plans tomorrow, followed by further announcements including one at the O'Reilly open source convention in San Diego at the end of July.

Microsoft senior vice president Craig Mundie, a vocal critic of open source and the General Public Licence (GPL), will address that conference and take part in a discussion with Michael Tiemann, the chief technology officer for Red Hat.

Microsoft has formally submitted the specifications for C# and the CLI to ECMA, a standards organisation committed to driving industry-wide adoption of information and communications technologies.

The submission, co-sponsored by Intel and Hewlett-Packard, is designed to help standardise key technologies to enable greater interoperability between computing environments and help companies leverage existing knowledge and current investments in software development infrastructure to build the next-generation Internet.

"Tomorrow's announcement will be around this. It makes sense for Microsoft to have the juicy bits, like the common language runtime and other parts of the CLI, running on other platforms as this would make .Net a diverse platform rather than a pure Windows platform. This would provide developers with an incentive to write bits for the .Net framework as it will target more than Windows," said a Microsoft partner, who declined to be named.

Another tester, who also declined to be named, said developers had long anticipated that Microsoft would announce a subset of its .Net platform for other platforms. Microsoft already worked fairly closely with Apple and last year bought a stake in Canadian software maker Corel, at which time it said Corel could be used to port .Net to Linux.

Corel had not immediately be reached for comment.

"What is lacking is the actual implementations Many people don't believe Microsoft can come up with good cross-platform interoperability. This is all part of its strategy to make Java irrelevant to the marketplace," the tester said.

The .Net runtime is similar to that found in Java, where developers write code once and it is then interpreted on a range of different platforms using the runtime, which talks to the processor and compiles the code further, Scoble said. Microsoft's .Net was similar as it compiled half-way to an intermediate language (IL) code, which was then further compiled by the runtimes.

The Common Language Runtime is a core component of the .Net Framework, Microsoft's multi-language component-development and execution environment. Microsoft training materials say that, while a component is running, the run time is responsible for managing memory allocation, starting up and killing threads and processes, enforcing security policy, and satisfying any dependencies the component may have on other components.

Scoble said it appeared that Microsoft intended to put these runtimes on the Mac, Unix and Linux. A developer would supposedly write their application once and it would then run on all the platforms. "But it looks like there are going to be several different types of runtimes for the different platforms.

"While a mobile phone will have a .Net runtime, it will not get the full Windows user experience. Anything that makes use of the Windows experience will be turned off on that runtime, and you're going to have to then decide how to code your application: whether for a minimum number of API's or a specific operating system," Scoble said.

The Visual Studio tools would undoubtedly only run on Windows, meaning that developers would have to develop on Windows 2000 or Windows XP, even if they wanted to target Linux. They would then decide which API's to use for deployment, he said.

"Probably only some 60 percent of the APIs will be supported on Linux and Unix. Obviously Windows-specific things like Microsoft's Component Object Model (COM) and DirectX, its advanced suite of multimedia APIs built into Windows that allow software developers to access specialized hardware features without having to write hardware-specific code, won't be included. But it's becoming pretty clear that this is the direction in which Microsoft is moving," he said.

Microsoft's attacks on open source and the GPL had also "pretty much been a smokescreen. But they have changed the expectations in the marketplace, so now everyone knows that Microsoft hates the GPL and has proposed its own Shared Source scheme.

"So now when you build .Net applications for Linux, you are going to have no choice but to buy into Microsoft's licensing agreement rather than the generally accepted GPL agreement," Scoble said.

Microsoft wanted to make that point well in advance of any announcement regarding Linux. This fit into their long-standing strategy of going on the attack, bloodying the water and then announcing their terms, he said.

Take me to ZDNet Enterprise

Have your say instantly, and see what others have said. Click on the TalkBack button and go to the ZDNet News forum.

Let the editors know what you think in the Mailroom. And read what others have said.

Editorial standards