On Thursday 04 August 2005 06:24 pm, Roger Neth Jr wrote: > Hello, I have been reading this thread as of some interest that I have read > some stuff on rings. > Are you able to elaborate on C programming and Unix incompatible with x86.
Not with x86, but with x86 segmentation. Note that segments and rings are almost totally removed from AMD native 64-bit mode, although they remain in 32-bit modes. The natural way to use segments (which leads naturally to 2-component addresses) is to assign each object to its own segment and then pass segment descriptor IDs as arguments. This really goes against the C model of addressing. The C model of addressing (a single linear address space) is compatible with a large number of architectures and has simply won out over segmented address spaces except in some very specialized applications. Intel had a chip (the 960mp?) used in the military that used segmented addressing, but I don't think it has been used anywhere else but possibly in HP printers years ago, and (I think) without the segmentation). The 960mp was a *very* complicated chip and I shuddered to think of the learning curve for that chip when I read the 960mp architecture manuals. > Does this mean that other architectures such as Alpha, SGI and Sparc more > compatible? I would think so, although I know next to nothing about the details of the architectures of these chips as a result of lack of hands-on experience with them.