Separate names with a comma.
Discussion in 'macOS' started by imranpundeer, Jan 30, 2009.
Isthere any 64 bit version of MAC OS exists for
10.3 (Panther)? and
I think Leopard supports 64-bit, but the only application that's 64-bit that has been released is Chess. (Maybe the same for Tiger?)
Snow Leopard is going to be the first operating system that is based on a 64-bit kernel and have 64-bit apps.
Look down on 64bit support, for 10.3 and 10.4
Leopard 64bit support
Leopard is a 32/64 bit hybrid. The kernel is 32 bit whilst Cocoa is 64 bit. There are many 64 bit apps for Leopard. Snow Leopard will have a 64 bit kernel (although will still run on 32 bit processors like the Core Duo).
what i mean by 64 bit OS is, if i take an interger variable in my program then its address should be 8 bytes not 4 bytes as in the case of 32 bits OS.
i have installed 10.3.9 in a 64 bit PC and when i take and integer variable and see its address while debugging, i see it as 32 bit entity.
So does there exist Panther (10.3) / Tiger (10.4) os which can show me the integer as 8 bytes.
A long int should be 8 bytes. The pointer to an int on systems with larger than a 32-bit address space is probably going to be 8 bytes. An integer will likely always be 4 bytes on an x86 machine.
thank you, this seems to be a nice link...
OSX uses the LP64 datamodel (as nearly all os do). Thus longs and pointers are 64 bit, int is 32 bit. In the ILP64 datamodel int is 64 bit.
Thanks for the note, this was something i sort of "knew to be true" from experience with a lot of 64-bit machines and OSs, but hadn't seen the documentation.
That is a compiler issue and is not going to change when Snow Leopard comes out. If you need a 64 bit int the you will have to define a long int.
Here is something comparing the unreleased Snow Leopard with Leopard
Any reason you are not running Leopard?
There is a real problem here with the definition of a 64-bit operating system. So lets be clear. First off, a 64-bit os means a few things:
The instructions that the OS uses are 64-bits long
The memory pointers are 32-bits long, allowing only 4GB of memory to be mapped in.
Some things to clear up about 64-bit OS/CPU's
Having integers and floating point numbers be 64-bits long. A 32-bit CPU running a 32-bit OS can have the
Just because you are running on a 64-bit CPU does not mean that you have to be running a 64-bit OS. Most 64-bit CPUs have a 32-bit mode. PowerPC's 32-bit mode was nearly identical to its 64-bit mode. Intel's 32-bit mode has some architectural restrictions that the 64-bit mode trys to improve. Thus running in 64-bit mode on Intel processors is often faster with no other changes made. (not true for PowerPC or other architectures)
Most 32-bit CPU's have memory systems that allow effectively more memory than 4GB to be addressed with virtual memory systems.
Drivers need to be the same "bitness" as the underlying operating system. So for Vista64 you need 64-bit drivers (which vendors were slow to provide). It is technically possible to run drivers in a compatibility mode, but the speed and complexity costs are large, and probably prohibitive in many drivers. Thus far Apple has not made the transition to a 64-bit kernel/OS so all of the existing drivers are 32-bit.
About MacOS and 64-bit:
MacOS X 10.3 is a 32-bit operating system. All of the consumer-level 64bit CPUs have a 32-bit mode, and this is the mode that the G5s ran 10.3 in.
MacOS X 10.5 is a 32-bit operating system that has a complex means of running 64-bit non-GUI applications using a fancy method (called the trampoline) to get information/messages into and out of the 32-bit kernel.
The lower levels of Carbon, POSIX, and some of Cocoa have 64-bit-clean sections. So user-space programs can run in 64-bit mode, but every time they ask something from the kernel the processor has to switch to 32-bit mode. This is costly and somewhat complex.
I don't happen to remember off-hand the details of 10.4, so I am going to skip that one.
Apple has publicly said a few things about changes that will be in 10.6:
Cocoa will be getting 64-bit bindings in the GUI making it (at lest mostly) 64-bit. You will be able to compile applications as 32-bit/64-bit hybrids that can run the GUI without resorting to splitting your application into two processes.
Carbon will not be getting 64-bit GUI bindings.
There are some large low-level changes in Objective-C for the 64-bit runtime that will significantly speed up some operations when run in 64-bit mode. There are some places where these changes will break backwards compatibility, so the changes are not being made to the 32-bit Obj-C runtime. For the most part the only changes most developers (and users) will see is that some of the code will just run faster in 64-bit mode than 32-bit mode. Some of these changes were already in Obj-C 2.0, but more are on the way.
And I do have more information that was given out at WWDC and later, but can't talk more about it.