Linked by Eugenia Loli-Queru on Fri 17th Aug 2007 06:06 UTC, submitted by sharkscott
IBM 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.
Permalink for comment 264277
To read all comments associated with this story, please click here.
RE[2]: IBM summary
by butters on Sat 18th Aug 2007 00:34 UTC in reply to "RE: IBM summary"
butters
Member since:
2005-07-08

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.

Reply Parent Bookmark Score: 13