2 votos

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

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

Un sistema operativo de 64 bits puede ejecutar aplicaciones de 32 bits por defecto porque el sistema operativo tiene emuladores que capturan todas las llamadas de 32 bits y las traducen a llamadas nativas de 64 bits.

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

  1. ¿Virtualización de la arquitectura de hardware? (si es así, ¿no sería esto lento ya que la conversión de llamadas y direcciones de memoria de 32 bits 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 mayoritario de 32 bits )

Los documentos y el soporte de Apple no parecen tener nada específico sobre esto. Sólo tengo curiosidad.

3voto

mtnygard Puntos 141

Nota: parte de la información de esta respuesta ha sido extraída de aquí :

Mac OS X 10.6 Snow Leopard fue el último sistema operativo en soportar arquitecturas de CPU de 32 bits, como los procesadores Core Solo y Core Duo (no Core 2 Duo). Ten en cuenta que es totalmente posible tener un procesador de 64 bits como el Core 2 Duo, y seguir teniendo un firmware EFI de 32 bits, por lo que la CPU por sí sola no es el único indicador de las capacidades de tus sistemas en este sentido.

Así es como se llega a la situación de tener un kernel de 32 bits, que es retenido por la EFI, ejecutándose en una CPU de 64 bits, que es capaz de ejecutar una pila de aplicaciones de 64 bits siempre que no esté cargando dinámicamente ningún módulo del kernel, etc. La aplicación no está totalmente ligada al kernel, y es capaz de funcionar de forma independiente en un estado diferente al del kernel si es necesario. De la misma manera que una aplicación puede funcionar con 32 bits en un kernel de 64 bits...

Para ser honesto, el número de personas con un Core 2 Duo o superior pero con una EFI de 32 bits es relativamente limitado, y tienes mala suerte si eres una de esas personas que tiene, por ejemplo, un Macbook de 2007/8 cuando esto era común. La EFI de 64 bits se introdujo de forma escalonada en toda la gama, por lo que no es sencillo precisar en qué fecha fue común en todos los formatos.

Puede comprobar la EFI de su máquina introduciendo el siguiente comando en el Terminal:

ioreg -l -p IODeviceTree | grep firmware-abi

Devolverá "EFI32″ o "EFI64".

Además, algunas máquinas perfectamente capaces siguen arrancando sólo en núcleos de modo de 32 bits, incluso cuando son capaces, aunque se puede forzar un núcleo de 64 bits manteniendo pulsadas las teclas 6 y 4 en el arranque.

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

Lo peor es que aunque tu MacBook (no Pro) tenga una EFI de 64 bits, sólo podrá arrancar la versión de 32 bits de Snow Leopard debido a una limitación que Apple impone a los MacBooks. El mayor atropello en la Ruta 64 es el Mac Pro original (que fue descontinuado el 8 de enero de 2008) tampoco podrá arrancar el kernel y los controladores de 64 bits. introduzca aquí la descripción del enlace

0voto

feklee Puntos 174

Lo de los 32 bits frente a los 64 bits es probablemente una cuestión más bien del fabricante del microprocesador:

http://search.intel.com/default.aspx?q=64+bit&c=es_US&method=text&input-submit=Search

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X