Claudio André

Winux: Executável Linux no Windows. Um estudo de caso [English Version]

Atualizado: 15/06/2016 12:00

É possível executar um programa Linux nativo (o mesmo binário, sem alterações) em uma máquina Windows? Sem truques, sem usar uma máquina virtual ou container? Apenas o binário ELF puro, copiado do Ubuntu para o Windows?

Eu testei o famoso sofware John The Ripper Jumbo no Windows 10 64 bits Insider Preview [1]. O John foi compilado no Ubuntu 14.04.4 LTS e copiado para o Windows junto com as bibliotecas necessárias [2]. O resultado foi bastante satisfatório, não houve erro fatal ou irreparável. Aliás, o John executando no Windows superou alguns resultados obtidos no Ubuntu [3].

Tabela 1. Performance em quantidade de candidados avaliados por segundo (c/s) [4]
Formato Windows c/s [5] Linux c/s [5] Windows c/s [6] Linux c/s [6]
raw-sha512 8933K 9172K 2734K 2641K
raw-sha256 15347K 14745K 6131K 5271K
sha512crypt 2792 2671 548 520
sha256crypt 3375 2871 773 653
Nota: K indica que o valor deve ser multiplicado por 1000.

Minha opinião: os dados confirmam que a Microsoft e a Canonical estão fazendo um bom trabalho no Windows Subsystem for Linux (WSL).

Print Screen

Um programa 100% nativo Linux, cheio de recursos avançados, inclusive fork, executando no Windows? Bonito de se ver!

[1] Este recurso ainda está em desenvolvimento pela Microsoft e Canonical.
[2] Para que o binário encontre as bibliotecas necessárias basta alterar LD_LIBRARY_PATH.
[3] Eu esperava que o Linux "vencesse" com uma pequena margem. Contudo, as diferenças de desempenho se justificam pois trata-se do Ubuntu 16.04 LTS usando um SNAP app (tecnologia em maturação) versus Windows (com Ubuntu 14.04.4 LTS estável).
[4] Resultados obtidos no mesmo computador, via dual-boot. No Linux, usamos o John the Ripper SNAP app disponível na Ubuntu Store para Ubuntu Core 16.
[5] Rodando 6 threads (via OpenMP).
[6] Apenas uma thread em execução (via OMP_THREAD_LIMIT=1).

© 2003-2011 Claudio André. Todos os direitos reservados