> Are you speculating or do you have some substance? > You seem to know a bit about AIX kernel code?
He's not wrong about AIX history - it has had parts of its kernel pageable for a long time. But that is less important now than it was once, esp. since CPUs are so fast, and disks, while large capacity, haven't kept up in terms of speed increases. But I don't know that there's reason to believe that IBM would dump the AIX kernel, although they might well want to simplify it. As a matter of history, while most other Unix implementations didn't have pageable kernels, they did have a vestige of swapping, which let one particular per-process kernel data structure be written out to swap when the process was seriously idle. The original division struct proc and struct user dates back to before demand paging, when entire processes were swapped out (no V-to-P translation and memory management hardware back then). At that time, struct proc was an array (later, other structures to make it dynamically resizable; but originally one had to recompile some kernel object files to tune) of all the per-process data that had to be in memory at all times, with a pointer to a struct user; struct user for the current process could be accessed via "struct user u" (but not by interrupt handlers, which didn't have process context), while others would be elsewhere in memory or written off to swap. I'd written a user-space implementation of "fuser" for an SVR2 based system; demand paging at that time, but still with the ability to swap out the user struct. It had to look read the proc array in from /dev/kmem, and then look at each one and try to track down whether the user struct for that process was in memory or on disk, so that it could fetch it to follow the file descriptors to the file table and then to the inode table, to eventually see if the inode matched that of the file whose use one wanted to check on. At some point (I don't recall if SunOS 4.x kept struct user in RAM or swapped it out), SunOS/Solaris went to keeping the user struct in RAM at all times. Probably as memory got bigger and cheaper, it wasn't worth the bother of swapping out the user struct anymore, and gave better performance not to. So now, struct user is entirely within struct proc on Solaris. (And don't even think about systems that used a microkernel, which could have done even stranger things. Not just Mach-based, either. Remember Apollo Domain OS? Or Sun's experimental "Spring" OS, from which came the doors mechanism? Or Chorus, which Sun owned for awhile, before releasing the parts they owned? (That's changed hands a couple of times since then.)) So the history part rings true enough. But since AIX as we know it now is only on Power CPUs, it's not like IBM needs all those x86 drivers from BSD or Linux anyway. So replacing their kernel with something else (with all the work required to keep binary application compatibility and performance) may well not make sense. -- This message posted from opensolaris.org _______________________________________________ opensolaris-discuss mailing list opensolaris-discuss@opensolaris.org