Si, no me he olvidado de este blog. Digamos que me había retirado de la informática recreativo-experimental por un tiempo, pero aquí estoy de vuelta.
Hoy vamos a hacer funcionar emulado sobre un Linux de 64 bits Inferno OS, el sistema operativo distribuido procedente de Plan9, el sistema operativo de los Laboratorios Bell que estaba llamado a sustituir a UNIX (seguramente le sustituya el año que Linux sea el sistema operativo de los escritorios 😉 😉
Al tema. Hay algo de documentación bastante completa pero con una carencia importante. Cogemos la documentación que hay en Setting of OS Inferno New Edition y añadimos solo un cambio y dos advertencias
Advertencia 1: esto tiene más dependencias que el copón. Desgraciadamente las he ido instalando a la carrera con YaST2 así que no tengo una lista de todas las que he necesitado. Las podrán ir instalando sobre la marcha según vaya petando la instalación. Se puede reiniciar a placer.
Advertencia 2: Tengan mucho ojo en el paso posterior al destareado del código. Es de IMPERIOSA necesidad hacer un pull y un update a la última versión del código
El cambios: Después de tener actualizado el código del repositorio de Mercurial y de estar en el último commit, antes si quieren de modificar el fichero mkconfig, deben modificar el fichero Linux/386/include/fpuctl.h según indica en este comentario:
--- a/Linux/386/include/fpuctl.h Sat Jun 08 13:03:33 2013 +0000 +++ b/Linux/386/include/fpuctl.h Sun Jun 30 02:16:23 2013 +0800 <at> <at> -6,12 +6,12 <at> <at> static void setfcr(ulong fcr) { - __asm__( "xorb $0x3f, %%al\n\t" + __asm__ volatile( "xorb $0x3f, %%al\n\t" "pushw %%ax\n\t" "fwait\n\t" "fldcw (%%esp)\n\t" "popw %%ax\n\t" - : /* no output */ + : "=a" (fcr) : "al" (fcr) ); }
Solo después de haber modificado este fichero y de seguir el resto de instrucciones que he puesto antes a rajatabla conseguirán esto: