Linux is on a roll. For applications ranging from Web servers to databases, third-party developers everywhere are turning to freeware operating systems (OSs). As a result of freeware's momentum, Microsoft purportedly sees Linux as a competitive threat to Windows NT.
On the surface, Linux and its freeware distribution model seem to be gaining steam. Each week, new vendors announce support for the Linux platform. These endorsements have self-serving motivation. Major industry players are advancing Linux as their latest competitive pawn in the war against Microsoft.
On the Linux bandwagon, you'll find IBM, Oracle, and Netscape, all Microsoft competitors that stand to gain from the emergence of a competing platform. Even Intel (the other half of the Wintel marriage of convenience) has come out in support of Linux. This support is not because Intel believes in the freeware model, but because Intel resents living in Microsoft's shadow. (For more on the deteriorating relationship, see Mark Smith, "Is NT Windows?" page 11.)
However, developing for Linux takes on a whole new meaning as independent software vendors (ISVs) contemplate releasing to the masses what is essentially their core asset--the intellectual property that the original source code they've written represents. According to intellectual property lawyers, the Linux licensing agreement binds any developers who produce software using components of the Linux OS (e.g., libraries, runtimes) to release the source code for their additions (i.e., applications) to the public domain. This limitation, more than any other issue, will stop mainstream commercial Linux development dead in its tracks. Evaluating strategies involving Linux-based solutions, IS planners need to consider that commitments made today may vanish tomorrow. As a result, customers who invest in Linux may end up without crucial applications.
In the end, lack of support or questions about open source security will not cause Linux to fail in its bid to unseat NT. Rather, the very nature of the freeware model will kill off this contender. (For more about Linux and NT, see David Chernicoff, "Walking the Walk and Talking the Talk," November 1998.)
Craig Barth
Putting the Jini Back in the Bottle
Sun Microsystems' new Jini application architecture could pose a threat to Microsoft's desktop Win32 API. Jini is Sun's controversial attempt to stitch its Java-based computing model into a cohesive enterprise infrastructure.
Sun will leverage the Remote Method Invocation (RMI) capabilities of the Java 1.2-based Virtual Machines (JVMs) to create a platform-independent distributed computing environment. Under the new Jini model, all JVM-enabled devices will register themselves as participants in a federation of systems, advertising the services of any locally stored applications and taking advantage of services that other applications on other systems author.
Sun's strategy is to dislodge Win32 as the API standard. However, Microsoft isn't ready to give up its hard-won position without a fight. Microsoft is talking about its distributed computing efforts, specifically a series of new technologies the Microsoft Research Group is developing under the code name Millennium Project.
Like Jini, Millennium includes a distributed computing component. However, instead of creating a loosely coupled federation of independent Java objects, Millennium specifies a more abstract model. Linked, individual JVMs form a single, distributed JVM. This approach lets Java applications use the computer resources of all participating systems seamlessly with little or no participation by the developer.
Greater abstraction is at the center of other parts of the Millennium project, as well. One core Millennium effort involves extending the forthcoming COM+/DNA architecture to remove any existing distinctions between local and remote objects. Developers will create applications without concern for where they will execute, giving system architects more flexibility in how they configure and deploy components.
This extension of the Windows object infrastructure gives Microsoft an advantage. Millennium represents a less dramatic, incremental step toward distributed computing for application developers. Jini requires faith in the JVM model of computing (a notoriously unreliable environment) and in third-party developers building the necessary foundational components (e.g., Java-based device drivers, abstraction layers).
Jini is a curiosity. Like most Sun-inspired anti-Microsoft initiatives, it will gain supporters in the UNIX and network computing communities. However, Jini fails to offer anything compelling to shops that have already invested in Windows as a development platform.
Craig Barth
Is Embedded NT for Real?
Industry pundits refer to the Embedded Windows NT initiative as Windows for Routers. With Microsoft representatives touting NT's potential as a function-specific operating system (OS), many customers struggle to understand the fragmented embedded systems strategy.
Microsoft's other embedded OS, Windows Consumer Electronics (CE), is gaining momentum in consumer circles, and Microsoft's CE group continues to stretch the platform's coverage. For example, the CE group is positioning the new Jupiter-class CE devices, such as Hewlett-Packard's Jornada 820 handheld PC, squarely against the low end of the traditional fat-client notebook market. Microsoft has said no coverage conflicts between CE and Embedded NT exist. However, the release of Jupiter-class CE devices has set a precedent. Microsoft appears willing to let the CE team compete with the NT team for control of certain market segments, but buyers are confused about which platform is the real deal. As a result, customers still don't believe that Microsoft is serious about embedding NT.
When you examine the issue from a technological perspective, you can address the issue of Embedded NT's necessity. First, you must look at the question of suitability to task. Windows CE is a small-footprint OS that Microsoft designed for single-user operation on non-PC devices. CE is 32-bit and supports multitasking and multithreading like NT. But this support is where the similarities end. NT is designed to be a high-performance OS. NT acts as a server because it supports critical scalability features, such as symmetric multiprocessing (SMP) and virtual memory.
By contrast, Microsoft designed CE for uniprocessor operation only. Microsoft tuned CE's memory management architecture for fixed-size environments (i.e., no virtual memory). These architectural differences define the suitability of each platform to various tasks. For example, NT is better suited to manage a complex infrastructure-level component, such as a router or fax gateway. NT's robust memory management and support for SMP lets it meet the demands of large enterprise customers, whereas such a load would overwhelm CE's more modest architecture.
The independent software vendor (ISV) community and the majority of in-house enterprise developers already understand how to program to NT services. The fact that you can build a single Win32 application and deploy it across a broad spectrum of systems represents a powerful selling proposition for the Embedded NT concept.
Embedded NT is necessary to bring an adequate Windows-based platform to certain enterprise-caliber devices, and it's a logical strategy given the benefits that a single, reusable code base built on a unified enterprise API platform will offer to Windows developers.
Craig Barth
First, the author uses the term freeware (versus open source) five times in the article. Labeling Linux as freeware associates the OS with low-quality software typically given away over the Internet. A substantial difference exists between freeware and open source software. Using the term open source would more properly convey to readers that Linux is different from the freeware they might be familiar with.
Second, the GNU (http://www.gnu
.org) General Public License (GPL), under which the Linux kernel and many included utilities are licensed, is not nearly as restrictive to commercial software development as the article implies. The database and office-suite vendors who have developed products for Linux have not given away their intellectual property rights, and their applications are not in the public domain. For example, Microsoft distributes a version of NetMeeting that runs on Linux. The application is not in the public domain, and Microsoft has not given away its intellectual property rights to the product.
The GNU GPL applies only to software that incorporates GPL code. Developers who write code or write code that calls libraries that are GPL-licensed own the rights to their applications. The GPL is not a deterrent to commercial software development. The GPL works well as a license for people who want to share the tools they wrote to solve their problems. In the case of Linux, the group of people is very large. Developers need not incorporate GPL code to write significant applications for Linux any more than they need to incorporate Sun’s code to write applications for Solaris.
Linux is often a suitable platform for commodity services, especially in small organizations. The tools for enterprise deployment of Linux are not currently widely available. That factor is a significant deterrent for now, but the situation may change.
Resellers making their best bid for a contract are realizing that Linux offers a way to cut costs and give them a competitive edge. The obstacle to developing for Linux now is the limited number of rapid application development (RAD) tools available, not the GPL. This situation is changing quickly. Will it change fast enough? I don’t know, but I would not dismiss open source software yet.<br>
--Anthony E. Greene<br><br>
<i>Thank you for the corrections. Watch for further information in upcoming issues.<br>
--Karen Forster</i>
Anthony E. Greene August 06, 1999