Systems Research Is Dead?
Manoj writes "Rob Pike of Bell Labs (Yes, that [Rob Pike]) says that systems
software research is irrelevant. At a time when computing is almost the definition of innovation, research in both software and hardware at universities and much of industry is becoming insular, ossified, and irrelevant. Where is innovation? At Microsoft, mostly. Exercise: compare MS software in 1990 vs MS software today. He states that Microsoft has been working hard, and that on many (not all) dimensions, their products are superior technically. Linux is the hot new thing, but it is merely a copy of the same old stuff. And anyway, the exciting thing about Linux is the development model, and researchers contributed little to that. He states that the excitement, the art, of systems research is gone. "
Mr. Pike is just upset because his beloved innovative Plan 9 is being completely and totally eclipsed by Unix-like operating systems like Linux and FreeBSD.
He bemoans the fact that computer scientists still tend to use such crufty old tools as Unix, Emacs, and TeX, despite the fact that these tools are still very capable and that they grow more capable every day. The Novelty that Mr. Pike is so obsessed with is only useful when it constitutes an improvement over what is currently in use.
Perhaps the most absurd part of Mr. Pike's lament was his comments on Standards. He states that "With so much externally imposed structure, there is little slop left for novelty." Clearly, however this is both untrue and unfair. Mr. Pike could easily create his own little completely novel computer world. He undoubtedly has the talents. However, unless this new system allows the end user to do the things that they traditionally use their computer for what's the point? Why would I want an innovative new system that can't send email or surf the web (or run Emacs for that matter)? I wouldn't, no matter how novel it might be.
More importantly it is certainly possible to innovate within the standards that he complains about. Napster, Gnutella, and FreeNet are all innovative ways of sharing files, yet all of them rely on existing standards. Mr. Pike also totally belittles the success of scripting languages like Perl, Tcl, and Python. I certainly don't use C or C++ on my new development projects. These languages all represent innovation, but they probably aren't available for Plan 9, so they don't count.
If Plan 9 were in Linux's position you can bet that Mr. Pike would be singing a different tune, even if all Plan 9 were being used for was to run Emacs, TeX, and Netscape.
Here are some random features I want to see in an operating system.
- You turn on the computer and it works instantly.
- Whenever you feel like stopping you turn off the computer.
- You never have to save your files, you always work with up-to-date information
- You never have to drag or resize a window
- My mom can store her weaving project ideas on it without any help
- You never have to remember obscure names, everything is built out of a small set of simple blocks
- You never think about "connecting to the internet", you just work with data that happens to be located somewhere else
- The kernel continually decides how to configure itself for maximum efficiency for the task at hand
- There are never any library problems -- library specifications are written in a formal mathematical language, which can be verified against the library code
nojwFirst of all, MacOS X Server has been shipping for, I believe, a year now. If you regard Jobs as being Apple, then Jobs has been shipping preemptive multitasking since before OS/2 had a GUI (which is before Windows had preemptive multitasking too), and he's been working on bringing that back to Apple since '96.
Further, Apple hasn't delivered yet because they're more ambitious. They've gone through several attempts that simply didn't live up to their standards. If you want to look at places that innovate with backwards compatibility, look at Apple -- architecture change, no problem. Complete replacement of everything from the kernel to the userland, your old programs will still work. MacOS X is really innovative; it's more modern than UNIX, more stable than Windows NT or OS/2, and easier to use than anything.
--Matthew
Is there even one core product on the Microsoft line that is an original Microsoft innovation?
Of course there is. Bob.
--GnrcMan--
Get off your stupid soapbox about amiga!
;-) /usr/dict/linux.words' will do!
If anyone should Be on a Soapbox bragging about innovative OSes, it should Be someone who's talking about a high-caliBer OS. Behold the one true Multimedia Befitting OS. Benchmarking shows that this OS Belongs among the Best OSes in performance. Of course, I'm speaking on Behalf of...
darn I forgot!
Of course, the company essentially took a briBe by ditching their desktop platform. Now we have to scriBe on a emBedded version if we even want to Begin to use this OS.
(Please don't laBel me a BeOS fan, I just thought this was funny
It's amazing what: 'grep be
If it aint broke, then don't fix it!
As far as I'm concerned, the parts of Unix that Linux copies are for the most part, good.
I do think that Microsoft has come a long way with there line of products. This is a product of having a huge market share and constantly increasing it by adding new features and expanding into new markets. It's easy for large corporations to spend money making their products better (or at least making them look better).
Now it is time for Linux to show the power of a huge base of developers. Since the '90s Linux has had the power of many programmers putting there not nessecarily marketing skills into a product that they like and use.
It is apparent that Microsoft has put a lot of money into products when you look at what they did/do. They started with some existing technology and continuously morphed it with new technology. With lot's of money/market share they were willing to add new features without always ensuring that the existing features were refined well. Having a large developer population on the other hand means that you don't necessarily have as much capital, i.e. you're not as willing to invest in new 'features'. Concentration is focused on making things work smoothly. Ideas are not purchased, they are discovered/invented. Sure, Linux is almost Unix, but that sure was a good place to start.
It'll be great to see where the current Linux momentum takes us. Will there be a large new generation of coders, all willing to contribute to the open-source movement?
--
My biggest beef is that he treats Unix (and Linux) as if they were a static entity that never changes, but nothing could be further from the truth. Linux (and most Unices) have embraced the results of all new operating systems research. In fact, most research is actually done using Unix as a base, even thoutgh the technologies are by no means Unix-specific. SMP, threads, IPv6, journaling and global filesystems, real-time extensions, just to name a few.
The point is that Unix is that it is so modular that you can rip out entire pieces of it and replace it with something better. After all, at the core, what really is unix? Do you define it as the V7 system call set? Or do you define it as the implementation by a specific vendor?
What really gets my goat is the statement comparing MS software in 1990 to 2000. That's trivial because MS completely ignored the fruits of the research of the previous 20 years. It wasn't until the advent of NT that they even began to try to do things right. But even then they blew it by integrating the GUI into the core of their OS. Grrr...
The statement of "twenty years ago, students would be exposed many operating systems each with good and bad points" is pretty much bunk for the same reason. Over the past 20 years, Unix has tried to ammend the bad points, and incorporate much of the best. Is this a bad thing?
Lambasting gcc and emacs in favour of Visual Studio? I'll stick with my current tools, thank-you-very-much! VS may look pretty, but what does it really do that I haven't been able to do with my current tools for the past 10 years? Ok, except lock me into a one very specific platform that I cannot customize. And what's this cor to do with operating system research in the first place?
Statements like Linux's [GUI] interface isn't even as good as Windows are what really get my goat. Rob, what were you thinking when you wrote this? Surely you know that the only interaction with Linux is by system calls to the kernel. What is the GUI? Well, in most cases that would be a glob of X/Windows, and a desktop package running on top of that. But gee, take a look... People are developing all sorts of new interface paradigms that do not use X or look anything like what is currently being used. And where do the run? Yes! Linux and other Unix platforms.
Yeah, sure, I'll agree that the number of OS research breakthroughs has been dwindling on the past decade, but that's the be expected. Much of the easy, obvious, and general stuff has been well researched and documented. What's left is the really hard esoteric stuff; the stuff that most people just do not have enough background to understand.
Maybe Unix (or Windows, or the presentation to the user of each) has become like the automobile of the transportation industy. Most automobiles are pretty similar. Mostly they have four wheels and are powered by an internal combustion engine. In fact, in most general respects, they are remarkably similar to the machines produced at the turn of the century. Does this mean that they have reached the pinnacle of design? Or maybe it just means that the concept has reached a fundamentally usable point.
Now, let's take the automobile analogy to the next level. Most people can learn to drive a car in about an hour. Most cars will run for years with little to no service. Can the same be said of computers? Of course not. Does the user really care that billions of dollars of research have gone into making the car 10% more efficient? Not really.
Are computer's as usable by the general population? Hardly. I'd make a strong case that what is under the hood is pretty much irrelevant at this point if most people can't figure out how to take the machine out of the garage.
And this statement applies equally well regardless of whether you prefer Windows or Linux or anything else.
-p.
(sorry for the ramble... too busy even to be writing this...)
An object oriented operating system? Give me a break! MS is to enamored of VB. They just barely got a little bit of object based (not object oriented) stuff into VB6 that is really only a cover for ActiveX/COM stuff. Not object oriented at all. InProc COM as an attempt at an OO system? Sort of but not really. InProc grew out of DLL stuff which I was using back in 1985 or so when IBM/Microsoft were playing with OS/2. You can use it as part of an OO OS but it is certainly not the whole enchilda nor will it make it happen by itself.
Innovators? Like having VB6 a single thread for IDE, debugger, program which means any real error will blow the entire misbegotten thing out of the water? Don't make me laugh. MS has mainly been working out possibilities of DLLs and ActiveX plus some UI work. That is not exactly major innovation. Some of their component stuff is only beginning to catch up with things that have been part of CORBA world for some time now. They finally, for instance, came out with a publish and subscribe MOM. About freakin time.
Feedback? When you have to pay to even get a bug report filed and dealt with? Never mind actual feedback on features and design. Those go nowhere but, if you're very lucky, into Microsoft's list of things to maybe someday do with no credit to you and to charge you big bucks for. BAH.
Wrong.
It took me until mid-1987 to realize it, and until 1990 to be able to articulate it, but Computer Science was a terrible field to study if you were interested in writing software that people actually used. Of course, research that came out of these environments gave us UNIX and a lot of the fundimental networking technologies that are the basis of our world today. But these breakthroughs were the exceptions.
After 10 successful (and profitable) years in the consulting business, I firmly believe that the universities themselves are not the problem -- it's the classical CS pedagogy. There are ways to learn skills at universities that will help you produce usable software. But the best field of study is not likely to be CS for many of the reasons that Rob Pike suggested.
A lot of schools, including Rensselaer, are coming up with Information Technology curricula that blend the core science and engineering courses with business school courses, humanities courses, and fundimental programming and application architecture. You may laugh, but these IT curricula stand a much better chance of graduating productive software developers who can think outside the box than even the most reformed CS programs do.
--
Dave Aiello
-- Dave Aiello
Just because someone wrote a paper 13 years ago and people have spent the time since then implementing it in the real world and then going on to improve it, doesn't make it stagnant technology. In 1890, what if people said "Alexander Graham Bell wrote that paper on the telephone 13 years ago, it's stagnant technology"? Here it is, 125 years after those initial papers and a lab still bearing Bell's name is doing cutting edge R&D in the same field. The goal is supposed to be that you learn something from one idea, and use that knowledge to pose questions that the initial person could never dream of (like fiber optics and cell phones). People who claim that anything besides punch card storage is "stagnant" don't have a good enough imagination.
-B
Amiga was innovative. A new Amiga would not be. That's the very nature of innovation.
We worship innovation far too much. We need to ask ourselves, is it a worthwhile innovation.
(Though Amiga was, IMHO.)
The cake is a pie
Asking single line questions doesn't really expand anyones understanding of any subject.
To answer your question however:
Though I am not a "purist" as I make my living as a benevolent parasite (ie tech support/analyst) for Microsoft products, I really do enjoy an have a lot of respect for Linux.
Mr. Pike has some good points, but I don't think he is completely right in every respect. First off, stable operating systems are somewhat new (linux/freebsd being among them). For all its "innovation" I'd like to see windows 2000 still run after a hard drive crash (a friend just recently told me how his hard drive crashed but bsd kept going with the processes that were still in memory... my friends, THAT is innovation).
I would also say that the idea of customizability/infite choice in OS is an innovation that even microsoft is picking up. The fact that you can tweak almost everything about an OS is relatively new (thanks to the Open Source Model).
Sure, we have a long way to go, but I think the very open nature of Open Source/Free Software encourages even more research (especially in areas of application) instead of less. You have to consider that Linux (et al) have spent thier time getting the right things done first (like stability and versatility) and now are beginning to branch out.
Yes, GNOME/KDE may be copies of prexisting things, but the wonderful thing is that they have ability to be extended in a myriad of ways by anyone (hello, Eazel). These projects are perfect examples of people accomplishing feats that were previously dismissed. Now, with the education and experience gained from overcoming the hurdles to get these things running, they can now extend those capabilities as far as thier imaginations can take them. I, personally, can't wait to see the new developments in store for KDE and GNOME. I have a feeling that they are going to prove Mr. Pike wrong.
All these areas need a rethink. Too many decisions made in the early days of UNIX are now obsolete.
Academics for Profit:The day that academics got into bed with big industry, innovation died. If a concept isn't economically profitiable they aren't likely to funt the research. The other part of the problem is that mostly the same questions keep getting asked, over and over.
Take the Road Less Traveled:What we need is to ask new questions. Like: What if somone used a transfer protocol as a storage meduim? Instead of, Whats the best UI? One question has been beaten to death and the other may lead to new innovations. New questions like: What if data storage was perpetually dynamic? Would the information be siphoned off when accessed or copied as it passes by? Are there any advantages/disadvantages to this.
But like I said, if you were to pose that question in modern day academia as a research project they would scoff at you and you would likely be off on your own. Getting funding for a project that won't likely be profitiable for the college/university isn't too likely to float.
Teacher dillution:Not to mention the quality of CS professors. I actually had a course in sotware design taught by a guy who had written exactly one full blown program application (say >5000 lines of code as a criteria.) for a warehouse program while he was in school. He didn't have a clue.
Student dillution:Worse yet, since CS/CE has become a top ten major the quality of people going into these programs has gone from those who were truely interrested in computer science to those looking to make >40K upon graduation. Why would these guys hang around in a graduate program for four extra years when they could be making the big bucks?
Before you pick up the torch on my post, yes I understand there are the rare few who really try to do innovative work. Keep chuggin'. places like SlashDot and Sourceforge are our meeting places where we can meet and hopefully share ideas.
I couldn't agree more. Ive been writing Win32 for three years and I've yet to see a proper object. MFC does a poor and inefficient job of abstracting the morass of Win32 API functions in an OO way. The only truely OO Desktop OS API of which I'm aware is BeOS.
There are significant innovations - The DLL loading mechanism is pretty cool and fairly efficient but a nightmare to maintain. Win2K improves it but you still don't really know which lib is used where. COM under it all is a solid binary object solution. It's got a bad rap from the bad implementations (eg OLE) that have been built on it. There are some great ideas but all the great ideas in the world won't help if they aren't fully thought out. The MS research group has some cool stuff going on on their website but the only thing I've seen make it mainstream is MS Agent. And who cares about that?
It bugs me too that MS tries to sell VB as the way to build Win32 apps. You can't debug it. You don't know what all the ActiveX controls are doing and why they might generate an exception. Since VB5 you can't even fire an event on a seperate thread. Doesn't sound like much but it makes multithreading and object orientation in apps that use VB much more difficult than they should be.
But the worst thing is that whether or not what comes out of MS research is great stuff, the decision to build it into (or leave it out of) the OS is subsequently forced down the throats of all of us who don't have the luxury of running something else. MS doesn't need anybody's assurance that it's a good idea. they have their own agenda and features are not included or excluded solely on the basis of improving the lot of the user.
Pike is also right that the community needs to explore more unorthodox ideas and do research for the longer term. He is also right that startups suck energy from research.
But when it comes down to it, a lot of his complaints are colored by his particular environment. AT&T used to get monopoly profits, so they were wealthy and didn't have to give a damn about dealing with the business side of things. And they didn't. Well, welcome to the real world. Most researchers have had to figure out for decades how to balance real world demands with a research program. Pike should perhaps learn this if he wants to stay in this business.
Pike also used to work in the early days of systems research when there were a lot of low-hanging fruit. Well, systems research is a lot harder now because most of the easy stuff has been done. These days, any progress requires a lot of complex interdisciplinary skills and work: algorithms, systems, statistics, HCI, etc. You're lucky if you get out one good paper per year these days.
Yes, today's systems research is tedious, hard, long term, and not well funded. But there is more work to be done than ever, and a lot of really interesting and important work. And, you know what, it actually is happening. Maybe not where Pike is working, but at lots of other places.
If there is one complaint I would have is that the open source community isn't more innovative. A lot of open source projects are merely clones of existing systems, often existing open source systems. Open source developers could actually focus more on the future.
Why would anyone in a position of any prominence make such a ludicrous statement? There is always new work to be done, even if it is merely refining an old idea. The GPS we use these days is really a refined solution to the same problems that the backstaff and sextant tackled; however, it's much harder to screw up finding your location with a GPS than it is if you use a sextant.
Is this man a shill? Is he trying to say, "No, there's no need to go behind that door. Ignore the guys back there who are developing all sorts of new wonders that will be used later on to exploit you."
www.alarmist.org
Whenever someone claims that a field is essentially complete, they are nearly always wrong. Consider what people believed in the year 1900: Physics was considered practically a completed science -- and that was right before the explosion of modern physics.
If you read the interviews from the gnome guys, they admit to copying what's good about other people's designs. They say that first we need to get a good free software base that is consistent with the current market, and then we can start to innovate from that. So the current GNOME efforts have been just that - copying from others to get a good free software system to innovate from.
Engineering and the Ultimate
I think people here have under-estimated the degree to which true innovation (rather than better packaging) has been slowed in the field of operating systems.
But Pike does make a very important point about the current limitations on possible innovation: most of them are the result of the need to interoperate with existing standards. What is perhaps not very clear from his argument is that the constraint of existing standards is universal. And it does indeed limit innovation, at least at a given level of system complexity.
But how universal a constraint is this, really? I think the most telling example is that of biology. Life has been around for something like 3 billion years, and we now know that there has been exceedingly little innovation in some of its aspects; the basic principles (and most of the exact codes) of encoding genes into DNA, of transcribing them using RNA, and expressing them to do the real work of the organism are stunningly conserved. Almost no innovation there. And I could go on up the various levels of complexity and make similar arguments. But I won't, except to point out that in biology, innovation has almost always emerged in the form of additional (internal) complexity.
Getting back to the world of operating systems, then, Pike is possibly quite correct that the lowest layers of the operating system architecture are now essentially fossilized, permanent, and profoundly resistant to change. But the argument that this means that innovation now has no place is, I believe, profoundly wrong. Innovation will just have to occur at higher levels of abstraction.
So take one example: the idea of users and user authentication. This is a very basic concept, and one which at its heart seems to be very resistant to change. (But, interestingly, one where Plan Nine was conspicuously innovative; hmm...) But I think it should be very clear that there has been and will be lots of innovation in this aspect of operating systems. The problem, of course, is that users are no longer welded to the console of the machine, nor even to a local network including a particular machine, nor even to the same kind of machine on the same kind of network...and yet people do have this notion that they should be able to "log on" from anywhere with strong security and access to whatever resources they had both "there" and "here", wherever "here" is. As many slashdotters know, this gets pretty hairy pretty quickly, and there are many possible solutions that are being worked on. (And of course, the problem is not a completely novel one; the analogy is a bit rough, but the immune system is an interesting solution to a similar problem.)
In any case, there is lots of room for innovation for certain kinds of problems, and very little room for others. I think Pike really does know this, and was worrying more about how we can get funding and support to the people who are trying to solve the problems where there is still lots of room for innovation. Academia does not seem to be the answer, nor do most corporate cultures. But what is the answer?
Babar
I'm an unabashed Old Phart, from the CS generation previous to Rob Pike's. I read his diatribe some days ago, before it was publicized here, and it did ring a few bells. I know why he feels the way he does. I don't think the situation is as dire, or as permanent, as he paints it.
/. reported a week or three ago on a whole new OS that I didn't even know existed. Then there's BeOS, and other older ones like Sprite. F'r'eaven's sake, you can buy BeOS in stores now. Do you know how long it took for just a book on UNIX to come out? And it was crap, at that.
At the time Rob came to the Labs, and for some years before, the CS scene was being painted in pretty broad strokes. Minicomputers allowed the software boys to explore uncharted territory for cheap. Oh, they explored it before on mainframes, but it's hard to get a whole off-brand OS started when you need access to $3 million worth of hardware to do it. But even before then, there were lots of things out there. Most operating systems were not only crap, they were deliberately obfuscatory crap, as Ted Nelson was fond of pointing out at the time. Reacting against that we had ITS, TENEX and MULTICS on the mainframes, and on the new minis, UNIX. On more experimental hardware we had things like CM*, C.MMP, and the Culler Fried Chicken system in Santa Barbara.
The only one that survived is UNIX. It took the combined efforts of all of us just to keep ONE alternate OS alive.
Today, almost all our efforts are, as Rob points out, dedicated to extending what's already there. Yet the actual effort expended overall is huge. The scene is a LOT larger than it was.
Still, the main effort of systems research today could be characterized as "embrace and politicize." I think that's normal. I've remarked in other forums that science in general is in that sort of rut now. Most of the really big inventions of the 20th century, apart from the Internet, occurred in the first 50 years of the century.
Consider what we have to look forward to, what I think Rob wants to see:
. We should not be inventing protocols. Our applications should negotiate them as needed.
. TCP/IP is a point solution, good only across a certain range of bandwidths and error rates.
. Devices should exist in a hierarchy of protocols. The protocols spoken by backbone routers should be profoundly different from the protocols spoken by doorbells, cars, and home computers.
. Devices should not be given operating systems. They should discover and run one appropriate to their task, on their own.
. No device should have to both run a GUI and compute (Plan 9 demonstrated the feasibility of this view).
Broad strokes, people. Broad strokes.
At University, software researchers aren't particularly interested in the pettiness that Microsoft is. They don't care about writing usable GUIs and they don't care about how some API behaves at the top level.
At my University, our software researchers are interested in software problems such as the dining philosopher problem (threads|deadlock), the lying general problem(tcp/ip|data security), and also software solutions to the travelling salesman problem (component design).
None of them claim to be able to write an OS better than Microsoft, why would they care? And the problems that they're working on Microsoft has no desire to solve.
To say that Software Research is unecessary is a very bigoted, ego-centric view. To say that Software Research insofar as high-level OS design is concerned would be much more appropriate.
--
"A mind is a horrible thing to waste. But a mime...
It feels wonderful wasting those fsckers."
I currently have no clever signature witicism to add here.
Microsoft actually gets kind of bad rap when it comes to innovation, and they really don't get pegged for where they really do screw up.
I would say that Microsoft's goals for their software are very ambitious. Backward compatibility is given a lot of priority, which is what leads to the instability of Win/98. However, the miracle of Win/98 is that it works at all, considering the huge amount of hardware variability that it needs to work with.
Give Microsoft credit for attempting to creating an object-oriented operation system, while trying to maintain compatibility with the past. If you look at the internals, there is a considerable amount of power in their object methods.
Now the bad part: Microsoft is very ambitious is what they are trying to do. The trouble is that they have been poor at actually pulling it off. The unreliability of Windows is directly tied to over-complexity of what they are trying to pull off. I think if Microsoft actually slowed down a little bit and put a little more thought into what they're doing, instead of just "growing" the software and ending up with a rat's nest, they would be a lot better off.
On the hand, an argument can be made that Microsoft has succeeded because they don't dry-dock their software forever. They get it out into the world ASAP so they can get maximal amount of feedback (somewhat similar to "release early, release often"). Granted, releases have often been late (ala Linux, I might point out), but they get into the hands of Beta testers very quickly. And no one listens to their customer base like Microsoft.
I detest working with Microsoft's APIs because there is clearly so little engineering thought put into them. However, it's undeniable that there is a lot of energy and enthusiasm put into them, if you know what I mean. Microsoft is a very ambitious company when it comes to trying to include advanced technology in their products, with a friendly face. Far more than Apple, I might point out, who has taken 16 years to give us preemptive multitasking (technically, they still haven't, of course).
--
Sometimes it's best to just let stupid people be stupid.
With all due respect to Mr. Pike, I think this is a case of old-school mentality. Like when your parents claim that Elvis was the last real music, and complain that that horrible stuff on the radio "isn't really music, it's just a bunch of noise".
Systems software, in the sense of low level API's for controlling disk drives or performing DNS queries, has been solved... it's down to boring implementation and tiny incremental improvements. And I say Hooray for that. Do you want to write that stuff?
But as far as I'm concerned, systems software encompasses everything that supports the top level application. When you look at it that way, there are all sorts of exciting things going on with application servers, Java, object models, and so on.
All of that stuff will be just as critical for tomorrow's applications as the "Read Sector" API.
So I say development of systems software hasn't stagnated or died, it's just moved into new areas and new challenges. Like modern music. And I think that's a good thing.
-b
If I wanted a sig I would have filled in that stupid box.
For innovation to occur ideas must be had. It may well be the case that a lot of recent innovations have happened in the commercial sector. That is simply because the people who had the ideas were working in that sector.
There is nothing to stop people in the academic sector having ideas. In fact, if anything ideas in the university setting are more likely to be approved and pursued, as commercial value does not neccessarily have to be proven.
--
Listening for the sound of the coming rain...
BeOS
You can't tell me that BeOS is not INNOVATIVE on the SYSTEMS RESEARCH level.
Want another word? How's Crusoe? The Crusoe *systems software*, by what it does, is probably the most innovative thing out there right now.
Innovation, lets not forget, is the application of existing inventions to solve new problems. Innovation is not invention.
The wheel hasn't changed much in the last several thousand years either.
-- What you do today will cost you a day of your life.
Microsoft hasn't been innovated since it invented the browser (oops!), no the office suite (oops again!), the GUI, not hardly, the file server, not that one either, ah, e-mail, no, transaction services, nope, ... Ah the Word processor, nope, the spreedsheet, not! That would be Visacalc. How about the presentation application , oh ya Harvard Graphics. Media streamer, no, Real did it first. The mouse, no they didn't do that either. the PDA? Not even! What about DOS? Oh yea, bought that one too didn't they. Is there even one core product on the Microsoft line that is an original Microsoft innovation? How about the flight simulator? Maybe they did that first. No I think the Airforce and Atari beat them to it. So, in exactly what way are they innovative besides finding new ways to bastardize someone elses innovative ideas? And before you go claiming NT is some fresh new innovation, you might what to dig around a bit. I seem to recall that it is actually built on chunks of old VMS leftovers.
"He who sacrifices beauty for efficiency gets what he deserves." - Bernard Mickey Wrangler a.k.a. the Woodpecker
(Comments about seemingly squandered talent elided...)
I think there's likely a bit of both.
If Microsoft could turn the high-powered talent into products to make Gates a trillionaire, that would be a "good thing" (from his perspective, at least). And if Microsoft can deny others from benefiting from their talent, thus preserving the "hegemony," that is worth a lot too, at least to them.
If you're not part of the solution, you're part of the precipitate.
> But is Unix (or Linux) what it was ten years ago?
Linux and Unix have improved--but in incremental ways that don't introduce many new concepts to the user. That's Rob's point.
> Is Netscape?
No, Netscape sucks more now. With Mozilla we will hopefully finally have some progress. Jamie Zawinski has said he still uses a personally hacked Netscape 3.
> "Where is the innovation? Microsoft, mostly". 'nuff said.
"I'll just repeat Slashdot dogma, instead of considering that a creator of Unix might know something about systems innovation".
> Basically, his argument seems to be that if we don't completely change our software every few years, we're being stagnant
No, he's saying that we haven't appreciably changed our software at all.
Whereas, when I look around me at the Windows machines, I see integrated mail + contact list + calendar; good multimedia including streaming; input methods that allow entering Asian language text into any application; a debugger that let's you fix code on-the-fly. You can make academic claims about how this all originated somewhere else, or are merely composed of pieces that exist on Unix, but the fact remains that most Windows users have these things today, and most Unix users don't.
Now, to me a lot of these things still suck, but I can see that to many users, they are great improvements.
The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
I'll drink to that. Linux's supposed crowning achievement -- GNOME -- is very nice but deep down it's just a clone. It just looks prettier than what it's cloning. I got all excited about Evolution a few months ago; then I went and looked at it when Helix did the PR. I'm thinking, ``wow, look, Helix is porting Outlook to GNOME.''. Not exactly exciting or innovative.
I wondered in a thread back when the Beanie Awards were announced -- where's the category for best new thing in the open source world? All I see are reimplementations. Then again, I guess that's what GNU always did -- take existing stuff, rewrite it, and bloat it.
Firstly, what is a system? It is a definable entity, with a definable boundary.
Using this (loose but sufficient) definition, let us look at Linux and see how it fits in. First, of course, there's CODA. This allows you to have many computers as part of a single system, in a far more flexible way than, say, for NFS. How to get such a hybrid, networked system to work in any kind of efficient way? That's the research part.
Then, there's Beowulf. How to modify network drivers (and, if necessary, protocols) to create an efficient, high-performance distributed virtual machine? Again, sounds like research to me.
Is there more? Yes! Linux is the ideal platform to experiment with newer technologies, both where you have one physical machine and many processors, or where you have many machines networked. Because of the kernel's modular structure, you can add and remove different modules on-the-fly, testing ideas in a way that would be impossible under Windows.
Is there anything new that Linux has added, beyond the model? (Which it just borrowed from the FSF, anyway!) Yes! The aforementioned CODA is a good example. Hot-loading and hot-unloading of kernel modules is another. Linux' IPv6 stack was one of the very first for any OS, first appearing for the 2.0.20 kernel, as an extra patch.
Virtual consoles, one of the delights of many a Linux user, don't exist for DOS, Windows, or many flavours of Unix.
ReiserFS, a completely tree-based FS, is unique in it's architecture. No other FS works on that principle. Oh, did I mention it was for Linux?
I'm currently working on IGMPv3, for Linux, which will be one of the first v3 implementations for a mainstrean Unix. (I know of a few others, but not many. I doubt you'll see v3 supported in Solaris anytime in the next few weeks.)
What about other areas of Systems Research, though? Networking is dead, surely! Tell that to people working on robust Anycasting, PIMv2, queue shaping (such as CBQ, RED, ECN, RSVP, etc), any of the experimental IP protocols (IPv7 - IPv9, I think), robust MobileIP (even when ISPs are, themselves, mobile), etc.
Non-networked stuff? System Interfaces are a vital part of a system, and there's plenty of work going on there, with VR, zero-buton mice, eye-tracking, speech synthesis/recognition, OCR, etc.
Internally, there's work on automatic parallelizing of code, using Critical Path Analysis. Neural nets and genetic algorithms get a fair amount of attention, as do Artificial Life-forms. Then, there's always Quantum Computing, Optronics (such as the purely optical router), Chaos Computing (based on non-linear systems), low-temperature circuits (such as the Crusoe, which also deserves a mention as an intelligently adapting circuit, for it's ability to handle non-native instruction sets, natively), etc.
WRT kernels, we now have exokernels, microkernels, monolithic kernels and distributed kernels.
Now, you tell me that ExoPC is old-hat stuff!
Lastly, but by no means least, SETI@Home, distributed.net and Cosm are moving Systems Research forwards in a way that no other projects in the history of computing have even dreamed of. And this is supposed to be the end of the road?
(Only if "road" means a bumpy cart track, in a rickety wagon pushed by Ivory Tower professors and paid for by Big Businesses eager to NOT get results before their cash-cows were milked dry.)
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
Looking at the sixth slide, I don't see that hardware has advanced very much more than software. So what if a high-end workstation now has Fast Ethernet instead of Ethernet? That's hardly a major paradigm shift. Ditto increasing the amount of memory or upping the clock speed.
Hardware is just the same as in 1990, but faster. Software is just the same as in 1990, but slower.
-- Ed Avis ed@membled.com
Again, I must go in my usual rant: is there any reason why we insist in still writing operating systems in low-level programming languages like C (or C++, which I insist on considering as a low-level language)? It may be that low-level languages are better suited for writing the low-level stuff like the bootstrap code and the immediate hardware drivers (but even then, I don't see why a high-level language couldn't be extended with the appropriate functions to do the task), but some things in modern operating systems are definitely archaic.
Why is it for example that we still maintain the memory/filesystem dichotomy? It is about as absurd as requiring that a programmer have to handle the mainboard-level cache by hand. Why is it that whenever any program wants to save data, it must painstakingly convert it into a binary representation? Why is it that subroutines and programs still have to be distinguished? Why is it so painful to have reflexivity (e.g. for user-mode Linux you have to recompile a whole new kernel, the one already in place is not reflexive / reentrant in that sense)? Why is it that for security measures we rely on hardware control (aka MMU's) rather than formal invariance proofs? Why is it that our processors are so big and bloated and distribution / (asymmetric) multiprocessoring / clustering is so far behind?
For more information about what a high-level operating system might be, I refer to the Hurd (which is high-level, but at the cost of an abstraction inversion, because it is still written in C; notice that the Hurd Really Runs), to Erlang, which deserves to be better known because it's really impressive, and to the all-ambitious Tunes project.
ReiserFS may be pretty cool stuff, but it hasn't led to really new things. There is the offer that it may allow constructing data structures reasonably efficiently via "hordes of tiny files," but nobody is really using that yet, and the "research" side of that is already reasonably well-understood.
For there to be real research out of something like ReiserFS would require that people start studying different ways of constructing (say) DBMSes by using the abstractions provided by the new FS.
It isn't really systems research for someone to construct a Linux emulation system to run atop EROS; what would be innovative would be to see what kinds of cool things that may have nothing to do with UNIX as we know it can be done with it.
The problem that he doesn't comment on, which seems to be an important flip side to the notion that Microsoft is a source of innovation, is that, during the 1990s, Microsoft did an impressive job of buying up top researchers, virtually closing down major systems software research groups:
If people started doing some substantial work on exploring how to powerfully connect applications together using CORBA, that could represent some new work; unfortunately, the tools are still maturing, and the mappings to C and C++ kind of suck, at least for the purposes of generating dynamic applications.
Remember, Pike's criticisms aren't based on some vague notion that Linux is useless or bad; they are based on the notion that it's not particularly innovative, from a systems software research perspective.
If 90% of your effort represents dealing with the same old ordinary UNIX stuff, that would be largely familar to a UNIX hacker of the 1970s, then whatever you're doing can't be more than 10% innovative. Note his comment that around 90% of the effort in Plan 9, which was one of the more innovative systems of the last decade, represented efforts to honor external standards. That's a problem.
If you're not part of the solution, you're part of the precipitate.