An interview with IBM’s Vice President of Open Source and Standards about their Open Source Strategy, the recent pledge of its patents for more than 150 open software standards, his take on the ODF vs. XML issue, and much more in The LXer Interview of Bob Sutor.
I think you mean “ODF vs. OOXML issue”—I’m pretty sure XML as a spec isn’t in too much dispute here!
JSON FTW!
You have to respect IBM. They started way back, long before the dawn of the computer, but they are a dominant force in the computer world. That speaks volumes about their flexibility.
Also, even though they failed to see the rise in dominance of the PC, and especially the rise in significance of Microsoft operating systems, they found a way to push the hardware back to significance. By supporting a smorgasborg of good OS choices, they shift the focus back to themselves. But their support for free software doesn’t only help their customers–it benefits all users.
I’ll respect them when their support of “open source” also includes AIX being open source. AIX is the last barrier to the free “*NIX-like” OS world.
I’ve never heard that IBM is going to open source AIX. It will never be because AIX’s copyright depends to many party. It already behind Solaris which has been open source. SUN will be the leader in open source community.
I’ve never heard that IBM is going to open source AIX. It will never be because AIX’s copyright depends to many party.
Sun had the same issues to work through, and they managed to do it. The truth is IBM just doesn’t want to do all the hard work Sun had to.
Part of understanding open source is knowing its strengths and weaknesses. So for the ninth or tenth time, AIX doesn’t have the ingredients to be a successful open source project. You don’t want to hack this code. You certainly don’t want to debug this code. Trust me, I speak from experience.
Don’t get me wrong, AIX is a feature-rich, high-performance, bulletproof OS that integrates tightly with the most advanced SMP hardware on the market. But then again, it doesn’t run on commodity hardware or even on emulated hardware. If you don’t have a spare System P LPAR laying around, then you have no way of playing with AIX. This makes for a very useless free software project.
Furthermore, AIX has unique design considerations that make it unsuitable for distributed development. There’s a patch being discussed on LKML that performs binary patching of kernel code at runtime in order to implement zero-impact static trace hooks for SystemTap. This is the sort of stuff that has a very slow path into the Linux kernel because it’s insanely hard to debug problems caused by runtime binary patching.
This is sort of technique that AIX kernel developers love to use. There’s no end to the problems that can be solved by patching in some autogenerated binary code and playing games with the kernel linker. We’re talking about major cutting and pasting here, not just a clever hack to eliminate a test-and-jump instruction.
Then we get to the AIX VMM, which is like a microkernel that manages memory instead of processes and lives together with the rest of the kernel. The VMM has its tentacles in everything the kernel does. Besides the VMM itself and some other components like KDB, the AIX kernel lives in virtual memory that is pageable by default.
So unlike any other UNIX implementation, AIX has page faults in the kernel. Hit a page fault with interrupts disabled, and the system hangs. This is a rite of passage for third-party driver developers. Hit a page fault in a hot path, and performance goes to crap. If anything goes wrong with the VMM, not only does the system crash, but the crash dump will likely fail.
AIX only compiles with the VisualAge XLC compiler. GCC won’t even parse a good chunk of it. The RCS, called CMVC, doesn’t support crazy new ideas like branches. If someone has a source file checked out, you have to ask them nicely when they’ll be finished with it. There’s no way to build your changes against any other changes that have been made to the latest backing tree. But if your change causes a build break, it’s your fault.
AIX is a case study in what happens to an operating system when there is no attempt to mitigate code complexity. It only works because IBM has a relatively small and tight group of genius kernel hackers and a ridiculously massive test environment. I respect IBM for having enough sense not to open source AIX. It won’t work as an open source project. It’s hardly sustainable as it is.
Sounds awesome… you can certainly do a lot of interesting things if you control everything from the microprocessor to the OS, including the compiler toolchain. You’d think with all the geniuses at IBM, they could afford a resonable source control system. Perhaps they could even just buy one… perforce, for instance. Or Rational, which apparently has its own.
Are you saying that linux isn’t pageable? I thought that support was added to some degree with 2.6. The page fault in kernel space is a bane of Windows Driver development as well (ever seen the IRQL_NOT_LESS_OR_EQUAL blue screen? It’s the most common one and 99% of the time it’s from accessing paged out code).
In a sense, Windows has similarities to AIX in terms of its inability to be open-sourced. For instance, Pretzold goes into some detail in Beautiful Code on the way the BitBlt graphics operation is performed in Windows: the function uses (or at least used to use) its parameters to autogenerate code on the stack which it would then execute per-pixel to achieve the image transfer and transformation. Apparently this kind of runtime codegen in graphics operations is really common, but I would be utterly unsuprised if it were part of the RPC mechanism as well. The point of this discussion is that there are some things that Open Source cannot do for reasons of distributable architecture and organization. It doesn’t help that Linus is conservative in certain ways and is ideosyncratic in his likes and dislikes (a kgdb would go a long way in increasing the aggresiveness of things people can do in the linux kernel). It would be nice if the kernel and gcc communities would interact more positively to allow for some crazy IBM-esque optimizations.
Thanks for your post, though. You’ve given some new insight into how IBM does its kernel engineering. Are you still with that team?
As informative as your post was, I still think it’s somewhat hypocritical of IBM to criticise people like Sun who open sourced their OS, but won’t do so with their own.
If they really wanted to open source AIX, they could. Sun had to go through a long legal process to establish their rights, even with third parties involved, and they managed to get it done. So that excuse doesn’t hold with me.
Your arguments about its desirability as an OS are definitely convincing though, and reflect the comments I’ve heard over the years as well from AS/400 to newer systems.
Thanks for the post!
Open source and standards allows IBM to profit no matter what software solutions a customer chooses. For IBM, FOSS is a hedge bet. If their home-grown solutions stop selling, they’d much rather customers adopt open solutions than competing proprietary solutions.
The most important thing for IBM is that the applications that customers want integrate nicely with IBM’s hardware and middleware. Consider SOA, for example. IBM loves the idea that a customer can buy a dozen proprietary applications, and they can still sell them the underlying platform that ties them all together.
IBM likes open source because it creates the commonality that they need to jack up a customer’s IT environment and stick IBM technology underneath. Maybe a customer will start out with Linux on System X. As they grow, they can move to Linux on P. If they need more reliability, switch them to AIX. If they need more capacity, then they can’t beat Linux on Z.
Keep the applications, replace the platform. That’s what open source and standards brings to the table for IBM.
I found your posts even more interesting than the article, butters. Thanks!