Chá gelado - IcedTea

IcedTea para OpenJDK 8
Desenvolvedor (s) GNU Classpath
Versão estável
3.19.0 / 13 de maio de 2021 ( 2021-05-13 )
Repositório icedtea .classpath .org / hg / icedtea8
Escrito em C , C ++ e Java
Sistema operacional Linux , * BSD , macOS , Windows , Solaris
Plataforma IA-32, x86-64, ARM, AArch64, sparc, sparc64, ppc, ppc64, ppc64le, s390, s390x
Modelo Máquina Virtual Java e Biblioteca Java
Licença Exceção de vinculação GNU GPL +
Local na rede Internet icedtea .classpath .org
IcedTea para OpenJDK 7
Desenvolvedor (s) GNU Classpath (com Red Hat até 2.6.22)
Versão estável
2.6.26 / 5 de julho de 2021 ( 2021-07-05 )
Repositório icedtea .classpath .org / hg / icedtea7
Escrito em C , C ++ e Java
Sistema operacional Linux , * BSD , macOS , Windows , Solaris
Plataforma IA-32, x86-64, ARM, AArch64, sparc, sparc64, ppc, ppc64, ppc64le, s390, s390x
Modelo Máquina Virtual Java e Biblioteca Java
Licença Exceção de vinculação GNU GPL +
Local na rede Internet icedtea .classpath .org
IcedTea para OpenJDK 6
Desenvolvedor (s) Red Hat e GNU Classpath
Versão estável
13.13 / 9 de janeiro de 2017 ( 09/01/2017 )
Repositório icedtea .classpath .org / hg / icedtea6
Escrito em C , C ++ e Java
Sistema operacional Linux , * BSD , macOS , Windows , Solaris
Plataforma IA-32, x86-64, ARM, sparc, sparc64, ppc, ppc64, s390, s390x
Modelo Máquina Virtual Java e Biblioteca Java
Licença Exceção de vinculação GPL +
Local na rede Internet icedtea .classpath .org
IcedTea-Web
Desenvolvedor (s) Red Hat e GNU Classpath
Versão estável
1.8.4 ( binários ) / 4 de junho de 2020 ( 2020-06-04 )
Repositório github .com / AdoptOpenJDK / icedtea-web
Escrito em C ++ e Java
Sistema operacional Linux , * BSD , OS X , Windows , Solaris
Modelo Suporte Java Web Start e plugin Java da web para miniaplicativos
Licença Exceção de vinculação GPL +
Local na rede Internet icedtea .classpath .org / wiki / IcedTea-Web
IcedTea-Sound
Desenvolvedor (s) Red Hat e GNU Classpath
Versão estável
1.0.1 / 18 de julho de 2014 ( 18/07/2014 )
Repositório icedtea .classpath .org / hg / icedtea-sound /
Escrito em C e Java
Sistema operacional Linux , * BSD , OS X , Windows , Solaris
Modelo Suporte de som
Licença Exceção de vinculação GPL +
Local na rede Internet icedtea .classpath .org / wiki / IcedTea-Sound

IcedTea é um projeto de construção e integração para OpenJDK lançado pela Red Hat em junho de 2007. IcedTea também inclui algumas bibliotecas adicionais: IcedTea-Web é uma implementação de software livre do Java Web Start e do plugin de miniaplicativo do navegador da web Java . IcedTea-Sound é uma coleção de plug-ins para o subsistema de som Java, incluindo o provedor PulseAudio que costumava ser incluído no IcedTea. A Free Software Foundation recomenda que todos os programadores Java usem IcedTea como seu ambiente de desenvolvimento.

