¿Qué es EFI PC?
Volviendo atrás en la historia reciente, podemos recordar que Apple lanzó su primer Mac Intel en enero de 2006. Este ordenador utilizaba EFI (Extensible Firmware Interface) en lugar de BIOS que era lo que habían utilizado la mayoría de los PCs x86 hasta entonces. Ello añadía un obstáculo importante a la instalación de OSx86 en PCs, además de los que ya existían en la fase de versiones beta de OSx86 previas al lanzamiento oficial:
- TPM o chip Trusted Platform Module que era necesario para que Rosetta
funcionase
- procesadores con instrucciones SSE3, tambíen necesarias para que Rosetta funcionase
- procesadores con bit NX habilitado (No eXecute bit, llamado DEP en entornos
Windows), técnica de protección de memoria
Cada uno de estos obstáculos fue solventado con sus correspondientes parches que aparecían con regularidad.
El primer MacIntel llevaba Mac OS X 10.4.4. A las pocas semanas, un hacker llamado Maxxuss puso en la Red las herramientas que permitieron instalar OSX 10.4.4 en PCs. A lo largo de las semanas siguientes, Apple fue lanzando nuevas versiones de OSX; estos lanzamientos eran respondidos en poco tiempo por hackers que sacaban los parches apropiados.
Hay que recordar los nombres del ya comentado Maxxuss, SemjaZa, JaS, Mifki, Vitaliy, Semthex, Rufus y, ya en la era Leopard, Uphuck, BrazilMac y ToH, como los más importantes creadores de parches y versiones aptas para PCs durante 2006 y 2007.
Pero el kernel constituía un gran problema hasta el punto que, desde la versión 10.4.4 hasta la 10.4.8, todas las versiones de OSx86 que se utilizaron en PCs llevaban el kernel 10.4.4 modificado. Incluso cuando se han utilizado kernels más modernos, siempre han sido kernels modificados (y casi siempre desactualizados) para esquivar la ausencia de EFI, con lo que se pierden algunas de sus características más importantes.
A finales de 2007, Netkas publicó su método para emular EFI en PCs mediante un cargador de arranque Darwin modificado. La importancia de esta propuesta radica en que, con el emulador de EFI instalado, el PC puede ser visto por el sistema operativo prácticamente como si de un Mac real se tratase, permitiendo la utilización del kernel original de Apple (Vanilla kernel, por similitud con el mundo Linux en el que los kernels directamente liberados por Linus Torvalds y su grupo se llaman así para indicar que todavía no los ha modificado nadie más). Las ventajas de ésto son enormes:
- utilizar el kernel de Apple original
- utilizar algunas extensiones de Apple originales de las que hasta ahora era obligatorio
que fuesen modificadas
- mayor protección frente a errores de memoria y ataques malintencionados
- aumento teórico del rendimiento en procesadores Core 2 Duo
Existe abundante información en la Red sobre la emulación de EFI, sobre todo en los sitios web de Netkas (netkas.freeflux), DigitMemo (digitmemo.com), OSx86 Project (osx86project.org), Applesana (forum.applesana.com), etc. Es un proyecto muy joven que está en plena fase de desarrollo, con varias versiones sucesivas de lo que se ha dado en llamar PC_EFI. La más reciente a la hora de escribir este artículo es la versión 8.
Hardware requerido para usar emulador EFI
Procesadores Core Duo y Core 2 Duo, básicamente, con chipsets Intel en la placa base. Las instrucciones SSE3 y el bit NX habilitado son obligatorios. El emulador EFI puede ser instalado en hardware diferente pero las probabilidades de éxito disminuyen al alejarse de esa base.
Qué es el bit NX (No eXecute bit)
Es una técnica que se puede implementar a nivel de procesador (hardware, verdadero NX bit)) o de sistema operativo (software, emulación muy inferior). En entornos Windows se llama DEP (Data Execution Prevention).
Mediante esta técnica se protege la memoria diferenciando las áreas de instrucciones de las áreas de datos para evitar su colisión. Se consigue una disminución de errores de memoria pero, sobre todo, una mayor protección frente a ataques malintencionados. Generalmente se puede habilitar o deshabilitar en BIOS, donde puede aparecer como NX bit o como DEP.
Procesadores sin DEP no pueden implementar emulación de EFI. Para saber si un procesador lo soporta:
- consultar las páginas de BIOS
- si se tiene Windows XP instalado en ese PC: botón derecho en Mi PC >> Propiedades
>> Avanzadas >> Rendimiento >> Data Execution Prevention >> si las casillas
de activar o desactivar DEP están deshabilitadas o si en la parte inferior dice
que se utiliza DEP por software >> el procesador no tiene la opción del bit NX.
Si el procesador lo soporte, existe una forma sencilla de habilitar o deshabilitar DEP en Windows XP: modificar el parámetro noexecute en el archivo boot.ini de manera que, en la entrada correspondiente a Windows XP, si aparece
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP HOME" /noexecute=alwaysoff /fastdetect
DEP estará dehabilitado pero si aparece
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP HOME" /noexecute=optin /fastdetect
DEP estará habilitado.
Instalar el emulador de EFI en mi PC (P4 Prescott 3 GHz con SSE3 y NX bit)
Este proceso se ha hecho en un sistema Leopard funcionante, instalado desde el DVD RC2 de ToH. Es necesario disponer de algunos archivos:
- Pc_Efi que incluya la herramienta startupfiletool y arrancadores Darwin
modificados (boot_v8, etc.) así como el arrancador Darwin sin modificar (suele
llamarse booti386 y su utilidad radica en que con él se puede revertir el
proceso si algo sale mal)
- kernel original (Vanilla) de Leopard
- extensiones originales de Leopard (sobre todo ApleACPIPlattform.kext y AppleSMBIOS.kext)
- extensión dsmos.kext (obligatoria si se quiere arrancar con kernel Vanilla
pero no si se arranca con kernel modificado)
- kernel modificado (el del sistema Leopard que se tenga en uso o el del DVD de
instalación de ToH) que debemos conservar pues permite arrancar con EFI y sin ella
por lo que es necesario en caso de que el proceso de arranque con el kernel Vanilla
no salga bien
En la carpeta de Pc_Efi versión 8 (la más reciente) no aparece booti386 que viene en la carpeta de Pc_Efi versión 5.1. No conviene olvidar este archivo.
En mi PC, OSx está instalado en un disco duro particionado según el esquema MBR (clasico de sistemas DOS y Windows) pero la versión 8 de Pc_Efi permite su instalación tanto en particiones MBR como en particiones GUID (específicas de los MacIntel).
Los pasos necesarios para instalar el emulador EFI son:
Preparación
Instalar EFI
Arrancar con EFI
En mi caso el PC arranca con EFI solamente si utilizo el kernel modificado de ToH. Cualquier maniobra para arrancar con el kernel Vanilla cuelga el PC inmediatamente después del menú de Darwin. Pero arrancando con el kernel modificado, Leopard parece funcionar igual de bien con EFI que sin EFI.
Ello va a favor de la teoría que dice que en hardware como el mío la utilización del emulador de EFI es muy problemática.
Para desinstalar Efi_Pc hay que hacer lo mismo que para instalarla pero utilizando el cargador Darwin sin modificar (booti386):
./startupfiletool /dev/rdisk0s1 ./booti386
Y reiniciar con el kernel modificado de ToH que habrá de ser colocado de nuevo como mach_kernel principal, eliminando el kernel Vanilla, recuperando las extensiones que fueron renombradas con la extensión back y reparando permisos.
Página de inicio
Volver atrás