|
Softpanorama |
May the source be with you, but remember the KISS principle ;-)
Softpanorama Search
|
There are two types of software:
There were some innovative open source projects. The best examples is TeX and BSD TCP/IP stack. But all-in all open source in general and GNU in particular tends to concentrate on reimplementation of preexisting software to make is more accessible and Unix orthodoxy. And that's not bad -- the idea of GNU is to give a free decent Unix-like system to everybody and this is a very noble idea.
Michael Swaine in his paper webreview.com - Open Source and Originality by explained the problem very well:
But much as I believe in the virtue of Open Source, the thought did creep in: here's some more imitation.
I thought: Putting a pretty GUI face on Linux is a worthwhile endeavor, but like most of the work done under the Open Source or Free Software banner, it doesn't look like it will represent a lot of original invention. The projects that launched Free Software and Open Source were royalty-free re-implementations of Unix and the Unix kernel, respectively. Free Software/Open Source is, judging by the projects so far, chiefly about liberating existing software rather than creating something startlingly new.
Rob Pike of Bell Laboratories in his reflections on the state of systems software research, drawing on his own experiences working on Plan 9 and Inferno (Systems Software Research is Irrelevant) characterize Linux as a proof of his sad thesis. And he really know the field he is talking about:
Where is the Innovation?
Microsoft, mostly. Exercise: Compare 1990 Microsoft software with 2000.
If you claim that's not innovation, but copying, I reply that Java is to C++ as Windows is to the Macintosh: an industrial response to an interesting but technically flawed piece of systems software.
If systems research was relevant, we'd see new operating systems and new languages making inroads into the industry, the way we did in the '70s and '80s.
Instead, we see a thriving software industry that largely ignores research, and a research community that writes papers rather than software.
Linux
Innovation? New? No, it's just another copy of the same old stuff.
OLD stuff. Compare program development on Linux with Microsoft Visual Studio or one of the IBM Java/Web toolkits.
Linux's success may indeed be the single strongest argument for my thesis: The excitement generated by a clone of a decades-old operating system demonstrates the void that the systems software research community has failed to fill.
Besides, Linux's cleverness is not in the software, but in the development model, hardly a triumph of academic CS (especially software engineering) by any measure.
What is Systems Research these days?
Web caches, Web servers, file systems, network packet delays, all that stuff. Performance, peripherals, and applications, but not kernels or even user-level applications.
Mostly, though, it's just a lot of measurement, a misinterpretation and misapplication of the scientific method.
Too much phenomenology: invention has been replaced by observation. Today we see papers comparing interrupt latency on Linux vs. Windows. They may be interesting, they may even be relevant, but they aren't research.
In a misguided attempt to seem scientific, there's too much measurement: performance minutiae and bad charts.
By contrast, a new language or OS can make the machine feel different, give excitement, novelty. But today that's done by a cool Web site or a higher CPU clock rate or some cute little device that should be a computer but isn't.
The art is gone.
But art is not science, and that's part of the point. Systems research cannot be just science; there must be engineering, design, and art.
What Happened?
A lot of things:
PC
Hardware became cheap, and cheap hardware became good. Eventually, if it didn't run on a PC, it didn't matter because the average, mean, median, and mode computer was a PC.
Even into the 1980s, much systems work revolved around new architectures (RISC, iAPX/432, Lisp Machines). No more. A major source of interesting problems and, perhaps, interesting solutions is gone.
Much systems work also revolved around making stuff work across architectures: portability. But when hardware's all the same, it's a non-issue.
Plan 9 may be the most portable operating system in the world. We're about to do a new release, for the PC only. (For old time's sake, we'll include source for other architectures, but expect almost no one will use it.)
And that's just the PC as hardware; as software, it's the same sort of story.
Microsoft
Enough has been said about this topic. (Although people will continue to say lots more.)
Microsoft is an easy target, but it's a scapegoat, not the real source of difficulty.
Details to follow.
Web
The Web happened in the early 1990s and it surprised the computer science community as much as the commercial one.
It then came to dominate much of the discussion, but not to much effect. Business controls it. (The Web came from physicists and prospered in industry.)
Bruce Lindsay of IBM: HDLC ~= HTTP/HTML; 3270s have been replaced by Web browsers. (Compare with Visicalc and PC.)
Research has contributed little, despite a huge flow of papers on caches, proxies, server architectures, etc.
Standards
To be a viable computer system, one must honor a huge list of large, and often changing, standards: TCP/IP, HTTP, HTML, XML, CORBA, Unicode, POSIX, NFS, SMB, MIME, POP, IMAP, X, ...
A huge amount of work, but if you don't honor the standards, you're marginalized.
I estimate that 90-95% of the work in Plan 9 was directly or indirectly to honor externally imposed standards.
At another level, instruction architectures, buses, etc. have the same influence.
With so much externally imposed structure, there's little slop left for novelty.
Even worse, commercial companies that "own" standards, such as Microsoft and Cisco, deliberately make standards hard to comply with, to frustrate competition. Academia is a casualty.
Orthodoxy
Today's graduating PhDs use Unix, X, Emacs, and Tex. That's their world. It's often the only computing world they've ever used for technical work.
Twenty years ago, a student would have been exposed to a wide variety of operating systems, all with good and bad points.
New employees in our lab now bring their world with them, or expect it to be there when they arrive. That's reasonable, but there was a time when joining a new lab was a chance to explore new ways of working.
Narrowness of experience leads to narrowness of imagination.
The situation with languages is a little better -- many curricula include exposure to functional languages, etc. -- but there is also a language orthodoxy: C++ and Java.
In science, we reserve our highest honors for those who prove we were wrong. But in computer science...
Change of scale
With so many external constraints, and so many things already done, much of the interesting work requires effort on a large scale. Many person-years are required to write a modern, realistic system. That is beyond the scope of most university departments.
Also, the time scale is long: from design to final version can be five years. Again, that's beyond the scope of most grad students.
This means that industry tends to do the big, defining projects -- operating systems, infrastructure, etc. -- and small research groups must find smaller things to work on.
Three trends result:
- Don't build, measure. (Phenomenology, not new things.)
- Don't go for breadth, go for depth. (Microspecialization, not systems work.)
- Take an existing thing and tweak it.
I believe this is the main explanation of the SOSP curve.
Unix
New operating systems today tend to be just ways of reimplementing Unix. If they have a novel architecture -- and some do -- the first thing to build is the Unix emulation layer.
How can operating systems research be relevant when the resulting operating systems are all indistinguishable?
There was a claim in the late 1970s and early 1980s that Unix had killed operating systems research because no one would try anything else. At the time, I didn't believe it. Today, I grudgingly accept that the claim may be true (Microsoft notwithstanding).
A victim of its own success: portability led to ubiquity. That meant architecture didn't matter, so now there's only one.
Linux is the hot new thing... but it's just another Unix.
Linux -- the Academic Microsoft Windows
The holy trinity: Linux, gcc, and Netscape.
Of course, it's just another orthodoxy.
These have become icons not because of what they are, but because of what they are not: Microsoft.
But technically, they're not that hot. And Microsoft has been working hard, and I claim that on many (not all) dimensions, their corresponding products are superior technically. And they continue to improve.
Linux may fall into the Macintosh trap: smug isolation leading to (near) obsolescence.
Besides, systems research is doing little to advance the trinity
Copyright © 1996-2009 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. Submit comments This document is an industrial compilation designed and created exclusively for educational use and is placed under the copyright of the Open Content License(OPL). Site uses AdSense so you need to be aware of Google privacy policy. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.
Disclaimer: