Jump to content

Is leopard a real 64bit OS?


  • Please log in to reply
52 replies to this topic

#1
Envying

Envying

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 451 posts
  • Gender:Male
  • Location:Canada
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

#2
vaporATX

vaporATX

    InsanelyMac Blowhard

  • Donators
  • 898 posts
  • Gender:Male
  • Location:New Orleans, LA
If it's 32 bit why can it address over 4 gigs of ram?

#3
kadmiff

kadmiff

    InsanelyMac Protégé

  • Members
  • Pip
  • 35 posts
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!!!

Attached Files



#4
lord_muad_dib

lord_muad_dib

    InsanelyMacaholic

  • Retired
  • 3,398 posts
  • Gender:Male
  • Location:italy
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

#5
Enrico1985

Enrico1985

    InsanelyMac Protégé

  • Members
  • PipPip
  • 73 posts
  • Gender:Male
  • Location:Italy

If it's 32 bit why can it address over 4 gigs of ram?


you can do that using PAE (which is supported on Vista and Leopard)

however, Leopard is 64bit (dummy's proof: the -legacy bootloader flag)

#6
Superhai

Superhai

    InsanelyMac Legend

  • Retired Developers
  • 1,425 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!


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.

#7
Gujal

Gujal

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 903 posts
  • Gender:Male
  • Location:Aotearoa
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.

#8
Envying

Envying

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 451 posts
  • Gender:Male
  • Location:Canada
I found this to share with you guys.

http://events.ccc.de..._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.



#9
vaporATX

vaporATX

    InsanelyMac Blowhard

  • Donators
  • 898 posts
  • Gender:Male
  • Location:New Orleans, LA
Shouldn't this whole thread be moved to the debates forum?

#10
Envying

Envying

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 451 posts
  • Gender:Male
  • Location:Canada

Shouldn't this whole thread be moved to the debates forum?


I have no problem with that ;)

#11
vaporATX

vaporATX

    InsanelyMac Blowhard

  • Donators
  • 898 posts
  • Gender:Male
  • Location:New Orleans, LA
Only because you already won. ;)

#12
Envying

Envying

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 451 posts
  • Gender:Male
  • Location:Canada
I don't want to approve that I am right, I just wanna know exactly what's going on. Appreciations to all replies!

#13
Envying

Envying

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 451 posts
  • Gender:Male
  • Location:Canada
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");
}
}



#14
Cinner

Cinner

    InsanelyMac Protégé

  • Members
  • Pip
  • 27 posts
  • Gender:Male
  • Location:Netherlands

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.

#15
lord_muad_dib

lord_muad_dib

    InsanelyMacaholic

  • Retired
  • 3,398 posts
  • Gender:Male
  • Location:italy
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

#16
vaporATX

vaporATX

    InsanelyMac Blowhard

  • Donators
  • 898 posts
  • Gender:Male
  • Location:New Orleans, LA
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.

#17
Envying

Envying

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 451 posts
  • Gender:Male
  • Location:Canada

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.app...an1/lipo.1.html
http://developer.app.../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)

#18
Kiko

Kiko

    You Dont Understand Me

  • Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 2,889 posts
  • Gender:Female
  • Location:United States Of Israel
the kernel still run in 32bit lord_muad_dib. Apple are bunch of dumbasses when it comes to 64-bit.

#19
DJLunacy

DJLunacy

    InsanelyMac Protégé

  • Members
  • Pip
  • 23 posts

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.

#20
Seraphic Sorcerer

Seraphic Sorcerer

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 3 posts
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.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy