OpenJDK - OpenJDK

OpenJDK
OpenJDK logo.svg
Utvikler (er) Oracle , OpenJDK og Java Community, Red Hat , Azul Systems , IBM , Microsoft , Amazon , Apple , SAP
Første utgivelse 8. mai 2007 ; 14 år siden ( 2007-05-08 )
Oppbevaringssted
Skrevet inn C ++ og Java
Operativsystem Linux , FreeBSD , macOS , Microsoft Windows , OpenIndiana ; flere andre havner pågår
Type Java plattform
Tillatelse Kun GPL-2.0 med unntak for tilknytning
Nettsted OpenJDK .java .net

OpenJDK ( Open Java Development Kit ) er en gratis og åpen kildekode- implementering av Java Platform, Standard Edition (Java SE). Det er resultatet av en innsats Sun Microsystems begynte i 2006. Implementeringen er lisensiert under GPL-2.0-only med et tilknytningsunntak . Uten unntak av GPL -tilknytningsunntaket, ville komponenter som var knyttet til Java -klassebiblioteket, underlagt vilkårene i GPL -lisensen. OpenJDK er den offisielle referanseimplementeringen av Java SE siden versjon 7.

Komponenter

OpenJDK -prosjektet produserer en rekke komponenter: viktigst av alt den virtuelle maskinen ( HotSpot ), Java Class Library og Java -kompilatoren ( javac ).

Nettleser-pluginet og Web Start , som er en del av Oracle Java , er ikke inkludert i OpenJDK. Sun indikerte tidligere at de ville prøve å åpne disse komponentene, men verken Sun eller Oracle har gjort det. De eneste tilgjengelige gratis plugin- og Web Start -implementeringene fra 2016 er de som tilbys av IcedTea .

OpenJDK 9+ støtter AOT -kompilering ( jaotc) ved bruk av GraalVM (JEP 295). Det eksperimentelle -XX:+EnableJVMCIProductflagget muliggjør bruk av Graal JIT (JEP 317).

OpenJDK -versjoner

OpenJDK var opprinnelig bare basert på JDK 7 -versjonen av Java -plattformen.

Siden JDK 10 ble arbeidet med å produsere en åpen kildekode-referanseimplementering av Java SE-plattformen flyttet over til JDK-prosjektet. I motsetning til tidligere JDK Release Projects, som bare produserte en funksjonsutgivelse og deretter avsluttet, vil dette langvarige prosjektet produsere alle fremtidige JDK-utgivelser og sende en funksjonsutgivelse hvert sjette måned i henhold til en streng, tidsbasert modell.

Det er flere separate OpenJDK & JDK prosjektutviklingsgrener:

  • Utgivelsen av JDK -prosjektet 16.
  • Utgivelsen av JDK -prosjektet 15.
  • Utgivelsen av JDK -prosjektet 14.
  • Utgivelsen av JDK -prosjektet 13.
  • Utgivelsen av JDK -prosjektet 12.
  • Utgivelsen av JDK -prosjektet 11.
  • Utgivelsen av JDK -prosjektet 10.
  • OpenJDK 9 -prosjektet, som er grunnlaget for JDK 9.
  • OpenJDK 8u -prosjektet, som er basert på JDK 8 og produserer oppdateringer til de eksisterende Java 8 -utgivelsene.
  • OpenJDK 8 -prosjektet, som er grunnlaget for JDK 8, ble utgitt 18. mars 2014.
  • OpenJDK 7u -prosjektet, som er basert på JDK 7 og produserer oppdateringer til de eksisterende Java 7 -utgivelsene.
  • OpenJDK 6-prosjektet, som er basert på JDK 7, ble ettermontert for å tilby en åpen kildekode-versjon av Java 6 . Vær oppmerksom på at Red Hat sa opp ledelsen i OpenJDK 6 i begynnelsen av 2017, og dette ble deretter tatt opp av Azul Systems.

OpenJDK bygger

På grunn av at Oracle ikke lenger gir ut oppdateringer for langtidssupport (LTS) -utgivelser under en tillatelig lisens, har andre begynt å tilby builds for Windows. Linux -distribusjoner har alltid tilbudt sine egne bygg.

