Jump to content

Is leopard a real 64bit OS?


Envying
 Share

53 posts in this topic

Recommended Posts

Kernel is the core of an OS, Mach_kernel is a universal binary file using ppc & i386(not x86 64) instructions... So can I say Leopard is not a real 64bit OS!

 

Any discussion related are welcome! :P

Link to comment
Share on other sites

As far As I know Mac os leopard is not Fully 64 bit....

But the 4 gig issue is not related to 32 bit or 64 bit... well from what I've read...

If you want to go higher than 64 gig you will need an 64 bit os...

 

Oh and since service pack1, vista 32bit has no problems with 4 gig or higher..

 

and thats not with any memory holes.... ETC!!!

post-119725-1209372285_thumb.jpg

Link to comment
Share on other sites

i love when people post teachie threads with random statements.. ewwww...

the kernel itself is an hybrid, 64bit core is loaded only when it can be done.

 

and this kind of structure, makes possible to load kernel threads in 32/64 bit simultaneusly(that means it can load 32bit drivers also), not just like windows x64 that can load 32bit stuff only in userland

Link to comment
Share on other sites

Kernel is the core of an OS, Mach_kernel is a universal binary file using ppc & i386(not x86 64) instructions... So can I say Leopard is not a real 64bit OS!

 

If you can't disassemble the kernel or read the kernel source code, so you should not talk about things you don't know. Anyway it is true that the stock kernel is marked as a fat binary with only 32bit versions, but it does include code to load 64bit software and to put itself in 64 bit mode.

Link to comment
Share on other sites

The Kernel is a true 32/64bit hybrid. This is excellent as the drivers from panther/jaguar days still work.Just run the included Chess program and fire up Activity Monitor and look for Chess. It will show up as Intel 64 bit if you have a 64 bit capable processor.

Link to comment
Share on other sites

I found this to share with you guys.

 

http://events.ccc.de/congress/2007/Fahrpla..._osx_kernel.pdf

 

Intel specifics

While i386 support in XNU has existed since the mid-90s, and has been a shipping feature of OpenStep, the i386 part had not been used in Mac OS X until the advent of Intel machines in 2005/2006. And with the introduction of the 64 bit Mac Pro in 2006, x86_64 (AMD64, Intel64, EM64T, x64, ...) support has been added to XNU - but XNU is not a 64 bit kernel, though. XNU supports 64 bit user mode applications, but it is 32 bit itself. Since porting a 32 bit kernel to 64 bit is a big task, it could not be donein just half a year between the introduction of the first Intel machines in January of 2006 (until then, Apple developers had worked on finalizing the 32 bit i386 version) and the introduction of the Mac Pro in August.

 

There is just a single kernel image for 32 and 64 bit Intel: It is loaded as a 32 bit process in 32 bit protected mode on both kinds of machines, and if 64 bit support is detected, the kernel switches into long mode compatibility mode - a mode that supports running 32 bit code, but also allows easy switching to 64 bit code. So the whole kernel code is still unmodified 32 bit code, but tiny stubs that deal with copying between user address spaces (which can be 64 bit), and the syscall and trap handlers are 64 bit code. Next to being an easy port, this has the extra advantages that the 64 bit capable kernel can still easily support 32 bit KEXTs, and conserves memory by being able to use 32 bit pointers throughout a large part of kernel code. On the flip side, the kernel cannot use the extended x86_64 register set and is restricted to a 32 bit address space.

 

But while all other common 32 bit operating systems like Linux, Windows and the BSDs split the address space into 2 GB for user and 2 GB for kernel (2/2) or 3 GB for user and 1 GB for kernel (3/1), the i386/x86_64 version of XNU uses a 4/4 split: While the kernel is running, the user's data is not mapped into its address space, and while user code is running, the kernel is not mapped. So user and kernel can each have 4 GB of address space with the disadvantage of being less efficient in copying of data between user and kernel. But this way, kernel mode can map more devices into its address space (like video cards with a lot of memory), and manage more RAM, thus pushing out the limit when a true 64 bit kernel is required.

Link to comment
Share on other sites

Found this from i386_init.c as well :)

 

if (cpuid_extfeatures() & CPUID_EXTFEATURE_EM64T) {

kprintf("EM64T supported");

if (PE_parse_boot_arg("-legacy", &legacy_mode)) {

kprintf(" but legacy mode forced\n");

} else {

IA32e = TRUE;

kprintf(" and will be enabled\n");

}

}

Link to comment
Share on other sites

Oh and since service pack1, vista 32bit has no problems with 4 gig or higher..

 

Since SP1, 32bit Vista can SEE you have 4 gigs, but not actually make use of it, as far as I know.

Link to comment
Share on other sites

envying, i don't see anything that says that's it's not 64bit, really

 

