Como o OpenJDK ajuda nos pequenos sistemas operacionais open source?

Estava vendo uns vídeos do RoboNuggie, o canal de freeBSD que acompanho pelo YouTube, e nosso host estava nos apresentando a alguns programas interressantes feitos em Java. 

A partir de então comecei a refletir "Como o openJDK ainda é relevante com a ascensão do RUST?" mas em pouco tempo e a queima de muitos neurônios, essa pergunta ficou mais refinada na forma de "Como o openJDK ajuda nos pequenos sistemas operacionais OpenSource?"

 O openjdk é uma implementação aberta do Jvm para sistemas operacionais, do ponto de vista geral a jvm atual como uma maquina virtual tendo seu próprio código de máquina ["Anote isso, vai ser importante mais para frente" 😉]. 

Isso garante que um binário Java sempre será compatível a Jvm independente da classe, bibliotecas e módulos que estamos usando,  já que seu seu sistema operacional host não controla as classes, bibliotecas e framework e isso o torna perfeito para os pequenos sistemas operacionais open-source junto de linguagens como RUST, C/C++ e GO.

Que podem e precisam ter suas bibliotecas recompiladas e configuradas para todos os sistemas operacionais. O java tendo seu código de maquina próprio pode pular a adaptação das bibliotecas, o e executar diretamente em uma jvm da mesma versão que seu código compilado. [Eu disse que seria importante o aviso anterior 🤣🤣] 

Podemos verificar isso simplesmente rodando o comando xxd -b {nome do programa java e/ou programa compilado em c}. 

Se for o programa compilado em C, os primeiros bytes mostraram o formato do arquivo .ELF em sistemas sus/posix.

Se for o programa compilado para jvm, os primeiros bytes mostraram o formato do arquivo .CAFEBABE que é o formato utilizado na jvm. Isso garante que contanto que tenhamos a mesma versão da maquina virtual java, podemos utilizar códigos java sem precisar pensar muito nas dificuldades da recompilação  como a necessidade de ter as dependências funcionando no novo sistema. O Libre Office que tem parte de seu código fonte escrito em Java, ou o Jedit que é um editor de texto simples também escrito nesta incrível linguagem. E algumas IDES como a famosa IntellijIdea ou o PyCharm que também são desenvolvidos nessa linguagem.


Comentários

Postagens mais visitadas deste blog

Kernel XNU vs Kernel Linux. Quais as diferenças

Leia revistas antigas que existiam no Brasil

A distribuição Hyperbola Gnu/Linux-Libre deixará de ser GNU/Linux-Libre e se tornará HyperbolaBSD