Bygge Organisasjon DET ER Tillatelse
lisens
TCK
testet
Bygget
umodifisert
Kommersiell
støtte
AdoptOpenJDK (flyttet til Eclipse som Eclipse Adoptium i 2021) Ja Ja Nei Valgfri Valgfritt (IBM)
Alibaba Dragonwell Alibaba Group Ja Ja Nei Nei Nei
Amazon Corretto Amazon Ja Ja Ja Nei Valgfritt (på AWS)
Azul Zulu Azul Systems Ja Ja Ja Nei Valgfri
BellSoft Liberica JDK BellSoft Ja Ja Ja Nei Valgfri
Eclipse Adoptium/Temurin Eclipse Foundation Ja Ja Ja Valgfri Valgfritt (Azul, IBM)
IBM Semeru Runtime Certified Edition IBM Ja Nei Ja Nei Valgfritt (IBM)
IBM Semeru Runtime Open Edition IBM Ja Ja Nei Nei Valgfritt (IBM)
IBM Java SDK (versjon 11 flyttet til IBM Semeru Runtime Certified Edition) IBM Ja Nei Ja Nei Ja
JetBrains Runtime JetBrains Ja Ja Nei Nei Nei
Microsoft Build av OpenJDK Microsoft Ja Ja Ja Nei Valgfritt (på Azure)
ojdkbuild Ja Ja Nei Ja Nei
OpenLogic OpenJDK OpenLogic Ja Ja Nei Nei Valgfri
GraalVM Community Edition GraalVM Nei Ja Ja Nei Nei
Oracle GraalVM Enterprise Edition Oracle Corporation Ja Nei Ja Nei Ja
Oracle Java SE Oracle Corporation Ja Nei Ja Nei Ja
Oracle OpenJDK Oracle Corporation Nei Ja Ja Ja Nei
Red Hat -bygg av OpenJDK IBM Ja Ja Ja Nei Ja
SAP SapMachine SEVJE Ja Ja Ja Nei Valgfritt (for SAP -produkter)

IcedTea og inkludering i programvaredistribusjoner

For å samle OpenJDK i Fedora og andre gratis Linux -distribusjoner, måtte OpenJDK bygges med bare gratis programvarekomponenter . På grunn av de beheftede komponentene i klassebiblioteket og implisitte forutsetninger i byggesystemet om at JDK som ble brukt til å bygge OpenJDK var en Sun JDK, var dette ikke mulig. For å oppnå åpenhet startet Red Hat IcedTea -prosjektet i juni 2007. Det begynte livet som en OpenJDK/ GNU Classpath -hybrid som kunne brukes til å bootstrap OpenJDK, og erstattet heftene med kode fra GNU Classpath.

5. november 2007 signerte Red Hat både Sun Contributor Agreement og OpenJDK Community TCK -lisensen . En av de første fordelene med denne avtalen er strammere tilpasning til IcedTea -prosjektet, som samler Fedora , Linux -distribusjonen og JBoss , applikasjonsserveren, teknologier i et Linux -miljø. IcedTea ga gratis programvarealternativer for de få gjenværende proprietære seksjonene i OpenJDK -prosjektet.

I mai 2008 inkluderte Fedora 9 og Ubuntu 8.04 -distribusjonene IcedTea 6, helt basert på gratis og åpen kildekode . Fedora 9 var den første versjonen som ble sendt med IcedTea6, basert på OpenJDK6 -kildene fra Sun i stedet for OpenJDK7. Det var også den første som brukte OpenJDK for pakkenavnet (via OpenJDK -varemerkeavtalen ) i stedet for IcedTea. Ubuntu pakket også først IcedTea7 før det senere flyttet til IcedTea6. Pakker for IcedTea6 ble også opprettet for Debian og inkludert i Lenny . 12. juli 2008 godtok Debian OpenJDK-6 i ustabil, og den ble senere inkludert i stallen . OpenJDK er også tilgjengelig på openSUSE , Red Hat Enterprise Linux og RHEL -derivater som CentOS .

I juni 2008 kunngjorde Red Hat at de pakkede binære filene for OpenJDK på Fedora 9 , bygget ved hjelp av IcedTea 6, hadde bestått Technology Compatibility Kit -testene og kan hevde å være en fullt kompatibel Java 6 -implementering. I juli 2009 besto en IcedTea 6 binærversjon for Ubuntu 9.04 alle kompatibilitetstestene i Java SE 6 TCK .

