Execute apps do Linux em outras arquiteturas com o Blink

Conheça, baixe, instale e execute apps do Linux em outras arquiteturas com o Blink, um emulador x86-64 que promete muito.

blink é uma máquina virtual que executa programas x86-64-linux em diferentes sistemas operacionais. Vale ressaltar que o projeto é desenvolvido pelo autor de desenvolvimentos como a biblioteca Cosmopolitan C, um porte do mecanismo de isolamento de compromisso para Linux e o sistema de arquivos executáveis ​​universal Redbean.

Em termos de funcionalidade, o Blink se assemelha ao comando qemu-x86_64, mas difere do QEMU em um design mais compacto e desempenho significativamente aumentado.

Por exemplo, o arquivo executável do Blink tem apenas 220 KB em vez de 4 MB para qemu-x86_64 e, em termos de desempenho no teste executado no emulador GCC, o Blink supera o QEMU duas vezes.

Com o Blink, os programas Linux compilados para a arquitetura x86-64 podem ser executados em outros sistemas operacionais compatíveis com POSIX (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) e em hardware com outras arquiteturas de hardware (x86, ARM, RISC-V, MIPS, PowerPC, s390x).

Recentemente, surgiram notícias do lançamento da primeira versão principal do projeto Blink, que é um emulador de processador x86-64 que permite executar aplicativos Linux criados estática e dinamicamente em uma máquina virtual com um processador emulado.

Execute apps do Linux em outras arquiteturas com o Blink

Execute apps do Linux em outras arquiteturas com o Blink
Execute apps do Linux em outras arquiteturas com o Blink

A versão 1.0 se destaca por ser basicamente um binário livre de dependência estático de 220kb que implementa cerca de 600 instruções x86 e 180 chamadas de sistema Linux, tornando o Blink muito bom para executar programas simples de linha de comando.

Para garantir alto desempenho, é usado um compilador JIT, que converte as instruções de origem em código de máquina para a plataforma de destino em tempo real.

Lançamento direto no emulador de arquivos executáveis ​​nos formatos ELF, PE (Executáveis ​​Portáteis) e bin (Executáveis ​​Planos), compilados com as bibliotecas C padrão Cosmopolitan, Glibc e Musl são suportados.

O Blink tem um JIT rápido que, em alguns casos, é 2x mais rápido que o Qemu para casos de uso.

Isso ocorre porque o Blink tem um JIT básico que gera código rapidamente usando um DSL estilo printf. Isso significa que o Blink tem uma base de código acessível, pois temos apenas 63.500 linhas de código ANSI C11.

Atualmente, o Blink nem tenta otimizações, o que torna este projeto um campo totalmente novo para algoritmos.

É mencionado que o Blink funciona melhor para programas de linha de comando, embora o Blink também tenha algum suporte para emular aplicativos GUI.

Ao contrário do qemu-user (que só roda no Linux), o Blink pode ser rodado em outros sistemas operacionais, pois existe a possibilidade de compilar o Blink no Cygwin (Windows) e depois rodar o Bash dentro de um chroot Alpine Linux.

O Blink emula o usuário do Linux bem o suficiente para enganar o neofetch , embora o Blink seja um executável livre de dependência de apenas 250kb.

Vale ressaltar que o Blink também funciona muito bem no Apple Silicon, pois, por exemplo, pode induzir o neofetch a pensar que o MacOS M1 é Alpine x86_64.

Adicionalmente, com base no Blink, está sendo desenvolvido o utilitário blinkenlights, que fornece uma interface para visualizar a execução do programa e analisar o conteúdo da memória.

O utilitário pode ser usado como um depurador que suporta o modo de depuração reversa (Reverse Debugging) e permite que você volte no histórico de execução e retorne a um ponto executado anteriormente.

O melhor recurso que Blinkenlights TUI oferece é a depuração reversa. No anúncio de lançamento, é mencionado que você só precisa rolar a roda na tela de construção.

O Blink também descreve os recursos do seu programa em tempo real se você pressionar a tecla p. Você também pode controlar a roda de panorâmicas de memória para diminuir o zoom da memória usando um kernel.

Para saber mais sobre essa versão do Blink, acesse a nota de lançamento.

Como instalar ou atualizar o Blink

Para aqueles que estão interessados ​​em experimentar o blink, devem saber que a sua compilação é extremamente simples, apenas têm de obter o código fonte do mesmo, podem fazê-lo a partir do seguinte link ou a partir de um terminal digitando o seguinte comando:
wget https://github.com/jart/blink/releases/download/1.0.0/blink-1.0.0.tar.gz
tar xvzf blink-1.0.0.tar.gz
cd blink-1.0.0
./configure MODE=tiny
make -j8 MODE=tiny o/tiny/x86_64/blink/blink
o/third_party/gcc/x86_64/bin/x86_64-linux-musl-strip o/tiny/x86_64/blink/blink
o/tiny/x86_64/blink/blink -v

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.

1 comentário em “Como converter imagens para vídeo no Linux”

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.