what you posted simply enforces my statement, 64bit is threated as an extension, and it's enabled as soon as it's detected at boot, and the kernel runs everything @64bit.

this kind of approach disallow the addressing of the entire memory in a single space page, but you can open as many spaces as you like.

still, it doesn't mean there is a some kind of emulation whatsoever.

it is 64bit

Link to comment
Share on other sites

I did install Vista 64 on my MBP and it is a slight bit snappier than Leo. Of course any slight speed benefit Vista has is widely offset by its horrendously clunky (and ugly) interface and the awful programs devs seem to write for Windows.

Link to comment
Share on other sites

envying, i don't see anything that says that's it's not 64bit, really

 

what you posted simply enforces my statement, 64bit is threated as an extension, and it's enabled as soon as it's detected at boot, and the kernel runs everything @64bit.

this kind of approach disallow the addressing of the entire memory in a single space page, but you can open as many spaces as you like.

still, it doesn't mean there is a some kind of emulation whatsoever.

it is 64bit

 

Hey, Load

 

Check these two links out:

http://developer.apple.com/documentation/D...an1/lipo.1.html

http://developer.apple.com/documentation/D.../doc/man/3/arch

 

My quote at #8 states very clearly.

Kernel is based on i386 instruction set not x86_64. But in userland, apple is using some other technology to use some 64bit resources.

So to my understanding, leopard currently is a hybrid system with 32bit & 64bit mixtures. Leopard is not a real 64bit system. (from bottom to top)

Link to comment
Share on other sites

  • 1 month later...
As far As I know Mac os leopard is not Fully 64 bit....

But the 4 gig issue is not related to 32 bit or 64 bit... well from what I've read...

If you want to go higher than 64 gig you will need an 64 bit os...

 

Oh and since service pack1, vista 32bit has no problems with 4 gig or higher..

 

and thats not with any memory holes.... ETC!!!

 

Depends on what your definition of problems is.

 

They added a "fix" to the OS in SP1 to have it report 4GB if you have 4GB instead of what you can actually address typically between 3.5 - 3.0GB depending on how many PCI cards and other devices you machine has.

 

They did this to mitigate the amount of calls they were getting asking what happened to the RAM.

 

This doesn't really fix anything nor does it give you any performance boost.

Link to comment
Share on other sites

  • 2 months later...

Actually the problem lies with the fact that while Cocoa's API is Native to 64 Bit, Carbon support is not, and since The original incarnation of OS X was indeed 32 bit only, the changes to 64 bit have been subtle, the kernel itself can run 64 bit NATIVE, however if you want to break every application support (Read Adobe/MS Office, anything written with Carbon APIs) then you will need to run it in 32 bit mode. The whole reason x64 exist at the moment is because it is an EXTENSION of X86 that is why it is X86_64, PowerPC at the time it was implemented were 64 bit processors, However, once again, You can't go full 64, without breaking application support. Leopard is the Last Operating system to receive "Carbon" support. 10.6 will force everyone to move to 64 Bit Carbon. you also have to remember that in order to run a true x64 mode, everything must be Architected that way, and that is exactly why no one has gone 100% 64 bit, Why do you think the Itanium failed? There's a bunch of info on ARS Technica, if you're interested in actually going total Geek.

Link to comment
Share on other sites

It isn't true 64-bit, but it can utilize 64-bit capabilities in your Core 2 Duo processor.

Link to comment
Share on other sites

Leopard is the Last Operating system to receive "Carbon" support. 10.6 will force everyone to move to 64 Bit Carbon.

 

What?

 

From my limited research on this subject, it appears that Apple is forcing Carbon programmers to switch to Cocoa for 64 Bit support.

 

Otherwise, Carbon will be supported in 10.6:

 

http://www.roughlydrafted.com/2008/06/24/m...rd-5-no-carbon/

Link to comment
Share on other sites

As far As I know Mac os leopard is not Fully 64 bit....

But the 4 gig issue is not related to 32 bit or 64 bit... well from what I've read...

If you want to go higher than 64 gig you will need an 64 bit os...

 

Oh and since service pack1, vista 32bit has no problems with 4 gig or higher..

 

and thats not with any memory holes.... ETC!!!

No, 32-bit Windows can't use more than about 3.5gb of RAM. What it shows there is the amount you have installed, not how much you can use.

Link to comment
Share on other sites

leopard is 32bit, when snow leopard comes out, that's 64bit. 32bit os's can not address over 8gb's. 64bit os's will address up to 32gbs.

Wow, somebody's been chugging the noobsauce!

 

32-bit OSes can address up to 4GB of ram, whereas 64-bit OSes can handle up to 16TB of ram.

Link to comment
Share on other sites

 Share

×
×
  • Create New...