On Apr 6, 2006, at 10:12 PM, Glenn L. Austin wrote: > It's strange that you say that, since Mach was designed to run on > CISC hardware XNU, the Mac OS X kernel, is a hybrid. Mac OS X has its early roots in NeXT on Motorola 68K, Sun SPARC, and HP PA-RISC processors. NeXT and Sun Microsystems developed OpenStep, the API spec on which NeXT's version of Mach is based. The PowerPC instruction set consists of 32-bit fixed-width opcodes. Each opcode is exactly four bytes long and can only be executed by the processor if the opcode is word-aligned in memory. The PowerPC is a 64-bit design with a 32-bit subset. The PowerPC has thirty-two 32-bit general-purpose registers (r0-r31) and 64-bit general-purpose registers that still use 32-bit opcodes, thirty-two 64-bit floating-point registers (f0-f31), a link register (lr), a count register (ctr), and a handful of other registers for tracking things like branch conditions, integer overflows, and various machine state flags. Unlike IA32, PowerPC does not have a call or jmp instruction. Execution flow is controlled by one of the many branch instructions. Take a good look at your Darwin source code. XNU is RISC from the ground up. Unfortunately, Apple has locked up the kernel source code to Darwin x86 since Darwin 8.4 so you can no longer "roll your own". It became apparent that the only reason Apple ever released it in the first place was to get some free R&D from the open source community. The moral to that story is if you're an open source developer, never trust anything from a proprietary vendor. They take but they don't give back. -- Chris ------------------------- PGP Key: http://astcomm.net/~chris/PGP_Public_Key/ -------------------------