Inferno OS emulado sobre un Linux de 64 bits

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:

Inferno

Deja un comentario