Historicamente, o objetivo inicial do projeto IcedTea era tornar o software OpenJDK, que a Sun Microsystems lançou como software livre em 2007, utilizável sem a necessidade de nenhum software proprietário e, portanto, tornar possível adicionar o OpenJDK ao Fedora e outras distribuições Linux que insistem em software grátis. Este objetivo foi alcançado, e uma versão do IcedTea baseada no OpenJDK foi empacotada com o Fedora 8 em novembro de 2007. Em abril de 2008 foi lançado o primeiro lançamento de uma nova variante, IcedTea6, que é baseada no build do OpenJDK6 da Sun, um fork do OpenJDK com o objetivo de ser compatível com o JDK6 existente. Ele foi lançado no Ubuntu e Fedora em maio de 2008. O pacote IcedTea nessas distribuições foi renomeado para OpenJDK usando o aviso de marca comercial OpenJDK. Em junho de 2008, a compilação do Fedora passou nos rigorosos testes TCK da Sun em x86 e x86-64 . IcedTea 2, a primeira versão baseada em OpenJDK 7, foi lançada em outubro de 2011. IcedTea 3, a primeira versão baseada em OpenJDK 8, foi lançada em abril de 2016. O suporte para IcedTea 1 foi cancelado em janeiro de 2017.

História

Este projeto foi criado após o lançamento da Sun sob licenças de código aberto de seu HotSpot Virtual Machine e compilador Java em novembro de 2006, e a maior parte do código-fonte da biblioteca de classes em maio de 2007. No entanto, partes da biblioteca de classes, como renderização de fontes, gerenciamento de cores e suporte de som, eram fornecidos apenas como plug-ins binários proprietários. Isso acontecia porque o código-fonte desses plug-ins era protegido por direitos autorais de terceiros, e não da Sun Microsystems. As partes lançadas foram publicadas sob os termos da GNU General Public License , uma licença de software livre .

Devido a esses componentes ausentes, não foi possível construir o OpenJDK apenas com componentes de software livre . A Sun pretendia negociar com os detentores da licença para permitir que este código fosse lançado sob uma licença de software livre ou, na falta disso, substituir esses elementos proprietários por implementações alternativas. Com os plug-ins substituídos, a biblioteca de classes ficaria totalmente gratuita. A Sun continuou a usar o código proprietário em suas versões binárias certificadas.

Após o anúncio, o projeto IcedTea foi iniciado e foi formalmente anunciado em 7 de junho de 2007, com um repositório de construção fornecido pela equipe GNU Classpath . A equipe não pôde chamar seu produto de software de " OpenJDK " porque essa é uma marca comercial pertencente à Sun Microsystems . Em vez disso, eles decidiram usar o nome temporário "IcedTea" .

Em 5 de novembro de 2007, a Red Hat assinou o Sun Contributor Agreement e a licença OpenJDK Community Technology Compatibility Kit (TCK). O comunicado à imprensa sugeriu que isso beneficiaria o projeto IcedTea. Simon Phipps sugeriu a possibilidade do IcedTea ser hospedado em openjdk.java.net, e Mark Reinhold observou que assinar a atribuição de direitos autorais poderia permitir que a Red Hat contribuísse com partes do IcedTea para a Sun para inclusão no JDK principal.

Desde então, vários patches do IcedTea foram incluídos no OpenJDK.

Em junho de 2008, foi anunciado que o IcedTea6 (como a versão empacotada do OpenJDK no Fedora 9 ) passou nos testes (TCK) e pode reivindicar ser uma implementação Java 6 totalmente compatível. O projeto continua a rastrear o desenvolvimento do OpenJDK 6, OpenJDK 7 e OpenJDK 8 em repositórios separados e contribui com patches de volta ao upstream sempre que possível; o estado atual de cada patch do IcedTea é mantido no wiki do IcedTea.

Mira

