soporte de 64 bits con un kernel de 32 bits en OS X Snow Leopard

2

Sé que muchas computadoras portátiles de Apple, como mi Macbook 6,1, ejecutan un kernel de 32 bits en OS X Snow Leopard. El núcleo según Apple también puede ejecutar o "soportar" aplicaciones de 64 bits. Mi pregunta es ¿cómo hace eso el sistema?

Un sistema operativo de 64 bits puede ejecutar aplicaciones de 32 bits de manera predeterminada porque el sistema operativo tiene emuladores que captan todas las llamadas de 32 bits y las traducen en llamadas nativas de 64 bits.

¿Pero cómo el kernel de 32 bits en OS X hace eso con 64 bits?

  1. virtualización de la arquitectura de hardware? (Si es así, ¿no sería lento ya que la conversión de llamadas de 32 bits y direcciones de memoria a 64 bits es mucho más intensiva?)
  2. Diseño de arquitectura híbrida (es decir, ¿el núcleo está diseñado con algunos elementos de 64 bits mezclados con el diseño en su mayoría de 32 bits?)

Apple docs y el soporte no parecen tener nada específico sobre esto. ¡Tengo curiosidad!

    
pregunta Gautham C. 30.12.2011 - 04:22

2 respuestas

3

Tenga en cuenta que parte de la información de esta respuesta se obtuvo de here :

Mac OS X 10.6 Snow Leopard fue el último sistema operativo que admitió arquitecturas de CPU de 32 bits, como los procesadores Core Solo y Core Duo (no Core 2 Duo). Tenga en cuenta que es completamente posible tener procesadores de 64 bits como el Core 2 Duo y aún tener un firmware EFI de 32 bits, por lo que la CPU por sí sola no es el único indicador de las capacidades de sus sistemas a este respecto.

Así es como terminas con la situación de tener un kernel de 32 bits, que es retenido por el EFI, que se ejecuta en una CPU de 64 bits, que es capaz de ejecutar una pila de aplicaciones de 64 bits siempre que no se cargue dinámicamente cualquier módulo del kernel, etc. La aplicación no está totalmente vinculada al kernel, y es capaz de ejecutarse de forma independiente en un estado diferente al kernel si es necesario. De la misma manera que una aplicación puede ejecutar 32 bits en un núcleo de 64 bits ...

Para ser honesto, el número de personas con Core 2 Duo o superior pero con un EFI de 32 bits es relativamente limitado, y usted no tiene suerte si usted es una de esas personas, digamos un Macbook de 2007/8 cuando esto era común El EFI de 64 bits se introdujo de forma escalonada en todo el rango, por lo que no es sencillo determinar en qué fecha era común en todos los formatos.

Puede verificar el EFI de su máquina ingresando el siguiente comando en la Terminal:

ioreg -l -p IODeviceTree | grep firmware-abi

Devolverá "EFI32" o "EFI64".

Además, algunas máquinas perfectamente capaces aún se inician en los núcleos de modo de 32 bits, incluso cuando son capaces, aunque puede forzar un núcleo de 64 bits manteniendo presionadas las teclas 6 y 4 en el inicio.

OS News señala que solo las Mac con un EFI de 64 bits pueden iniciar el kernel y los kexts Snow Leopard de 64 bits; una limitación artificial impuesta por Apple, aunque un EFI de 32 bits puede arrancar un kernel de 64 bits "bien".

Lo que es peor es que incluso si su MacBook (no Pro) tiene un EFI de 64 bits, solo podrá arrancar la versión de 32 bits de Snow Leopard debido a una limitación que Apple impone a los MacBooks. El roadkill más grande en la Ruta 64 es el Mac Pro original (que se suspendió el 8 de enero de 2008) y tampoco podrá arrancar el kernel y los controladores de 64 bits. ingrese la descripción del enlace aquí

    
respondido por el stuffe 06.02.2012 - 21:20
0

El 32 bit contra 64 bit es probablemente una pregunta más para el fabricante del microprocesador:

enlace

    
respondido por el user8128167 05.01.2012 - 18:55

Lea otras preguntas en las etiquetas