Iniciar o Linux em um navegador - o emulador jor1k ajudará (com Monkey Island, Doom e Frontier Elite II)

No material, falamos sobre os recursos dessa ferramenta aberta e seus parâmetros técnicos. Também falaremos sobre projetos semelhantes sendo desenvolvidos nesta área.

Nas séries anteriores:



Fotos - Faris Mohammed - Unsplash

O que Ă© essa ferramenta


O Jor1k é um emulador de microprocessador construído com base na microarquitetura OpenRISC 1000 . Este é um chip de 32 bits que a comunidade aberta está desenvolvendo sob a licença LGPL. O dispositivo foi usado na NASA para criar o nano-satélite TechEdSat.

O emulador é escrito em JavaScript e funciona no navegador. O Jor1k foi lançado em 2013 e, desde então, é suportado pelo autor. Eles foram feitos por Sebastian Macke. Ele foi assistido por vários colegas do workshop, incluindo Gerard Braad , um engenheiro de software líder da Red Hat. Os autores do projeto dizem que o lançaram para demonstrar os recursos do JavaScript.

A ferramenta pode ser usada como uma plataforma educacional nas universidades. Ele também serve como uma referência para testar mecanismos JS e pode ser uma maneira alternativa de transportar software antigo para sistemas modernos. Acredita-se que o jor1k possa atuar como um nó para o sistema TAILS , eliminando a necessidade de alocar uma máquina separada.

O que ele pode fazer


Existem várias imagens do sistema como demonstração - sua lista é apresentada na subseção Demos no GitHub. A maioria deles é construída no Linux 3.16, permitindo trabalhar com gráficos X.Org e Wayland / Weston, além de executar vários aplicativos. Por exemplo, no jor1k, existem dois benchmarks internos - nbench e coremark. O primeiro foi desenvolvido nos anos 90 por especialistas da revista agora fechada em microcomputadores BYTE. O nbench permite avaliar o desempenho da memória, bem como da CPU e da FPU. Quanto ao coremark , este é um conjunto de benchmarks para o processador em sistemas embarcados. Entre as tarefas dos testes estão: processar listas e matrizes vinculadas, além de calcular a quantidade de CRC .

Também no jor1k, você pode reproduzir vários vídeos e jogar jogos de computador. Entre eles estão Monkey Island , Doom e Frontier Elite II . Em particular, o Monkey Island é lançado usando o utilitário ScummVM, desenvolvido especificamente para baixar jogos do LucasArts.

Embora seja interessante notar que o desempenho dos jogos deixa muito a desejar - o cursor responde aos movimentos do mouse lentamente, além de haver um atraso após o clique.



A imagem é exibida usando um buffer de moldura emulado com uma resolução de 640x400 e suporte para a tela de toque LPC32xx. O sistema armazena dados em um disco ATA virtual de 64 kilobytes e os processa com 32 megabytes de RAM. A entrada é organizada usando o driver do teclado virtual. O Jor1k possui um controlador Ethernet integrado que permite acessar a Internet a partir de um ambiente simulado por navegador. Um dos residentes do Hacker News em um tópico temático observa que, nesse caso, os desenvolvedores redirecionam todas as solicitações por meio de seu próprio servidor.

O emulador suporta trabalhos multithread com dois, quatro, oito e dezesseis núcleos. Cada versão do emulador é baixada através de um link separado - elas podem ser encontradas na subseção Demos do repositório oficial. Observe que, com um aumento no número de núcleos, o sistema começa a funcionar de maneira instável - no futuro, os desenvolvedores planejam resolver esse problema. Ao mesmo tempo, os usuários do Hacker News observam que o emulador é mais rápido no Firefox do que em outros navegadores. Esse comportamento do sistema está associado a uma melhor otimização para seu compilador JIT.

Outros emuladores


O projeto JSLinux também desenvolveu um emulador JavaScript para uma CPU de 32 bits (x86). Seu autor foi o matemático francês Fabrice Bellard, que escreveu uma biblioteca para decodificar arquivos de áudio e vídeo libavcodec .

O emulador é baseado no tradutor dinâmico do projeto QEMU . O sistema também usa matrizes JavaScript digitadas, que aumentam o desempenho e reduzem o consumo de memória ao trabalhar com dados de tamanho fixo.


Fotos - Ivy Barn - Unsplash

O emulador JavaScript baseado em Linux também foi trabalhado por engenheiros da RISC-V Foundation. O sistema deles era chamado riscv-angel e permitia executar o riscv-linux com um conjunto de utilitários BusyBox .

É seguro dizer que, se essas soluções continuarem a melhorar, elas poderão se tornar uma nova rodada no desenvolvimento de tecnologias de terminal e soluções em nuvem. Sistemas especialmente relevantes como o jor1k serão para grandes empresas. Portanto, seus funcionários poderão acessar áreas de trabalho remotas usando um navegador comum.


No 1cloud.ru, oferecemos serviços de aluguel de infraestrutura virtual . Há uma calculadora no site que ajuda a estimar o custo estimado dos recursos.

Os especialistas do nosso centro de competĂŞncia estĂŁo prontos para responder a perguntas adicionais - eles podem ser chamados ou gravados nos correios .


O que mais temos sobre Habré:

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


All Articles