Linked by Thom Holwerda on Tue 18th Aug 2009 18:46 UTC
Mac OS X Even though Apple has been hyping up the 64bit nature of its ucpoming Snow Leopard operating system, stating it will be the first Mac OS X release to be 64bit top-to-bottom, reality turns out to be a little bit different so far. With the current Snow Leopard seed, only Xserve users get the 64bit kernel and drivers - all other Macs default to 32bit. By holding down the '6' and '4' keys during boot, you can to boot into full 64bit mode - that is, if your Mac supports it. As it turns out, some Macs with 64bit processors cannot use the 64bit kernel because the EFI is 32bit. Note: I should have included in the article that 64bit applications will run just fine (including benefits) on a 32bit kernel in Mac OS X. Since this was already possible in Leopard, I assumed people were well aware of that. Turns out some were not, so my apologies for that.
Permalink for comment 379564
To read all comments associated with this story, please click here.
RE[4]: Wow
by Hakime on Thu 20th Aug 2009 02:31 UTC in reply to "RE[3]: Wow"
Member since:

PowerMac G5: the first 64 bit personal computer... buy it!

The PowerMAc G5 was provided with a specific build of Tiger which had 64 bits support in the Unix layer, allowing the machine to run command line applications in 64 bits. You could also have GUI on top of that communicating with the 64 bits process via IPC.

So same advise as to Holwerda, don't talk on something that you don't understand.... you are embarrassing yourself.

Does it limit the number of threads the kernel can handle? Or the memory it can address?

Read my previous post, i think it is pretty clear.

How does a 32 bit OSX kernel manage more than 4 gb of memory, or is the memory management 64 bit? What parts of the kernel stay in 32bit mode? Anything other than device drivers?

This is the big misunderstanding of people only familiar with windows or linux. An os having a 32 bits kernel has nothing to do with being able or not to run 64 bits apps. OS X completely decoupled the kernel and the ABI+object file format so that as far as it comes to the kernel, it can execute whatever it is asked for to do.

Mach-o object file format totally abstract the type of executable and the kernel really does not need to bother if it is compatible with it or not. If the Mach-o object file is 32 bits then the kernel will execute it, if it is a 64 bits binary it will execute and expose whatever advantages the 64 bits addressing provides. That means OS X kernel will allow 64 bits addressing, 64 bits math, access to more registers (note this is only true for X86, not powerpc) and additional security features to any 64b bits applications. The kernel is nothing more than a peace of code that manages resource distribution. If an 64 bits app is running, it will provide it a larger addressing space for physical and virtual memory, and anything else that the app requires.

A 32 bits kernel only means that it itself runs in 32 bits, that its own address space spans a 64 bits addressing space. So by definition that's nothing to do with being able to run 64 bits apps or not. Again a 64 bits kernel has its own benefits compared to a 32 bits one (read my post about that), but when it comes to running 64 bits apps, a 32 bits kernel is totally equivalent as a 64 bits one.

Now yes Windows or Linux requires a 64 bits kernel to run 64 bits apps, but this is by design that they do that. Those OS has tied their object and ABI format to the kernel addressing space so that one requires the other to be in the same addressing space. This is quite bad decision mostly due to the original design as it has put a lot of burden on the average user to use 64 bits apps complicating the transition to 64 bits. And again, Windows is the worse in that matter, as it needs complicated solutions which are really bad design. I mean this Windows On Windows layer (WOW) is complicated, unreliable, and it simply difficult to maintain. WIndows is really not flexible OS, really not... I am sorry this is technical reality.

If there is no difference, then why the different behavior with the Macs' listed in the chart?

The different behavior only concerns if the kernel is booted in 64 bits, again the kernel. For the end user of MAc OS X, that is irrelevant at the moment because again a 64 bits kernel only benefit very large workloads like in xserve. A laptop user does not need at all a 64 its kernel at this moment, but he/she will be absolutely able to run 64 bits apps on his/her laptop running the 32 bits kernel. Or i should say the kernel running in a 32 bits address space, this is the correct way to say it, equivalently for the 64 bits mode.

Is there a good technical reason for booting in 32 bit mode over 64 bit?

Yes of course, it allows third party drivers to continue to operate. A 64 bits kernel needs 64 bits drivers IF AND ONLY IF they operate in the kernel space. They need to have the same addressable memory mapping. And equivalently, a 64 bits drivers can't run in a 32 bits kernel. So most of the drivers are still 32 bits drivers, that's why win64 is so unpopular, it lacks divers among having some 32 bits apps broken on the WOW layer.

So booting a 32 bits kernel allows to keep compatibility with today's drivers and in the same time OS X completely allows those drivers to exist and work with 64 bits applications. The opposite is also true, 64 bits drivers work with 32 bits apps on Snow Leopard. This is not the case on win64 (and i believe also on Linux), 32 bits can't work with the 64 bits drivers. And of course you can't run 64 bits apps with 32 bits drivers as an 32 bits windows kernel can't run 64 bits apps.

And gain keep in mind that here too OS X does the things better technology wise. Snow Leopard allows for developing universal drivers, similar to universal applications, the proper bits gets loaded as needed. Not need for developers to maintain separate binaries across multiple devises and users do not need to know anything about what type of drivers they are installing, for them this is completely transparent.

And i want to come back to the Holwerda article. Some people night think that i am quite severe with him but really it deserves it. I mean he could have just made a informative article. He claims to be journalist or he aims to be so but why he did not first report properly the information and for being informative do some research and try to explain what it means. How the 64 bits features are implemented differently across different OS? What a 64 bits kernel really mean? Why it means different things for different platforms.

If he could not do the article, he could have done the minimum research to link to some relevant documentation or ask someone to give the technical discussion. He could link to technical articles for people interested on knowing the facts, understanding the technology.

But no, what he did is writing non-sense Apple bashing to feed his frustration of Apple and sudden fanboyism of everything that Microsoft does. Spreading fud, disinformation, conspiracy theories is not what i call a nice behavior. His purpose recently has only been to bash Apple whatever the news is about by reporting biased facts and disinformation so that any other zealot can come to spread the garbage on the forums. Is that nice for OSNews? I really doubt about it.

And the real problem is that people just believes that, he knows it. I mean people in our days are more open to sensational stories than to a boring explanation on what 64 bits means and how it is implemented on OS X, right? So many people like that crap, people don't use their brain. It is just sad.....

Reply Parent Score: 3