Launch Linux in a browser – the jor1k emulator (with built-in Monkey Island, Doom and Frontier Elite II) will help
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.
What else do we have on Habré:
- Domain Name System History: The First DNS Servers
- Discuss PostgREST – open source web server on Haskell