OpenJDK
OpenJDK ("Open Java Development Kit") é uma implementação livre e gratuita da plataforma Java, Edição Standard ("Java SE"). É o resultado dos esforços da Comunidade Java para a evolução atemporal da linguagem. Serve como incubadora de novas ideias que normalmente são implementadas no JDK comercial da Oracle para serem rentabilizadas posteriormente. É uma implementação licenciada pela GNU GPL versão 2 com excepção de linguagem. OpenJDK é a referência oficial de implementação desde a versão 7.
Desenvolvedor | Oracle Corporation, Comunidade OpenJDK & Java, Red Hat, Azul Systems, IBM, Apple Inc, SAP AG |
Lançamento | 8 de maio de 2007 (17 anos) |
Versão estável | 22.0.0[1][2] (19 de março de 2024 ) |
Escrito em | C++ e Java |
Sistema operacional | Linux, FreeBSD, Mac OS X, Microsoft Windows, OpenIndiana; vários outros portes em andamento |
Gênero(s) | Plataforma Java, Máquina virtual Java e Biblioteca |
Licença | GPL+linking exception |
Estado do desenvolvimento | Ativo |
Página oficial | openjdk |
Repositório | github |
História
editarPromessa da Sun e lançamento inicial
editarA Sun anunciou no JavaOne 2006 que o Java se tornaria um software livre de código aberto,[3] [4] e em 25 de outubro 2006, na conferência Oracle OpenWorld, Jonathan Schwartz disse que a empresa estava pronta para anunciar a abertura do núcleo da plataforma Java dentro de 30 a 60 dias.
A Sun liberou a máquina virtual HotSpot e o compilador como software livre sob a GNU General Public License em 13 de novembro 2006, com uma promessa de que o resto do JDK (que inclui o JRE) seria colocada sob a GPL em Março de 2007 ( "salvo para alguns componentes que a Sun não tem o direito de publicar em forma fonte sob a GPL ").[5] De acordo com Richard Stallman, isto significaria o fim da armadilha do Java.[6] Mark Shuttleworth chamou o anúncio impresso inicial, "Um verdadeiro marco para a comunidade de software livre".[7]
O lançamento da biblioteca de classes
editarSeguindo a sua promessa de liberar uma JDK plenamente compilável baseada quase totalmente em software livre e de código aberto, no primeiro semestre de 2007 , a Sun lançou o código fonte completo da biblioteca de classe sob a GPL em 8 de maio de 2007, com exceção de algumas partes limitadas que foram licenciadas pela Sun de terceiros que não querem seu código liberado sob uma licença de software livre e de código-fonte aberto.[8] Incluído na lista de componentes restritos estavam vários componentes importantes do sistema de interface gráfica com o usuário (GUI) do Java. A Sun declarou que seu objetivo era o de substituir os componentes que continuavam a ser proprietário e closed source com implementações alternativas e fazer a biblioteca de classes totalmente aberta.[9]
Comunidade e as melhorias
editarEm 5 de novembro de 2007, a Red Hat anunciou um acordo com a Sun Microsystems, assinando o contrato da Sun para amplo contribuinte (que inclui participação em todos os projetos de software livre e de código aberto liderados pela Sun por engenheiros da Red Hat) e do contrato de licença para a comunidade TCK do OpenJDK da Sun( Isso da à empresa acesso a suíte de teste que determina se um projeto com base em openJDK está em conformidade com as especificações Java SE 6).[10]
Também em Novembro de 2007, foi criado um grupo de portadores (aqui um "portadores" é um anglicismo para pessoas que portam) para OpenJDK[11] para ajudar nos esforços de portar a OpenJDK para arquiteturas de CPU e sistemas operacionais diferentes. O projeto de portabilidade para BSD [1], liderado por Kurt Miller e Greg Lewis e o projeto de portabilidade do Mac OS X (com base no BSD) SoyLatte liderada por Landon Fuller [2] manifestaram interesse em aderir ao OpenJDK, através do grupo de portadores e em janeiro 2008 fazem parte da lista de discussões por correio eletrônico. Outro projeto com formalização pendente do grupo de portadores é o Haiku Java Team, liderada por Bryan Varner.[12]
Em dezembro de 2007, a Sun moveu o controle de revisão do OpenJDK de TeamWare para o Mercurial, como parte do processo de liberação para as comunidades de código aberto.[13][14]
O OpenJDK tem um rigoroso processo de aceitar contribuições de código: cada contribuição proposta deve ser analisada por dois engenheiros da Sun e ter o teste automático demonstrando que tal funcionalidade foi atingida. Isso garante a persistência da alta qualidade do código, mas também significa que mesmo uma correção trivial pode levar várias semanas para ser aprovada.[15] No entanto, embora inicialmente as correções propostas pela comunidade fossem submetidas pela Sun no codebase, setembro de 2008 viu os primeiros patches (significativos) diretamente submetidos por alguém de fora ou mesmo um ex empregado da Sun.[16]
Inclusão em distribuições Linux
editarEm Maio de 2008, o Fedora 9 [17][18] e Ubuntu 8.04[19] e as distribuições foram liberando o OpenJDK, baseado totalmente em software livre e de código aberto.[20]
OpenJDK não passar em todos os testes da compatibilidade do Java SE 6 e JCK, no momento, porque o restante foi comprometido. Eles tinham entretanto sido reduzida para menos de 1% do código fonte[21] e só foram necessários para construir com OpenJDK,[22] nem publicá-lo. Além disso, OpenJDK pode executar aplicações complexas, tais como NetBeans, Eclipse, Glassfish, ou JBoss.
Em junho de 2008, foi anunciado que IcedTea6 (como a versão do OpenJDK empacotado no Fedora 9) passou a Technology Compatibility Kit nos testes e pode afirmar-se uma implementação totalmente compatível Java 6.[23]
Em 12 de julho de 2008, Debian aceite OpenJDK-6 no unstable,[24][25] e está agora no stable.[26]
Desde agosto de 2008, OpenJDK 7 roda em Mac OS X e outras distribuições BSD.[27]
Estado
editarVersões com suporte a JDK
editarOpenJDK foi inicialmente baseado apenas no JDK versão 7.0 da plataforma Java.[28]
Desde 15 de fevereiro de 2008, existem dois projectos distintos OpenJDK:
- O principal OpenJDK projeto, que é baseado na versão 7.0 do JDK e na plataforma Java,
- O JDK 6 projecto, que prevê uma versão do Open-source Java 6.0.[29]
Compilador e Máquina Virtual
editarCompilador Java da Sun, javac, e HotSpot a (máquina virtual), estão agora sob uma licença GPL.
Biblioteca de classes
editarEm Maio de 2008, a única parte da biblioteca de classes que restou proprietária e de código-fonte fechado (4% a partir de Maio de 2007 para a OpenJDK 7,[30]e menos de 1% a partir de Maio de 2008 e OpenJDK 6[17][21]) é [31][32] a implementação de SNMP.[32] Em abril de 2009 no OpenJDK7 b59 a necessidade de conectar a elementos fechados foi removida.
Desde o primeiro lançamento Maio de 2007, Sun Microsystems, com a ajuda da comunidade, foi lançado como livre e software de fonte aberta ou substituído por software livre e de código-fonte aberto alternativas quase todos os sobrecarregados código:
- Todo o código do motor de áudio, incluindo o software sintetizador, foi lançado como Open-source.[32][33] O software de código fechado sintetizador foi substituído por um novo sintetizador desenvolvido especificamente para o OpenJDK chamado Gervill,[34]
- Toda criptografia de classes utilizadas na classe biblioteca ter sido lançado como Open-source,[35]
- O código de escalas é rasteriza fontes, foi substituído pelo FreeType[36][37][38]
- O nativo gerenciamento de cores sistema foi substituído por LittleCMS.[37] Existe uma camada acopláveis na JDK, a fim de que a versão comercial poderá utilizar o antigo sistema de gerenciamento de cores e OpenJDK podem usar LittleCMS.
- O anti-aliasing gráficos rasteriza código foi substituído pelo Open-sourced Pisces renderizador utilizado no projecto phoneME.[37][39][40] Este código é completamente funcional, mas ainda precisa de alguns aperfeiçoamentos de desempenho,[41]
- O JavaScript plugin foi aberto (o Rhino JavaScript engine em si foi aberto).[42]
IcedTea
editarDevido à sobrecarregada componentes da classe de biblioteca, não foi possível construir OpenJDK apenas com componentes de software livre. A fim de ser capaz de fazer isso antes de toda a classe de biblioteca é feita livremente, e ser capaz de agrupar OpenJDK no Fedora e outras distribuições Linux, um projeto chamado IcedTea foi iniciada pela Red Hat. É basicamente um OpenJDK/GNU Classpath híbrido que pode ser usado para bootstrap OpenJDK usando somente software livre.[43][44]
IcedTea é um software desenvolvimento e integração projecto lançado pela Red Hat, em Junho de 2007.[45] O objetivo é fazer o que OpenJDK software da Sun Microsystems lançado como software livre em 2007 utilizáveis sem exigir qualquer outro software que não é software livre. Para Red Hat, isto tornaria possível adicionar OpenJDK para o Fedora, bem como outras distribuições Linux.
Em 5 de novembro de 2007, Red Hat tenha assinado tanto o Sun Contributor Agreement e do OpenJDK comunitária TCK Licença.[46] Uma das primeiras vantagens deste acordo é o alinhamento com as mais rigorosas projecto do IcedTea, que reúne Fedora e JBoss tecnologias em um ambiente Linux, IcedTea fornece alternativas de software livre para as poucas seções proprietárias restantes no projeto OpenJDK.
Fedora 9 com OpenJDK 6 na vez do IcedTea.[17]
IcedTea do Ubuntu foi empacotado para o desenvolvimento.[47]
Veja também
editar- javac, compilador Java da Sun, agora sob uma licença GPL
- HotSpot, Máquina Virtual da Sun, agora sob uma licença GPL
- Java Class Library
- Free Java implementations
- Java 2 Standard Edition
- Apache Harmony
Referências
- ↑ OpenJDK. «JDK Project»
- ↑ «JDK 22 Release Notes». www.oracle.com. 19 de março de 2024. Consultado em 20 de março de 2024
- ↑ Schwartz, Jonathan (23 de Maio de 2006). «Busy Week...». Sun Microsystems. Consultado em 9 de maio de 2007. Arquivado do original em 12 de março de 2012
- ↑ «Sun Opens Java». Sun Microsystems. Consultado em 12 de março de 2009. Arquivado do original (Theora) em 12 de março de 2012
- ↑ «Sun Opens Java». Sun Microsystems. 13 de Novembro de 2006. Consultado em 9 de maio de 2007
- ↑ Stallman, Richard. «Free But Shackled - The Java Trap». Consultado em 4 de dezembro de 2007
- ↑ «Sun 'releases' Java to the world». BBC News. 13 de Novembro de 2006. Consultado em 9 de maio de 2007
- ↑ «Open JDK is here!». Sun Microsystems. 8 de Maio de 2007. Consultado em 9 de maio de 2007
- ↑ Since there's some encumbered code in the JDK, Sun stated that it will continue to use that code in commercial releases until it's replaced by fully-functional free and open-source alternatives
- ↑ «Red Hat and Sun Collaborate to Advance Open Source Java Technology». www.businesswire.com
- ↑ «OpenJDK Porters». openjdk.java.net
- ↑ «New java for haiku team formed». Consultado em 14 de março de 2009. Arquivado do original em 5 de janeiro de 2008
- ↑ James Gosling (2006). «James Gosling on Open Sourcing Sun's Java Platform Implementations, Part 1». Robert Eckstein
- ↑ O'Hair, Kelly (12 de dezembro de 2007). «Mercurial OpenJDK Questions». Consultado em 14 de março de 2009. Arquivado do original em 12 de março de 2012
- ↑ Tripp, Andy (16 de julho de 2007). «Classpath hackers frustrated with slow OpenJDK process». Consultado em 20 de abril de 2008
- ↑ Kennke, Roman (29 de setembro de 2008). «A small step for me». Consultado em 19 de outubro de 2008. Arquivado do original em 3 de outubro de 2008
- ↑ a b c Wade, Karsten (13 de março de 2008). «OpenJDK in Fedora 9!». redhatmagazine.com. Consultado em 5 de abril de 2008.
Thomas Fitzsimmons updated the Fedora 9 release notes source pages to reflect that Fedora 9 would ship with OpenJDK 6 instead of the IcedTea implementation of OpenJDK 7. Fedora 9 (Sulphur) is due to release in May 2008.
- ↑ «Open Source Java Technology Debuts In GNU/Linux Distributions». Sun Microsystems. Consultado em 2 de maio de 2008
- ↑ «openjdk-6 in Ubuntu». Consultado em 19 de abril de 2008
- ↑ Reinhold, Mark (24 de abril de 2008). «There's not a moment to lose!». Consultado em 19 de abril de 2008. Arquivado do original em 29 de abril de 2008
- ↑ a b Angel, Lillian (13 de março de 2008). «OpenJDK to replace IcedTea in Fedora 9». Consultado em 5 de abril de 2008. Arquivado do original em 10 de dezembro de 2012
- ↑ «OpenJDK 6 Source Release». Consultado em 1 de junho de 2008
- ↑ Sharples, Rich (19 de junho de 2008). «Java is finally Free and Open». Consultado em 15 de março de 2009. Arquivado do original em 20 de junho de 2008
- ↑ Topic, Dalibor (14 de julho de 2008). «QotD: Debian Overview of openjdk-6 source package». Consultado em 15 de julho de 2008
- ↑ «Overview of openjdk-6 source package». debian.org. Consultado em 15 de julho de 2008
- ↑ «Package: openjdk-6-jdk». debian.org. 14 de fevereiro de 2009. Consultado em 16 de fevereiro de 2009
- ↑ Fuller, Lqndon (19 de agosto de 2008). «SoyLatte, Meet OpenJDK: OpenJDK 7 for Mac OS X». Consultado em 22 de agosto de 2008
- ↑ «Didn't you promise to open source both JDK 6 and JDK 7 last November? What happened to JDK 6?». Sun Microsystems. Consultado em 14 de outubro de 2007.
Sun did make that promise, and we plan to keep it. But in the six months since the November 2006 announcement, it has become clear that doing this is far more complex than just changing the license and publishing the source code.
- ↑ Darcy, John (11 de fevereiro de 2008). «The code is coming! The code is coming!». Consultado em 16 de fevereiro de 2008.
At Sun we're making final preparations for the first source release for the OpenJDK 6 project. We plan to release a tarball of the source, along with matching binary plugs, by February 15, 2008.
- ↑ Fitzsimmons, Thomas (18 de maio de 2007). «Plans for OpenJDK». Consultado em 22 de maio de 2007
- ↑ Herron, David (4 de outubro de 2007). «Plans for OpenJDK». Consultado em 9 de outubro de 2007. Arquivado do original em 11 de outubro de 2007
- ↑ a b c «OpenJDK 6 b10 source posted». 30 de maio de 2008. Consultado em 1 de junho de 2008
- ↑ «Audio Synthesis Engine Project». openjdk.java.net
- ↑ «Gervill - Software Synthesizer». Consultado em 1 de junho de 2008. Arquivado do original em 4 de outubro de 2011
- ↑ «Crypto has been added to OpenJDK». 27 de setembro de 2007. Consultado em 7 de outubro de 2007
- ↑ «Font Scaler». openjdk.java.net
- ↑ a b c «2D Graphics Group». openjdk.java.net
- ↑ «Freetype font rasteriser». 7 de agosto de 2007. Consultado em 24 de novembro de 2007
- ↑ «phoneme.dev.java.net/». Consultado em 15 de março de 2009. Arquivado do original em 10 de junho de 2007
- ↑ «Graphics Rasterizer Project». openjdk.java.net
- ↑ Graham, Jim (3 de outubro de 2007). «Open Source rasterizer». Sun Microsystems. Consultado em 9 de maio de 2007
- ↑ «Javascript is encumbered and there is no javascript plugin support.». IcedTea. 11 de março de 2008. Consultado em 1 de junho de 2008.
Changing Summary. JavaScript is no longer encumbered, but we still need liveconnect support.
- ↑ Andrew, Haley (7 de junho de 2007). «Experimental Build Repository at icedtea.classpath.org». Consultado em 9 de junho de 2007. Arquivado do original em 20 de agosto de 2007
- ↑ Mark, Wielaard (7 de junho de 2007). «Experimental Build Repository at icedtea.classpath.org». Consultado em 9 de junho de 2007
- ↑ Fitzsimmons, Thomas (8 de junho de 2007). «Credits». Consultado em 8 de junho 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
- ↑ «icedtea-java7 in Ubuntu». Consultado em 19 de abril de 2008
Ligações externas
editar- «Sítio oficial» (em inglês)
- «OpenJDK FAQ». Consultado em 12 de março de 2009. Arquivado do original em 26 de fevereiro de 2009
- «OpenJDK - The First Year by Mark Reinhold». Consultado em 12 de março de 2009. Arquivado do original em 2 de fevereiro de 2008