Linked by Thom Holwerda on Wed 22nd Aug 2007 17:52 UTC, submitted by Dan Warne
Thread beginning with comment 265120
To view parent comment, click here.
To read all comments associated with this story, please click here.
To view parent comment, click here.
To read all comments associated with this story, please click here.





Member since:
2005-07-08
I've worked on both free and proprietary *nix kernels, and I find that the perceived difference in robustness is 80% business model and only 20% technical. When a big customers says he wants a robust OS, he means he wants to be able to yell at an actual kernel engineer over the phone when something goes wrong. He wants an emergency team working in shifts around the clock to produce a custom fix to address the problem. He wants compensatory damages if his downtime exceeds a contractual limit.
Part of the difference is testing. Traditional UNIX systems are put through rigorous in-house testing for functional verification, stability, application compatibility, and performance regressions. These test environments can consist of thousands of machines and hundreds of thousands of test cases.
In fact, I would say that until recently, robustness was almost entirely a feature of marketing, service, and quality assurance rather than of the software itself. It was only when Linux began to exert upward pressure from the bottom the traditional UNIX market that big UNIX vendors began to allocate RAS line items for the development teams.
There are definitely areas where Linux is trailing technically. For example, until very recently Linux didn't have a viable kernel crash dump capability. However, the kdump approach, based on kexec and kernel relocation, is a considerably more advanced design than any of the traditional UNIX implementations. It could even be used to implement (quite elegantly) the very latest ideas in kernel data capture, such as the Live Dump capability in AIX 6.
Tracing is another area where Linux is behind, but this is definitely a development hot-spot. Linux, Solaris, and other free software systems have an inherent advantage in tracing. AIX has a me-too implementation of dynamic tracing for AIX 6 called ProbeVue which isn't very useful if you don't have access to the kernel sources. It's like using a debugger without the source code. Where do you set breakpoints? Where do you insert probes? It's a black box.
The biggest challenge of all for proprietary UNIX implementations like AIX and HP-UX is the lack of lead user adoption. The typical users of these platforms are very conservative. They often trail development by 1-3 years. Features that work in the test environment often blow up in more diverse configurations in the field. Developers may only start to see external bug reports from features introduced in release N while they are working on release N+3. It's hard to maintain quality with such a lag in customer feedback.
The most powerful aspect of the modern Linux development model is that commercial vendors invest in the most valuable features. That means that RAS capabilities receive large contributions from big enterprise vendors. For example, IBM is a leading contributor to both kdump and SystemTap. And mobile capabilities are getting huge boosts from companies like Intel.
Linus is there to babysit his creation, which has taken on a life of it's own. It's hard to name a major computer-related vendor that doesn't have some sort of vested interest in Linux. Even Microsoft realizes that they need to get in on the Linux game. Linux has become an "if you can't beat 'em, join 'em" proposition for even the most reluctant companies. It's would be very difficult to argue that the golden age of Linux is behind us. The best days are yet to come.
Or as GregKH would joke, world domination is proceeding according to plan.