Well, now! Here we have strong evidence of excellent prognostication. All this has come to pass, and we even find Linux in Motorola mobile phones.
Newsletter #21: Wham! Another surprising result of the Internet culture
No, not George Michael's old band. I mean another bolt out of the blue is in the process of striking the software industry. This time it is open source software.
It used to be the case, back in the late seventies and early eighties, that every university that used UNIX had a source license. That meant anyone could make alterations to suit needs like real-time data collection, add network protocols, or even port the whole operating system to another CPU architecture. Access to OS source code was a necessity when adding a device driver meant re-linking, if not recompiling, the OS. Many sites that did not pay for source licenses "borrowed" source access from nearby universities. Other OSs widely used in universities were written there, like ITS. Commercial OSs like VMS and IBM mainframe OSs were less popular at universities, since you couldn't rummage around inside them.
During this period in the history of computers, universities played a leading role in seeding the industry with innovations. Sun workstations, Lisp Machines, and the Connection Machine, among many others, were spin-offs of university-based projects. UNIX was also the workhorse of university life. UNIX processed documents, using emacs or vi editors, and the troff formatting language. This was crude by comparison with today's visual tools for document editing, but it worked.
As commercial software, from Lotus and Microsoft, began to make inroads in universities, the old UNIX tools were pushed aside, and rightly so. Users didn't care about source access. The Macintosh and even Windows 3.1 were easier to use for document creation than UNIX and emacs and troff. PCs replaced terminals and UNIX workstations outside of labs, and, eventually, in many of the labs. Commercial software and PC hardware got cheap, and the process accelerated. In the end, almost without anyone raising a voice of protest, the computing infrastructure of universities, which had been home-brewed, was replaced by store bought stuff.
So? Well it did have a bad result for universities. They became largely irrelevant to commercial software development. Indeed, to people like me who were observers of the dynamic from close-up, Lotus's tendency to hire academics to lead important development projects was, in part, their downfall. Software had moved on to an era where blending entrepreneurialism and a feel for the market with the ability to architect software was more important than what the most fashionable professor from MIT or Stanford was thinking. Was the end of home-brew computing a cause, or a symptom? I can't say for sure, but it all happened suspiciously around the same time. And the challenge remains: how can universities maintain relevance, especially at the postgraduate level, to the software industry when most of the commercially relevant cutting edge stuff is in commercial ventures? Has commercially relevant software become so complex and expensive to develop that universities can no longer undertake projects of that scope?
There may be an answer to that challenge in open source software. Open source software is a mechanism where software is either created in the public domain, or put in the public domain. (Or some variation of public domain. This article is not meant as a full explanation of, much less a detailed comparison of the licensing arrangements for open source software, the intent of which are to maintain the openness of the source without enabling a commercial vendor to â€œhijackâ€� the product by coming up with a more-attractive variant, among other objectives of such licenses.) This type of software is typically available in source form for free downloading from the Internet. There are also, typically, one or more commercial distributions of the software as well. These commercial distributions are meant to provide the comfort-level and convenience of buying such software in a box, with a manual, and a tech support phone number, plus additional services. VARs have also picked up the gauntlet on open source software by providing systems integration and support services for systems using open source software. Three examples of open source software are Linux, a flavor of UNIX, the Netscape browser, and the Apache HTTP server.
All of this must sound like a really weird idea to telephony people who spend more time than most figuring out ways to erect patent protection barriers around their products, much less ever consider releasing source code for free on the Internet. What makes open source software so interesting is that the Internet seems to have made it possible. It has been proven that dozens to hundreds of people can collaborate on a software system, often without detailed central control over who is doing what, and useful results are produced. One effect is that universities now have the ability to teach students about operating systems by having them use and modify an open source system like Linux. But this is more than a free and limitless source of specimens for dissection in the university software lab. Linux is commercially relevant, and is making serious market headway in server systems, especially Web servers, so students can experiment in making improvements to something that is used in the real world. The choice these days seems to be NT, Solaris, or Linux. For simple, budget-constrained Web sites, the answer is surprisingly often Linux.
This is possible because Web serving is not a trip to the moon. A Web server serves up pieces of hypertext documents when asked, which makes it a fancy type of file server. Some basic performance requirements need to be met, but most servers communicate with relatively low-speed connections to the Internet, or are not engaged in applications where absolute performance is required. If you are not shopping for the fastest server, you are probably not going to stretch the capabilities of the OS. If you are not putting hundreds of thousands of dollars into developing an interactive system that uses OS features for linking Web pages to software components, you will probably be happy with a Linux-based solution running Apache. That is to say, in almost all the cases where a hand-me-down or brand-X server can be used for simple web serving, so can Linux.
But what about everything else? What about user interface systems, which can take the efforts of dozens of coders years to create? What about the thousands of Win32 calls that form the programmer's interface to Windows? Surely Linux can't duplicate them. No, Linux can't. But those thousands of system calls and calls into other subsystems can be divided into three groups: Grotty old calls that need to be there so programmers that can't be bothered to update their software don't complain; calls that do really useful things; and calls that never should have seen the light of day. Linux can do with fewer of the useless calls, in part because it is a younger system, and in part because there is no product manager at Linux, Inc. (there being no Linux, Inc.) that can be cowed into keeping old baggage around, nor stampeded into the latest API fad. Aesthetically, the difference between Linux and NT (as it was between UNIX and VMS) is exemplified in the way Linux takes a more uniform view of the world, where all drives on the system fit into one file hierarchy, where i/o devices and files have a uniform interface that makes it easy to â€œpourâ€� data from one container into another.
What will happen as systems mature and are transformed by future technologies? This is where the comparison gets really interesting. A proprietary system, so called because its creator owns all rights to it, should be flexible, and responsive to the market. This is illustrated by how quickly Microsoft climbed to a parity position and then some relative to Netscape, and then went on to begin migrating the whole world of Windows user interface to a Web paradigm.
As it grows, open source software faces the following challenges:
Can open source software compete? An interesting question. Some software, like Netscape's browser, have a marketing department and engineers to steer the product in response to the market and implement high-priority features. Linux depends on a community effort, and yet it is doing quite well competing against other operating systems.
Can open source software find a channel? The open source software that started out commercial already has a channel, and will continue to for supported releases. The cost of some types of software has fallen so low, that supported releases of open source software will not fall below the threshold for retailers to carry it. But open source software was enabled by the Internet, and the Internet itself has provided an adequate channel. If systems integrators take up using open source software in serious volume, that will show conclusively that open source software can thrive without traditional marketing programs and channels.
Can open source software innovate? Can open source software make big technological transitions? Windows, for all the criticisms leveled against it, especially by open source partisans, has incorporated innovations at a rapid pace: messaging, telephony, and now Internet tools. Can Linux grow a Web-oriented user interface? Can an unmanaged collection of coders make the right design decisions? This may become the test of renewed relevance of academic research in software.
There has been a lot of chest thumping among open source enthusiasts about open source software being the cure for the Microsoft monoculture in PC OSs. I can see great potential for government sponsored communitarianism in cajoling commercial software developers to donate resources for Linux and other open source development. Al Gore could do a lot worse than to tout open source software in his efforts to bring the Internet to schools and libraries. Demonstration projects in which schools are automated with donated PCs and Linux servers, and government-funded development of Internet-based training courses in Linux internals are two examples of simple, inexpensive things that are helpful and that do not inject the government into high tech economics or policy. Done right, such government leadership is an expression of the positive role of government in technology, and rather less dubious than treating Windows 98 as the moral equivalent of passing out smokes in the schoolyard.
Is open source software a threat to Microsoft? It is not a realistic threat to Microsoft's business in any way that would change the value of Microsoft shares. The only thing that could change that would be if systems integrators took up Linux enthusiastically in creating large-scale server environments. The odds of this happening quickly are low, since many systems integrators simply do not have the right attitude to succeed with open source software and be accepted by the open source software community. But much to Microsoft's credit, they are able to feel the heat from even small challenges. So far, they have no reason to respond, since Netscape's move to open source was only a last ditch defense to ensure survivability among a community that would respond with fierce loyalty to an open source browser. But if the advantages of open source software accumulate, one thing that open source enthusiasts should never count out is an open source response from Microsoft.
And in telephony? Let's say you are a second-tier voice processing card maker. Let's say you are bummed-out about the fact that TAPI has made nary a dent in Dialogic's dominance in voice processing APIs and appears set to make their S.100 suite the next generation standard in telephony server software. Let's say you have your own APIs and middleware, equivalent in function to many aspects of TAPI and S.100. Let's say you make little or no money licensing this software. What would you stand to lose by making your telephony middleware the open source telephony subsystem for Linux? And what might you stand to gain?
Copyright 1998 Zigurd Mednieks. May be reproduced and redistributed with attribution and this notice intact.