Siden august 2008 er OpenJDK 7 brukbar på macOS og andre BSD -varianter.

Android Nougat erstattet OpenJDK den nå avsluttede Apache Harmony som Java-bibliotekene i kildekoden til det mobile operativsystemet . Google var i en juridisk tvist med Oracle om krav om opphavsrett og patentbrudd ved bruk av re-implementeringer av opphavsrettsbeskyttede Java APIer via Harmony. Selv om selskapet også uttalte at denne endringen skulle skape en mer konsistent plattform mellom Java på Android og andre plattformer, innrømmet selskapet at byttet var motivert av søksmålet, og argumenterte for at Oracle hadde autorisert bruken av OpenJDK -koden ved å lisensiere den under GPL .

Historie

Suns løfte og første utgivelse

Sun kunngjorde i JavaOne 2006 at Java ville bli programvare med åpen kildekode, og 25. oktober 2006, på Oracle OpenWorld- konferansen, sa Jonathan Schwartz at selskapet hadde til hensikt å kunngjøre åpen kildekode til Java-plattformen innen 30 til 60 dager .

Sun ga ut den virtuelle Java HotSpot -maskinen og kompilatoren som gratis programvare under GNU General Public License 13. november 2006, med et løfte om at resten av JDK (som inkluderer Java Runtime Environment ) ville bli plassert under GPL innen mars 2007 , "bortsett fra noen få komponenter som Sun ikke har rett til å publisere i kildeform under GPL". I følge advokat for fri programvare Richard Stallman , ville dette ende med "Java-fellen", leverandørens innlåsing som han argumenterer for brukt på Java og programmer skrevet i Java.

Utgivelse av klassebiblioteket

Etter løftet om å gi ut et Java Development Kit (JDK) basert nesten helt på gratis og åpen kildekode i første halvår 2007, ga Sun ut den komplette kildekoden til Java Class Library under GPL 8. mai 2007, bortsett fra for noen begrensede deler som hadde blitt lisensiert av Sun av tredjeparter og Sun ikke klarte å lisensiere på nytt under GPL. Inkludert i listen over beheftede deler var flere hovedkomponenter i det grafiske brukergrensesnittet (GUI) i Java . Sun uttalte at den planla å erstatte de gjenværende proprietære komponentene med alternative implementeringer og gjøre klassebiblioteket helt gratis.

Da den først ble utgitt i mai 2007, forble 4% av OpenJDK -klassebiblioteket proprietære. Ved utseendet til OpenJDK 6 i mai 2008 var mindre enn 1% ( SNMP -implementeringen, som ikke er en del av Java -spesifikasjonen) igjen, noe som gjorde det mulig å bygge OpenJDK uten binære plugger. Kravet til binærplugg ble senere droppet fra OpenJDK 7 som en del av b53 i april 2009.

Dette ble gjort mulig i løpet av det første året av arbeidet til Sun Microsystems og OpenJDK -samfunnet. Hver heftelse ble enten utgitt som gratis og åpen kildekode-programvare eller erstattet med et alternativ. Fra desember 2010 ble alle de såkalte binære pluggene erstattet med åpen kildekode- erstatning, noe som gjorde at hele JDK var åpen og de binære pluggene ikke lenger nødvendig.

Samfunnsforbedringer

November 2007 kunngjorde Red Hat en avtale med Sun og signerte Suns brede bidragsyteravtale (som dekker deltakelse i alle Sun-ledede gratis og åpen kildekode-programvareprosjekter av alle Red Hat-ingeniører) og Suns OpenJDK Community Technology Compatibility Kit (TCK ) Lisensavtale (som gir selskapet tilgang til testpakken som avgjør om et prosjekt basert på OpenJDK overholder Java SE 6 -spesifikasjonen).

Også i november 2007 ble Porters Group opprettet på OpenJDK for å hjelpe i arbeidet med å overføre OpenJDK til forskjellige prosessorarkitekturer og operativsystemer . Den BSD porting prosjekt ledet av Kurt Miller og Greg Lewis og Mac OS X porting prosjekt (basert på BSD en) ledet av Landon Fuller har uttrykt interesse for å bli OpenJDK via Porters Group. Fra januar 2008 er begge en del av postliste -diskusjonene. Et annet prosjekt som venter på formalisering på Porters Group er Haiku Java Team ledet av Bryan Varner.

I desember 2007 flyttet Sun revisjonskontrollen av OpenJDK fra TeamWare til Mercurial (og senere til Git og GitHub ), som en del av prosessen med å frigjøre den til open source- samfunn.

OpenJDK har relativt strenge prosedyrer for å godta kodebidrag: hvert foreslått bidrag må gjennomgås av en annen OpenJDK -deltaker, og bidragsyteren må ha signert Sun/Oracle Contributor Agreement (SCA/OCA). Fortrinnsvis bør det også være en jtreg -test som viser at feilen er løst. Opprinnelig var innsendingsprosessen for ekstern oppdatering treg, og frem til september 2008 ble forpliktelser til kodebasen bare gjort av Sun -ingeniører. Prosessen har blitt bedre, og fra 2010 kan enkle oppdateringer og bakport fra OpenJDK 7 til OpenJDK 6 finne sted innen timer i stedet for dager.

I 2011 ble en uoffisiell port av OpenJDK 6.0 til OS/2 først utgitt. Denne porten er inkludert i OS/2 -derivatet ArcaOS .

September 2013 samarbeidet Microsoft og Azul Systems for å lage Zulu, en build av OpenJDK for brukere av Windows Azure -skyen. Zulu er tilgjengelig som en gratis nedlasting fra fellesskapsnettstedet Zulu.org . Det er også mulig å få Zulu på Amazon Web Services via Canonicals Juju Charm Store, Docker Hub og Azul Systems depoter. Azul bidrar med feilrettinger og forbedringer tilbake til OpenJDK -prosjektet og har flere prosjektforpliktelser på staben.

Siden april 2016 er det ikke -støttede samfunnsbygginger av OpenJDK for Microsoft WindowsGitHub i prosjektet ojdkbuild som er utgitt i takt med oppdateringer for Oracle JDK. Fra build 8u151, tilbyr MSI-installer en valgfri komponent for bruk av Java Web Start basert på IcedTea-Web- prosjektet.

I 2020 ble en port på OpenJDK 8 til OpenVMSItanium -plattformen utgitt.

Antall eksterne bidrag til OpenJDK vokser siden prosjektet startet. OpenJDK 11, utgitt i september 2018, mottok 20% av eksterne reparasjoner og brakte 17 nye JEP -er (funksjoner), hvorav 3 ble bidratt av samfunnet. Nemlig JEP 315: "Improve Aarch64 Intrinsics" (bidratt med BellSoft ), JEP 318: "Epsilon: A No-Op Garbage Collector" (av Red Hat) og JEP 331: "Low-Overhead Heap Profiling" (bidratt av Google) .

Samarbeid med IBM, Apple og SAP

11. oktober 2010 bestemte IBM , den desidert største deltakeren i Apache Harmony -prosjektet, seg for å slutte seg til Oracle på OpenJDK -prosjektet, og endret effektivt innsatsen fra Harmony til OpenJDK. Bob Sutor, IBMs sjef for Linux og åpen kildekode, blogget at "IBM vil flytte utviklingsarbeidet fra Apache Project Harmony til OpenJDK".

12. november 2010 kunngjorde Apple Inc. (bare tre uker etter å ha avskrevet sin egen Java -runtime -port) og Oracle Corporation OpenJDK -prosjektet for Mac OS X. Apple vil bidra med de fleste viktige komponenter, verktøy og teknologi som kreves for en Java SE 7 implementering på Mac OS X, inkludert en 32-biters og 64-biters HotSpot-basert Java-maskin, klassebiblioteker, en nettverksstabel og grunnlaget for en ny grafisk klient.

11. januar 2011 ble Mac OS X Port Project opprettet på OpenJDK, og Apple ga det første offentlige bidraget med kode til prosjektet. Det første Apple -bidraget bygget på OpenJDK BSD -porten.

I juli 2011 kunngjorde SAP AG at SAP offisielt sluttet seg til OpenJDK -prosjektet.

Se også

Referanser

Eksterne linker