Launch Linux in a browser – the jor1k emulator (with built-in Monkey Island, Doom and Frontier Elite II) will help

In the material we talk about the capabilities of this open tool and its technical parameters. We will also talk about similar projects being developed in this area.

In previous series:

  • "Laugh for the sake of": why you might need software tools that do not have a "combat" application
  • Understanding application and service privacy policies will help neural networks

Photos – Faris Mohammed – Unsplash

What is this tool

Jor1k is an emulator of a microprocessor built on the basis of the OpenRISC 1000 microarchitecture. It is a 32-bit chip that the open community is developing under the LGPL license. The device was used at NASA to create the TechEdSat nanosatellite.

The emulator is written in JavaScript and works from the browser. Jor1k was released in 2013 and has since been supported by the author. They were made by Sebastian Macke. He was assisted by several colleagues in the workshop, including Gerard Braad, a leading software engineer at Red Hat. The authors of the project say they launched it to demonstrate the capabilities of JavaScript.

The tool can be used as an educational platform in universities. It also serves as a benchmark for testing JS engines and can be an alternative way to port old software to modern systems. It is believed that jor1k will be able to act as a node for the TAILS-system, eliminating the need to allocate a separate machine.

What can he do

There are several system images as a demo – their list is presented in the Demos subsection on GitHub. Most of them are built on Linux 3.16, it allows you to work with X.Org graphics and Wayland / Weston plus run various applications. For example, jor1k has two built-in benchmarks – nbench and coremark. The first was developed in the 90s by specialists from the now closed magazine on microcomputers BYTE. nbench allows you to evaluate the performance of memory, as well as CPU and FPU. Concerning coremark, then this is a set of benchmarks for the processor in embedded systems. Among the tasks for the tests are: processing linked lists and matrices plus calculating the amount of CRC.

Also in jor1k you can play several videos and play computer games. Among them are Monkey island, Doom and Frontier elite ii. In particular, Monkey Island is launched using the ScummVM utility, designed specifically for downloading games from LucasArts.

Although it is worth noting that the performance of the games leaves much to be desired – the cursor responds to mouse movements rather slowly, plus there is a delay after the click.

The picture is displayed using an emulated framebuffer with a resolution of 640×400 and support for the touch screen LPC32xx. The system stores data on a virtual ATA disk of 64 kilobytes and processes them with 32 megabytes of RAM. Input is organized using the virtual keyboard driver. Jor1k has an integrated ethernet controller that allows you to access the Internet from a browser-simulated environment. One of the residents of Hacker News in a thematic thread notes that in this case, developers redirect all requests through their own server.

The emulator supports multi-threaded work with two, four, eight and sixteen cores. Each version of the emulator is downloaded via a separate link – they can be found in the Demos subsection of the official repository. Note that with an increase in the number of cores, the system begins to work unstably – in the future, developers plan to solve this problem. At the same time, users with Hacker News note that the emulator is faster in Firefox than in other browsers. This behavior of the system is associated with better optimization for its JIT compiler.

Other emulators

The JSLinux project also developed a JavaScript emulator for a 32-bit CPU (x86). Its author was the French mathematician Fabrice Bellard, who wrote a library for decoding audio and video files libavcodec.

The emulator is built on the basis of a dynamic translator from the QEMU project. The system also uses typed JavaScript arrays, which increase performance and reduce memory consumption when working with fixed-size data.

Photos – Ivy Barn – Unsplash

The Linux-based JavaScript emulator was also worked on by engineers from the RISC-V Foundation. Their system was called riscv-angel and allowed you to run riscv-linux with a set of BusyBox utilities.

It is safe to say that if such solutions continue to improve, they can become a new round in the development of terminal technologies and cloud solutions. Especially relevant systems like jor1k will be for large companies. So, their employees will be able to access remote desktops using a regular browser.

At we offer virtual infrastructure rental services. The site runs a calculator that will help you estimate the estimated cost of resources.

Specialists of our center of competence are ready to answer additional questions – they can be called or written to the post office.

What else do we have on Habré:

  • Domain Name System History: The First DNS Servers
  • Discuss PostgREST – open source web server on Haskell

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *