Anyone had any real experience on 64-bit machines?
Posted: Mon Oct 31, 2005 10:16 pm
Has anyone had a development kernel running on an Intel processor with EM64T or an Athlon 64?
In your experience, was it worth it? Are there annoying or severe limitations that make things especially difficult compared to 32-bit mode?
My development plan is to compile a 64-bit version of an embedded systems library, like RedHat Newlib, and get a sucky monolithic kernel running ASAP with user program support so I can learn as much as possible in the least amount of time, then from that experience properly design a kernel. I favour microkernels, although they are hard to design and get working in a reasonable time frame, so I may end up with a properly designed monolithic kernel instead like BSD or Linux. I would be happy with that. I could then work on a microkernel and port my TCP/IP networking stack, file systems, etc to the microkernel, so it's like incremental development and problems arising are likely to be in the microkernel and not in new (and not thoroughly tested) user mode support code like drivers, file systems and networking developed alongside the microkernel. Retro-fitting is not that difficult as we have seen with the system emulation that Mach is capable of in Apple Mac OS X, with its BSD usermode environment.
Are there any experienced 64-bit programmers here that can give a few words of advice on what to watch out for when writing 64-bit code? (What would warn options on compilers warn about when told to look for code that is not 64-bit clean?)
One thing I thought about was simply the size of pointers in long mode (64-bits of course) and maybe the C compiler would cause int types to be 64-bits instead of 32. (Or maybe not, because long longs are already 64-bits in most cases).
Thanks for your input.
In your experience, was it worth it? Are there annoying or severe limitations that make things especially difficult compared to 32-bit mode?
My development plan is to compile a 64-bit version of an embedded systems library, like RedHat Newlib, and get a sucky monolithic kernel running ASAP with user program support so I can learn as much as possible in the least amount of time, then from that experience properly design a kernel. I favour microkernels, although they are hard to design and get working in a reasonable time frame, so I may end up with a properly designed monolithic kernel instead like BSD or Linux. I would be happy with that. I could then work on a microkernel and port my TCP/IP networking stack, file systems, etc to the microkernel, so it's like incremental development and problems arising are likely to be in the microkernel and not in new (and not thoroughly tested) user mode support code like drivers, file systems and networking developed alongside the microkernel. Retro-fitting is not that difficult as we have seen with the system emulation that Mach is capable of in Apple Mac OS X, with its BSD usermode environment.
Are there any experienced 64-bit programmers here that can give a few words of advice on what to watch out for when writing 64-bit code? (What would warn options on compilers warn about when told to look for code that is not 64-bit clean?)
One thing I thought about was simply the size of pointers in long mode (64-bits of course) and maybe the C compiler would cause int types to be 64-bits instead of 32. (Or maybe not, because long longs are already 64-bits in most cases).
Thanks for your input.