> Firstly, I'm trying to understand what exactly characterizes a > procesor or an operating system as 32bit / 64 bit. I've read that it > means the "native word size" of a machine. But what exactly is that? > Register size? Address bus size? Anything else? I've always used the virtual address space as the basis of whether a chip is 32bit or 64bit. On the x86 PAE throws a wrinkle into that but the system is IMO still 32bit. > Secondly, I'm trying to understand what exactly does a sizeof(int) > depend on when we say it is "platform specific". Is it dependent of > compiler being 32bit / 64 bit? Or the OS being 32bit / 64 bit? Or the > processor being 32 / 64 bit? Can't answer that one as I don't write a lot of code outside of PHP/Perl. > Lastly, How are "sizes" of compiler / OS / processor inter related? > Here is my understanding. A 32 bit processor can only be running a 32 > bit OS. A 64 bit processor may run a 32 or a 64 bit OS. A 32 bit > compiler generates code only to be run on a 32 bit OS; ditto for 64 > bit. Is this right? Yes and no. A 32bit OS can only run 32bit apps. On 64bit it depends. The x86-64/amd64 running a 64bit OS can run 64 or 32bit apps with the right libraries. The IA64(Itanium) does not have an option to run 32bit apps. Sparc is whole another ballgame altogether as they have 32bit, 64bit, and 64/32bit. -- Drew "Nothing in life is to be feared. It is only to be understood." --Marie Curie -- To unsubscribe from this list: send the line "unsubscribe linux-newbie" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.linux-learn.org/faqs