IcedTea
Desenvolvedor | Red Hat / GNU Classpath |
Versão estável | 2.3.8 (11 de março de 2013 ) |
Sistema operacional | Multiplataforma |
Gênero(s) | Máquina virtual Java e Biblioteca |
Licença | GPL+linking exception |
Página oficial | http://icedtea.classpath.org |
Desenvolvedor | Red Hat / GNU Classpath |
Versão estável | 1.3.1 (7 de novembro de 2012 ) |
Sistema operacional | Multiplataforma |
Gênero(s) | Máquina virtual Java e Biblioteca |
Licença | GPL+linking exception |
Página oficial | http://icedtea.classpath.org/wiki/IcedTea-Web |
Desenvolvedor | Red Hat / GNU Classpath |
Versão estável | 1.12.4 (4 de março de 2013 ) |
Sistema operacional | Multiplataforma |
Gênero(s) | Máquina virtual Java e Biblioteca |
Licença | GPL+linking exception |
Página oficial | http://icedtea.classpath.org |
IcedTea é um software de desenvolvimento e projecto de integração lançado pela Red Hat, em junho de 2007.[1] O objetivo é fazer o software OpenJDK que a Sun Microsystems lançou como software livre em 2007, utilizável sem exigir qualquer outro software que não é livre. Para a Red Hat, isto tornaria possível adicionar o OpenJDK ao Fedora Linux, bem como outras distribuições. Esta meta foi cumprida; e uma versão do IcedTea baseada em OpenJDK foi empacotada com o Fedora 8 em novembro de 2007. Em abril de 2008, viu-se o primeiro lançamento[2] de uma nova variante, IcedTea6, que se baseia no build do OpenJDK6 da Sun, um fork do OpenJDK, com o objectivo de ser compatível com o actual JDK6. Este foi liberada no Ubuntu e Fedora, em maio de 2008. O pacote IcedTea, nessas distribuições, foi renomeado para OpenJDK com o anúncio da marca OpenJDK. Em junho de 2008, o Fedora fez seu build passar nos rigorosos testes TCK da Sun[3] em x86 e x86-64.
História
[editar | editar código-fonte]Este projeto foi criado na sequência da Sun liberar seu HotSpot Virtual Machine e compilador Java, em novembro de 2006; e mais do código fonte da classe de biblioteca em maio de 2007. No entanto, parte da biblioteca da classe, como a renderização de fontes, gerenciamento de cores e suporte a som, só foram fornecidas como plugins binários proprietários. Isto porque o código fonte para estes plugins pertence a terceiros, em vez da Sun Microsystems.[4] As partes foram liberadas publicadas sob os termos da GNU General Public License, uma licença de software livre.
Devido a estes componentes em falta, não foi possível construir o OpenJDK apenas com componentes em software livre. A Sun é destinada a negociar com os titulares de licença para permitir esse código a ser liberado sob uma licença livre; ou na falta deste, para substituir estes elementos proprietários com implementações alternativas. Com os plugins substituídos, a biblioteca de classes seria então totalmente livre. A Sun tem continuado a usar o código proprietário em seu certificado de versões binárias.[5]
Na sequência do anúncio, o projeto IcedTea foi iniciado e formalmente anunciado em 7 de junho de 2007,[6] com build de um repositório fornecido pela equipe GNU Classpath. A equipe não podia chamar seu software produto de "OpenJDK" porque esta é uma marca comercial de propriedade da Sun Microsystems. Eles decidiram, em vez disso, o nome temporário "IcedTea".[7]
Em 5 de novembro de 2007, quanto à Red Hat e à Sun Contributor Agreement, ambos assinaram um acordo com a Comunidade OpenJDK, a Licença TCK. O comunicado de imprensa sugeriu que isso iria beneficiar o projeto IcedTea.[8] Simon Phipps sugeriu a possibilidade de estar hospedando IcedTea no openjdk.java.net;[9] e Mark Reinhold notou que a assinatura da cessão de direitos autorais poderia permitir que a Red Hat contribuísse com os componentes do IcedTea à Sun para inclusão no JDK mainstream.[10][11]
Desde então, uma série de patches para IcedTea6 fizeram seu caminho para OpenJDK6, por exemplo.[12][13]
Em junho de 2008, foi anunciado que IcedTea6 (como a versão do pacote OpenJDK no Fedora 9) passou nos testes Technology Compatibility Kit; e pode-se afirmar uma implementação totalmente compatível com Java 6.[14]
Objetivos
[editar | editar código-fonte]Especificamente, o projeto IcedTea começou com dois objetivos. Um deles é que seja possível para o GNU Compiler for Java compile o código OpenJDK. O problema era que o único programa que poderia compilar o software proprietário OpenJDK existente era o Sun JDK. Distribuições livres como o Fedora não podem depender de ferramentas proprietárias para construir pacotes, de modo que o projeto IcedTea teve de tornar possível compilar o código utilizando software livre. Quando isso foi feito, a versão resultante do IcedTea do OpenJDK poderia ser utilizada para compilar a si mesma, escapando assim, a necessidade de uso de software não-livre às futuras compilações.[6][15]
A segunda tarefa foi de fornecer equivalentes livres de plugins binários que existiam no OpenJDK, porque a Sun não foi capaz de liberar todo o código-fonte. A partir de março de 2008, isso já não é necessário para IcedTea6, como o OpenJDK6 build pode ser construído sem plugins binários. Com o lançamento do b10,[16] que substitui o suporte proprietário a som, a partir do projecto Gervill, uma implementação plena do Java 1.6 que podem ser construída sem plugins binários. O único remanescente é um plugin binário para suporte SNMP, que é um provedor opcional de arquitectura JMX e não faz parte das especificações.
Benefícios
[editar | editar código-fonte]O IcedTea fornece um plugin Java Web browser em software livre. Foi o primeiro a trabalhar em navegadores de 64 bits em Linux de 64 bits, uma característica proprietária do JRE da Sun conduzida mais tarde.[17] Isto o torna adequado para habilitar o suporte a Java applets em Firefox de 64 bits, entre outros. Além disso, o suporte Java Web Start é por meio do NETX.[18] Sun fez promessas sobre lançar seu plugin e implementação de Web Start, como parte do OpenJDK, mas até agora não cumpriu,[19] apesar da contínua pressão da comunidade.[20] O desenvolvimento do plugin IcedTea continua, com a última versão da próxima geração do plugin com suporte ao Google Chromium.[21] O desenvolvimento atual tem lugar no rojeto separaddI cedTea Web.[22]
IcedTea fornece também build de sistema mais familiar, proporcionando um wrapper em torno do OpenJDK makefiles utilizando o GNU Autotools. Isso elimina a necessidade de lembrar um grande número de variáveis do ambiente para configurar e construir (o actual IcedTea constrói um conjunto de cerca de 40 dessas variáveis à construção subjacente ao OpenJDK). Também tem desde cedo um lugar para trabalhar em características que acabarão por aparecer nas principais builds do OpenJDK, como Gervill[23]; e ao trabalho nos portes para outras plataformas.
Evolução e avaliação
[editar | editar código-fonte]Em junho de 2007, o Fedora está trabalhando no IcedTea; e uma porção significativa da Mauve, a suíte de testes do GNU Classpath, executado com êxito no mesmo.[24] Em maio de 2008, o suporte foi adicionado ao IcedTea para rodar os testes de regressão Sun jtreg.[25]
IcedTea é o padrão na JVM no Ark Linux.[26]
IcedTea está disponível no Ubuntu 7.10 (Gutsy Gibbon), a partir do "universo" repositório;[27] e IcedTea6 no 8.04 (Hardy Heron).[28]
IcedTea está disponível no Fedora 8 e IcedTea6 no Fedora 9 (como java-1.6.0-openjdk), a partir do repositório "yum". Pacotes (e builds) para IcedTea6 estão disponíveis no Gentoo no repositório oficial, mas eles são marcados como instáveis.
Pode ser construído e executado no Debian.[29] Pacotes binários foram apresentadas em 20 de abril. Em abril de 2008, mas foram rejeitados devido a problemas com alguns arquivos de licenciamento.[30][31] Um novo pacote foi carregado em junho de 2008;[32] e entrou instável em 12 de julho de 2008.
Arquitectura
[editar | editar código-fonte]OpenJDK contém aproximadamente (no lançamento, em maio de 2007) 4% de código sobrecarregado,[7] que só foi empacotado como plugins binários. Esses eram necessários para construir e usar o JDK. OpenJDK6 foi lançada com apenas 1% de código sobrecarregado; e seu suporte a som também já foi substituído. IcedTea6 baseia-se nesta versão. IcedTea6 ainda fornece suporte web browser, o suporte Web Start, como a implementação da Sun continua a ser proprietária.
IcedTea substitui o plugins binários com o equivalente ao código GNU Classpath, compilando tudo com GCJ e opcionalmente bootstraps a si mesma, usando o HotSpot e Java Virtual Machine; e o javac, compilador Java, que apenas dá um built.[33]
Zero e Shark
[editar | editar código-fonte]Portes de HotSpot e (OpenJDK; Virtual Machine) são difíceis, porque o código contêm bastantes optimizações em Assembly para além do núcleo C++.[34] O projecto IcedTea desenvolveu um porte genérico do interpretador HotSpot zero-assembler Hotspot (ou zero),[35] com quase nenhum código assembly.[36][37] Este porte é destinado a permitir adaptar o Linux na arquitetura do processador, tornando potencial infinito em portáteis.[38] O código do HotSpot zero-montador é utilizado para todos os não-x86 portes do HotSpot (PPC, IA64, S390 e ARM) desde a versão 1.6.[39][40][41]
O rojetoI cedTea já está desenvolvendo uma plataforma independente de compilador just-in-time chamado Shark para HotSpot, utilizando LLVM, para complementar Zero.[37][42] Concluindo este trabalho, fará com que o Java Virtual Machine seja independente da arquitetura de CPU.
Referências
[editar | editar código-fonte]- ↑ Fitzsimmons, Thomas (8 de junho de 2007). «Credits». Consultado em 8 de junho de 2007
- ↑ Angel, Lillian (4 de abril de 2008). «IcedTea6 1.1 Released». Consultado em 12 de julho de 2008. Arquivado do original em 31 de outubro de 2008
- ↑ Sharples, Rich (19 de junho de 2008). «Java is finally Free and Open». Consultado em 19 de junho de 2008. Arquivado do original em 20 de junho de 2008
- ↑ «Open JDK is here!». Sun Microsystems. 8 de maio de 2007. Consultado em 9 de maio de 2007
- ↑ «Sun's OpenJDK FAQ».
Now Sun is open sourcing most of the remaining components of the JDK, with the exception of a few encumbered components that we hope, with the community's help, can be re-implemented so that 100% of the OpenJDK code commons is available as free software…Sun will continue to use that code in commercial releases until it's replaced by fully-functional open-source alternatives
- ↑ a b Haley, Andrew (7 de junho de 2007). «Experimental Build Repository at icedtea.classpath.org». Consultado em 9 de junho de 2007
- ↑ a b Fitzsimmons, Thomas (18 de maio de 2007). «Plans for OpenJDK». Consultado em 22 de maio de 2007
- ↑ «Red Hat and Sun Collaborate to Advance Open Source Java Technology». Red Hat. 5 de novembro de 2007. Consultado em 6 de novembro de 2007. Arquivado do original em 25 de agosto de 2007
- ↑ Phipps, Simon (5 de novembro de 2007). «Red Hat Joins OpenJDK». Consultado em 14 de novembro de 2007. Arquivado do original em 22 de fevereiro de 2008
- ↑ Reinhold, Mark (5 de novembro de 2007). «Welcome, Red Hat!». Consultado em 14 de novembro de 2007. Arquivado do original em 22 de fevereiro de 2008
- ↑ Andrew, Haley (16 de maio de 2008). «Open source project: OpenJDK»
- ↑ «Bug ID 6523403: OSS CMM: Need to provide lcms library with PYCC and LINEAR_RGB OS ICC profiles». Consultado em 12 de julho de 2008
- ↑ «Bug ID 6604044 java crashes talking to second X screen». Consultado em 12 de julho de 2008
- ↑ Sharples, Rich (19 de junho de 2008). «Java is finally Free and Open». Consultado em 9 de julho de 2009. Arquivado do original em 20 de junho de 2008
- ↑ Wielaard, Mark (7 de junho de 2007). «Experimental Build Repository at icedtea.classpath.org». Consultado em 9 de junho de 2007
- ↑ «OpenJDK6 b10 source posted». 30 de maio de 2007. Consultado em 12 de julho de 2008
- ↑ «Java SE 6 Update 12 Release Notes». Consultado em 28 de Outubro de 2009
- ↑ Netx is a high-quality implementation of the Java Network Launching Protocol (JNLP).
- ↑ Darcy, Joe (8 de junho de 2009). «OpenJDK and the new plugin». Consultado em 5 de setembro de 2009
- ↑ Hughes, Andrew John (21 de agosto de 2009). «Opensource plugin&webstart - when?». Consultado em 5 de setembro de 2009
- ↑ Bhole, Deepak (26 de agosto de 2009). «IcedTea Java plugin with Chromium and Firefox 3.6A1». Consultado em 5 de setembro de 2009
- ↑ Bhole, Deepak (2 de fevereiro de 2011). «First release of IcedTea-Web!». Consultado em 4 de abril de 2011
- ↑ a generic synthesizer for Java
- ↑ Kung, Francis (21 de junho de 2007). «Mauve test run results». Consultado em 12 de junho de 2007
- ↑ Wielaard, Mark. «jtreg testing integrated». Consultado em 12 de julho de 2008
- ↑ «Ark Linux packages». Ark Linux. Consultado em 23 de fevereiro de 2008. Arquivado do original em 14 de março de 2008
- ↑ «Ubuntu -- Details of icedtea-java7-jre in gutsy». Ubuntu Packages. Consultado em 26 de outubro de 2007
- ↑ «Ubuntu -- Details of package openjdk-6-jre in hardy». Ubuntu Packages. Consultado em 12 de julho de 2008
- ↑ «Debian Building Instructions». IcedTea Wiki. Consultado em 21 de maio de 2008
- ↑ «openjdk-6 - Debian NEW package overview». Debian ftp-master. Consultado em 21 de maio de 2008
- ↑ «jdk6 - GPL-compatible free software licenses and documented copyrights and licenses». Consultado em 12 de julho de 2008
- ↑ «openjdk-6 - Debian NEW package overview». Debian ftp-master. Consultado em 12 de julho de 2008
- ↑ Wielaard, Mark (7 de junho de 2007). «IcedTea». Consultado em 9 de junho de 2007
- ↑ Benson, Gary (6 de novembro de 2007). «Gary's guide to porting IcedTea». Consultado em 26 de janeiro de 2008. Arquivado do original em 3 de maio de 2012
- ↑ «Zero-Assembler Project». Consultado em 22 de agosto de 2008
- ↑ «ZeroSharkFaq». icedtea.classpath.org. Consultado em 30 de maio de 2009
- ↑ a b Benson, Gary (28 de maio de 2008). «28 May 2008». Red Hat. Consultado em 30 de maio de 2008.
Shark is a platform-independent JIT for HotSpot, to complement the zero-assembler interpreter we’ve been using
- ↑
Benson, Gary (21 de maio de 2009). «Zero and Shark: a Zero-Assembly Port of OpenJDK». java.net. Consultado em 30 de maio de 2009. Arquivado do original em 31 de maio de 2009.
We started an experimental port of OpenJDK without assembly language, using free software libraries to bridge the gaps. This experiment evolved to become the zero-assembly port of OpenJDK -- Zero -- and its just-in-time compiler Shark.
- ↑ Benson, Gary (1 de fevereiro de 2008). «1st February 2008». Consultado em 3 de fevereiro de 2008. Arquivado do original em 3 de maio de 2012
- ↑ Haley, Andrew (31 de janeiro de 2008). «Making zero-assembler the default on ppc». Consultado em 3 de fevereiro de 2008
- ↑ Angel, Lillian (13 de fevereiro de 2008). «IcedTea 1.6 Released with Zero-assembler and JNLP support!». Red Hat. Consultado em 13 de fevereiro de 2008
- ↑ Benson, Gary (31 de março de 2008). «31 March 2008». Red Hat. Consultado em 30 de maio de 2008
Ligações externas
[editar | editar código-fonte]- «IcedTea página principal» (em inglês)
- «IcedTea Status» (em inglês)
- «IcedTea anúncio» (em inglês)
- «Classpath mailing list announcement» (em inglês)
- «Thomas Fitzsimmons (Red Hat promotor) entrada no blog anunciando IcedTea» (em inglês)
- «Guia para o porte IcedTea» (em inglês)
- «OpenJDK e IcedTea, uma vista do lado Fedora» (em inglês)