O projeto IcedTea começou com dois objetivos:

  1. para torná-lo possível para o GCJ para compilar o código OpenJDK. O OpenJDK apresentou uma questão de autoinicialização , sendo escrito em Java. Conseqüentemente, os desenvolvedores precisavam de um compilador e runtime Java já em funcionamento para construir o OpenJDK. Originalmente, apenas o Sun JDK proprietário existente atendia a esse requisito. Distribuições gratuitas como o Fedora não podem depender de ferramentas proprietárias para construir pacotes, então o projeto IcedTea teve que tornar possível compilar o código usando software livre. Quando isso foi feito, a versão IcedTea resultante do OpenJDK poderia ser usada para compilar a si mesma, evitando assim a necessidade de usar software não-livre para compilações futuras.
  2. para fornecer equivalentes gratuitos dos plug-ins binários que existiam no OpenJDK porque a Sun não conseguiu liberar todo o código-fonte. A partir de março de 2008, isso não é mais necessário para IcedTea6, já que as gotas de compilação do OpenJDK 6 podem ser criadas sem plug-ins binários. Com o lançamento do b10, que substitui o suporte de som proprietário pelo do projeto Gervill, uma implementação completa do Java 1.6 pode ser construída sem plug-ins binários. O único plug binário restante é para suporte SNMP , que é um provedor opcional para a arquitetura JMX e não faz parte da especificação. A partir do b53 em abril de 2009, o mesmo se aplica ao OpenJDK 7. Fora do núcleo do OpenJDK, os plug-ins binários ainda são necessários para a utilização de miniaplicativos Java Web Start executados com o plug-in do navegador (diferente dos plug-ins principais discutidos anteriormente); a partir de 2013, o único código-fonte disponível que cumpre esse objetivo é o projeto IcedTea-Web.

Outros benefícios

O IcedTea também fornece um sistema de construção mais familiar, fornecendo um wrapper em torno dos makefiles do OpenJDK usando o GNU Autotools . Isso elimina a necessidade de lembrar várias variáveis ​​de ambiente para configurar a construção. (As compilações IcedTea atuais definem cerca de quarenta variáveis ​​para a compilação OpenJDK subjacente.) Ele também forneceu um local para o trabalho inicial em recursos que eventualmente aparecerão nas compilações principais do OpenJDK, como Gervill, e para trabalhar em portas para outras plataformas.

IcedTea-Web

Plug-in IcedTea NPR (baseado em IcedTea6) listado no Debian Iceweasel 6.0.2 (Knoppix 6.7.1)

IcedTea-web fornece um plugin de navegador da Web Java de software livre. Foi o primeiro a funcionar em navegadores de 64 bits no Linux de 64 bits, um recurso que o JRE proprietário da Sun abordou posteriormente. Isso o torna adequado para ativar o suporte para miniaplicativos Java no Mozilla Firefox de 64 bits , entre outros. O IcedTea-web também fornece uma implementação gratuita do Java Web Start ( Java Network Launching Protocol (JNLP) ). A Sun prometeu lançar seu plugin e implementação do Web Start como parte do OpenJDK. Apesar da pressão da comunidade, a Sun Microsystems não teve sucesso em fazê-lo antes de a empresa ser adquirida pela Oracle . O desenvolvimento do plug-in IcedTea-web continua, com a versão mais recente do plug-in de próxima geração compatível com o Chromium do Google, além do Firefox. Desde 2011, o desenvolvimento ocorre no projeto IcedTea-Web separado. Em abril de 2013, a Oracle manteve a base de código do plug-in Java totalmente proprietária, em contraste com o restante do OpenJDK. Em dezembro de 2017, IcedTea-Web 1.7.1 adiciona suporte para jdk9.

Em outubro de 2018, a Oracle anunciou que o suporte público ao Java Web Start terminará com o Java SE 11 . Em março, o código-fonte icedtea-web foi doado para o projeto AdoptOpenJDK . Com base nisso, as fontes e o gerenciamento de problemas do IcedTea-Web foram migrados para o GitHub . Um objetivo da migração é fornecer uma integração para as versões Java 8 do AdoptOpenJDK e fornecer instaladores independentes do fornecedor JDK para IcedTea-Web. O projeto de integração é uma cooperação entre a comunidade AdoptOpenJDK, RedHat e Karakun AG . O projeto para os instaladores é denominado OpenWebStart e as primeiras informações podem ser encontradas aqui .

Progresso e disponibilidade

A partir de junho de 2007, IcedTea foi capaz de construir a si mesmo e passar uma parte significativa do Mauve , a suíte de testes GNU Classpath. Em maio de 2008, foi adicionado suporte ao IcedTea para a execução de testes de regressão jtreg da Sun.

IcedTea se tornou popular entre os mantenedores de pacotes para as seguintes distribuições Linux. Atualmente (a partir de abril de 2012):

  • IcedTea é a JVM padrão no Ark Linux e Arch Linux .
  • Ele pode ser construído e executado no Debian . Os pacotes entraram na instável em 12 de julho de 2008.
  • IcedTea [7] estava disponível no Fedora 8 e IcedTea6 apareceu no Fedora 9 a 17 como java-1.6.0-openjdk. Um pacote java-1.7.0-openjdk usando a floresta IcedTea 2.x OpenJDK, mas não seu sistema de construção, apareceu pela primeira vez no Fedora 16.
  • Pacotes binários e fonte para IcedTea 3.x estão disponíveis no repositório oficial do Gentoo . Um pacote de origem para IcedTea 2.x continua sendo mantido no repositório de sobreposição Java. A instalação de um aplicativo Java por padrão requer IcedTea em vez de oracle-jdk porque ele pode ser instalado sem trabalho extra do usuário, já que os usuários precisam concordar manualmente com o EULA da Oracle para baixar o oracle-jdk.
  • O IcedTea está disponível no Ubuntu 7.10 (Gutsy Gibbon), no repositório "universe", e no IcedTea6 no 8.04 (Hardy Heron). A partir do Ubuntu 11.04, apenas o IcedTea está disponível.

Arquitetura

O OpenJDK continha aproximadamente (no lançamento em maio de 2007) 4% de código sobrecarregado, que foi empacotado apenas como plug-ins binários. Eles eram necessários para construir e usar o JDK. O OpenJDK 6 foi lançado com apenas 1% de código sobrecarregado e o suporte de som sobrecarregado também foi substituído. IcedTea6 é baseado nesta versão. O IcedTea ainda fornece seu próprio plug-in de navegador da web e suporte para Web Start, já que a implementação da Sun permanece proprietária .

IcedTea 1.xe 2.x pode compilar OpenJDK usando soluções baseadas em GNU Classpath como GCJ e opcionalmente auto-inicializar usando HotSpot Java Virtual Machine e o compilador Java javac que acabou de construir. Por enquanto, construir IcedTea 3.x requer o uso de IcedTea 2.x ou 3.x, ou um OpenJDK 7 ou 8 de outra fonte.

Suporte de plataforma

Portas de arquitetura cruzada de HotSpot (Máquina Virtual do OpenJDK) são difíceis, porque o código contém muita linguagem assembly , além do núcleo C ++ . O projeto IcedTea desenvolveu uma porta genérica do interpretador HotSpot chamada zero-assembler Hotspot (ou zero ), quase sem código de montagem. Esta porta destina-se a permitir que a parte do intérprete do HotSpot seja facilmente adaptada a qualquer arquitetura de processador Linux . O código do Hotspot zero-assembler foi usado para todas as portas não x86 do HotSpot ( PPC , IA-64 , S390 e ARM ) da versão 1.6 do IcedTea7.

O projeto IcedTea também desenvolveu um compilador just-in-time independente de plataforma chamado Shark for HotSpot, usando LLVM , para complementar o Zero . Isso foi incluído no OpenJDK upstream em agosto de 2010. Um JIT para ARM32 foi incluído pela primeira vez em 1.6.0 e 2.1.1. Uma porta nativa para AArch64 da Red Hat apareceu em 2.4.6 e uma porta PPC64 nativa de SAP / IBM será incluída em 2.5.0. A porta PPC / AIX está incluída no OpenJDK a partir da versão 8u20, e a porta AArch64 será incluída na versão 9.

Veja também

Referências

links externos