Inicie Linux en un navegador: el emulador jor1k ayudará (con Monkey Island, Doom y Frontier Elite II integrados)

En el material hablamos sobre las capacidades de esta herramienta abierta y sus parámetros técnicos. También hablaremos sobre proyectos similares que se están desarrollando en esta área.

En series anteriores:



Fotos - Faris Mohammed - Unsplash

¿Qué es esta herramienta?


Jor1k es un emulador de microprocesador basado en la microarquitectura OpenRISC 1000 . Este es un chip de 32 bits que la comunidad abierta está desarrollando bajo la licencia LGPL. El dispositivo fue utilizado en la NASA para crear el nanosatelital TechEdSat.

El emulador está escrito en JavaScript y funciona desde el navegador. Jor1k fue lanzado en 2013 y desde entonces ha sido respaldado por el autor. Fueron hechos por Sebastian Macke. Fue asistido por varios colegas en el taller, incluido Gerard Braad , un ingeniero de software líder en Red Hat. Los autores del proyecto dicen que lo lanzaron para demostrar las capacidades de JavaScript.

La herramienta se puede utilizar como plataforma educativa en las universidades. También sirve como punto de referencia para probar motores JS y puede ser una forma alternativa de portar software antiguo a sistemas modernos. Se cree que jor1k podrá actuar como un nodo para el sistema TAILS , eliminando la necesidad de asignar una máquina separada.

Que puede hacer


Hay varias imágenes del sistema como demostración: su lista se presenta en la subsección Demos en GitHub. La mayoría de ellos están construidos en Linux 3.16, le permite trabajar con gráficos X.Org y Wayland / Weston, además de ejecutar varias aplicaciones. Por ejemplo, en jor1k hay dos puntos de referencia integrados: nbench y coremark. El primero fue desarrollado en los años 90 por especialistas de la revista ahora cerrada sobre microcomputadoras BYTE. nbench le permite evaluar el rendimiento de la memoria, así como de la CPU y la FPU. En cuanto a coremark , este es un conjunto de puntos de referencia para el procesador en sistemas integrados. Entre las tareas para las pruebas están: procesar listas y matrices vinculadas, además de calcular la cantidad de CRC .

También en jor1k puedes reproducir varios videos y juegos de computadora. Entre ellos están Monkey Island , Doom y Frontier Elite II . En particular, Monkey Island se lanza utilizando la utilidad ScummVM, desarrollada específicamente para descargar juegos de LucasArts.

Aunque vale la pena señalar que el rendimiento de los juegos deja mucho que desear: el cursor responde a los movimientos del mouse con bastante lentitud, además hay un retraso después del clic.



La imagen se muestra usando un framebuffer emulado con una resolución de 640x400 y compatible con la pantalla táctil LPC32xx. El sistema almacena datos en un disco virtual ATA de 64 kilobytes y los procesa con 32 megabytes de RAM. La entrada se organiza utilizando el controlador de teclado virtual. Jor1k tiene un controlador ethernet integrado que le permite acceder a Internet desde un entorno simulado por navegador. Uno de los residentes de Hacker News en un hilo temático señala que, en este caso, los desarrolladores redirigen todas las solicitudes a través de su propio servidor.

El emulador admite trabajos de subprocesos múltiples con dos, cuatro, ocho y dieciséis núcleos. Cada versión del emulador se descarga a través de un enlace separado; se pueden encontrar en la subsección Demos del repositorio oficial. Tenga en cuenta que con un aumento en el número de núcleos, el sistema comienza a funcionar de manera inestable; en el futuro, los desarrolladores planean resolver este problema. Al mismo tiempo, los usuarios con Hacker News notan que el emulador es más rápido en Firefox que en otros navegadores. Este comportamiento del sistema está asociado con una mejor optimización para su compilador JIT.

Otros emuladores


El proyecto JSLinux también desarrolló un emulador de JavaScript para una CPU de 32 bits (x86). Su autor fue el matemático francés Fabrice Bellard, quien escribió una biblioteca para decodificar archivos de audio y video libavcodec .

El emulador se basa en el traductor dinámico del proyecto QEMU . El sistema también utiliza matrices JavaScript tipificadas, que aumentan el rendimiento y reducen el consumo de memoria cuando se trabaja con datos de tamaño fijo.


Fotos - Ivy Barn - Unsplash

El emulador de JavaScript basado en Linux también fue trabajado por ingenieros de la Fundación RISC-V. Su sistema se llamaba riscv-angel y le permitía ejecutar riscv-linux con un conjunto de utilidades BusyBox .

Es seguro decir que si tales soluciones continúan mejorando, pueden convertirse en una nueva ronda en el desarrollo de tecnologías de terminal y soluciones en la nube. Los sistemas especialmente relevantes como jor1k serán para grandes empresas. Por lo tanto, sus empleados podrán acceder a escritorios remotos utilizando un navegador normal.


En 1cloud.ru ofrecemos servicios de alquiler de infraestructura virtual . Hay una calculadora en el sitio que ayuda a estimar el costo estimado de los recursos.

Los especialistas de nuestro centro de competencia están listos para responder preguntas adicionales: pueden llamarse o escribirse por correo .


¿Qué más tenemos sobre Habré?

Source: https://habr.com/ru/post/480858/


All Articles