Saltar al contenido

¿Qué se necesita para ejecutar el software de usuario de 64 bits en un kernel de 32 bits?

Ten en cuenta que en las ciencias informáticas cualquier problema suele tener diferentes resoluciones, de igual modo mostramos la mejor y más eficiente.

Solución:

La ejecución de aplicaciones de 64 bits requiere algo de soporte del kernel: el kernel necesita al menos configurar tablas de páginas, tablas de interrupción, etc., según sea necesario para admitir la ejecución de código de 64 bits en la CPU, y necesita guardar el código completo de 64 bits. contexto al cambiar entre aplicaciones (y de aplicaciones al kernel y viceversa). Por lo tanto, un kernel puramente de 32 bits no puede admitir un espacio de usuario de 64 bits.

Sin embargo, un kernel puede ejecutar código de 32 bits en el espacio del kernel, mientras admite código de 64 bits en el espacio del usuario. Eso implica un manejo similar al soporte requerido para ejecutar aplicaciones de 32 bits con un kernel de 64 bits: básicamente, el kernel tiene que admitir las interfaces de 64 bits que esperan las aplicaciones. Por ejemplo, debe proporcionar algún mecanismo para que el código de 64 bits llame al núcleo y conserve el significado de los parámetros (en ambas direcciones).

La pregunta entonces es si vale la pena. En la Mac y algunos otros sistemas, se puede hacer un caso ya que admitir el código del kernel de 32 bits significa que los controladores no tienen que hacer el cambio simultáneamente. En Linux, el modelo de desarrollo es diferente: cualquier cosa en el núcleo se migra según sea necesario cuando se realizan cambios importantes, y los desarrolladores del núcleo no admiten realmente nada fuera del núcleo. La compatibilidad con el espacio de usuario de 32 bits con un kernel de 64 bits es ciertamente útil y vale la pena el esfuerzo (al menos, lo fue cuando se agregó la compatibilidad con x86-64), no estoy seguro de que haya un caso para 64 bits en 32 -un poco…

Snow Leopard pudo ejecutar binarios de 64 bits en una CPU Intel de 64 bits.

También pudo arrancar con un kernel de 64 bits cuando su efi ya era de 64 bits (mi lote de producción del Macbook “transition-model” pro ya era una máquina de este tipo).

No hubo emulación involucrada, solo pagó un costo de rendimiento menor al arrancar en modo de 32 bits.

En las CPU puras de 32 bits, no podrá hacer eso, ya que no tienen idea de cómo interpretar el código de 64 bits. A menos que esté emulando con software, lo que sería demasiado lento para ese tipo de clase de máquinas integradas tradicionalmente con poca potencia.

Si sostienes algún reparo y disposición de arreglar nuestro tutorial te proponemos ejecutar una reseña y con deseo lo analizaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *