Mrożona herbata

Mrożona herbata dla OpenJDK 8
Deweloperzy Ścieżka klasy GNU
Wersja stabilna
3.24.0 / 2 sierpnia 2022 ( 2022-08-02 )
Magazyn github .com /icedtea-git /icedtea /tree /3 .0
Napisane w C , C++ i Javie
System operacyjny Linux , *BSD , macOS , Windows , Solaris
Platforma IA-32, x86-64, ARM, AArch64, sparc, sparc64, ppc, ppc64, ppc64le, s390, s390x
Typ Wirtualna maszyna Java i biblioteka Java
Licencja GNU GPL + wyjątek łączenia
Strona internetowa icedtea .ścieżka klas .org
Mrożona herbata dla OpenJDK 7
Deweloperzy GNU Classpath (z Red Hat do 2.6.22)
Wersja stabilna
2.6.28 / 8 listopada 2021 ( 08.11.2021 )
Magazyn github .com /icedtea-git /icedtea /tree /2 .6
Napisane w C , C++ i Javie
System operacyjny Linux , *BSD , macOS , Windows , Solaris
Platforma IA-32, x86-64, ARM, AArch64, sparc, sparc64, ppc, ppc64, ppc64le, s390, s390x
Typ Wirtualna maszyna Java i biblioteka Java
Licencja GNU GPL + wyjątek łączenia
Strona internetowa icedtea .ścieżka klas .org
Mrożona herbata dla OpenJDK 6
Deweloperzy Red Hat i GNU
Ostateczne wydanie
1.13.13 / 9 stycznia 2017 ( 09.01.2017 )
Magazyn icedtea .classpath .org /hg /icedtea6
Napisane w C , C++ i Javie
System operacyjny Linux , *BSD , macOS , Windows , Solaris
Platforma IA-32, x86-64, ARM, sparc, sparc64, ppc, ppc64, s390, s390x
Typ Wirtualna maszyna Java i biblioteka Java
Licencja GPL + wyjątek łączenia
Strona internetowa icedtea .ścieżka klas .org
IcedTea-Web
Deweloperzy Red Hat i GNU
Wersja stabilna
1.8.8 ( pliki binarne ) / 28 października 2021 ( 2021-10-28 )
Magazyn github.com/AdoptOpenJDK/icedtea-web _ _ _
Napisane w C++ i Javę
System operacyjny Linux , *BSD , OS X , Windows , Solaris
Typ Obsługa Java Web Start i wtyczka internetowa Java dla apletów
Licencja GPL + wyjątek łączenia
Strona internetowa icedtea .classpath .org /wiki /IcedTea-Web
IcedTea-Sound
Deweloperzy Red Hat i GNU
Wersja stabilna
1.0.1 / 18 lipca 2014 ( 18.07.2014 )
Magazyn icedtea .classpath .org /hg /icedtea-sound /
Napisane w C i Javy
System operacyjny Linux , *BSD , OS X , Windows , Solaris
Typ Wsparcie dźwiękowe
Licencja GPL + wyjątek łączenia
Strona internetowa icedtea .classpath .org /wiki /IcedTea-Sound

IcedTea to projekt kompilacji i integracji OpenJDK uruchomiony przez firmę Red Hat w czerwcu 2007 roku. IcedTea zawiera również kilka bibliotek dodatków: IcedTea-Web to darmowa implementacja oprogramowania Java Web Start i wtyczki apletu przeglądarki internetowej Java . IcedTea-Sound to zbiór wtyczek dla podsystemu dźwiękowego Java, w tym dostawcy PulseAudio , który był dołączony do IcedTea. Fundacja Wolnego Oprogramowania zaleca, aby wszyscy programiści Java używali IcedTea jako swojego środowiska programistycznego.

Historycznie, początkowym celem projektu IcedTea było sprawienie, aby oprogramowanie OpenJDK, które Sun Microsystems wypuściło jako wolne oprogramowanie w 2007 roku, było użyteczne bez konieczności posiadania jakiegokolwiek oprogramowania własnościowego , a tym samym umożliwienie dodania OpenJDK do Fedory i innych dystrybucji Linuksa , które nalegają na darmowe oprogramowanie. Ten cel został osiągnięty, a wersja IcedTea oparta na OpenJDK została dołączona do Fedory 8 w listopadzie 2007. W kwietniu 2008 ukazało się pierwsze wydanie nowego wariantu, IcedTea6, który jest oparty na kroplach kompilacji OpenJDK6 firmy Sun, rozwidleniu OpenJDK z celem bycia kompatybilnym z istniejącym JDK6. To zostało wydane w Ubuntu i Fedora w maju 2008. Nazwa pakietu IcedTea w tych dystrybucjach została zmieniona na OpenJDK przy użyciu informacji o znaku towarowym OpenJDK. W czerwcu 2008 roku wersja Fedory przeszła rygorystyczne testy TCK firmy Sun na x86 i x86-64 . IcedTea 2, pierwsza wersja oparta na OpenJDK 7, została wydana w październiku 2011 r. IcedTea 3, pierwsza wersja oparta na OpenJDK 8, została wydana w kwietniu 2016 r. Wsparcie dla IcedTea 1 zostało wycofane w styczniu 2017 r.

Historia

Ten projekt powstał po wydaniu przez firmę Sun na licencji open source jej maszyny wirtualnej HotSpot i kompilatora Javy w listopadzie 2006 r., a większości kodu źródłowego biblioteki klas w maju 2007 r. Jednak części biblioteki klas, takie jak renderowanie czcionek, zarządzanie kolorami i obsługa dźwięku były dostarczane wyłącznie jako zastrzeżone wtyczki binarne. Stało się tak, ponieważ kod źródłowy tych wtyczek był chroniony prawami autorskimi stron trzecich, a nie firmy Sun Microsystems. Wydane części zostały opublikowane na warunkach Powszechnej Licencji Publicznej GNU , licencja wolnego oprogramowania .

Ze względu na te brakujące komponenty nie było możliwe zbudowanie OpenJDK tylko z wolnymi komponentami oprogramowania. Sun zamierzał negocjować z posiadaczami licencji, aby zezwolić na udostępnienie tego kodu na licencji wolnego oprogramowania lub, jeśli to się nie powiedzie, zastąpić te zastrzeżone elementy alternatywnymi implementacjami. Po wymianie wtyczek biblioteka klas byłaby całkowicie bezpłatna. Firma Sun nadal używa zastrzeżonego kodu w swoich certyfikowanych wersjach binarnych.

Po ogłoszeniu projekt IcedTea został uruchomiony i został oficjalnie ogłoszony 7 czerwca 2007 r. Wraz z repozytorium kompilacji dostarczonym przez zespół GNU Classpath . Zespół nie mógł nazwać swojego oprogramowania OpenJDK , ponieważ jest to znak towarowy należący do firmy Sun Microsystems . Zamiast tego zdecydowali się użyć tymczasowej nazwy „IcedTea” .

5 listopada 2007 r. firma Red Hat podpisała zarówno umowę Sun Contributor Agreement, jak i licencję OpenJDK Community Technology Compatibility Kit (TCK). W komunikacie prasowym zasugerowano, że byłoby to korzystne dla projektu IcedTea. Simon Phipps zasugerował możliwość hostowania IcedTea na openjdk.java.net, a Mark Reinhold zauważył, że podpisanie cesji praw autorskich mogłoby pozwolić firmie Red Hat na przekazanie części IcedTea firmie Sun w celu włączenia jej do głównego nurtu JDK.

Od tego czasu wiele poprawek z IcedTea trafiło do OpenJDK.

W czerwcu 2008 roku ogłoszono, że IcedTea6 (jako spakowana wersja OpenJDK w Fedorze 9 ) przeszedł testy (TCK) i może twierdzić, że jest w pełni kompatybilną implementacją Java 6. Projekt kontynuuje śledzenie rozwoju OpenJDK 6, OpenJDK 7 i OpenJDK 8 w oddzielnych repozytoriach i dostarcza łatki z powrotem tam, gdzie to możliwe; aktualny stan każdej poprawki IcedTea jest utrzymywany na wiki IcedTea.

Celuje

Projekt IcedTea rozpoczął się od dwóch celów:

  1. aby umożliwić GNU Compiler for Java skompilowanie kodu OpenJDK . OpenJDK przedstawił pytanie dotyczące ładowania początkowego , które zostało napisane w Javie. Dlatego programiści potrzebowali już działającego kompilatora Java i środowiska wykonawczego, aby zbudować OpenJDK. Pierwotnie tylko istniejący zastrzeżony pakiet Sun JDK spełniał to wymaganie. Darmowe dystrybucje, takie jak Fedora, nie mogą polegać na zastrzeżonych narzędziach do tworzenia pakietów, więc projekt IcedTea musiał umożliwiać kompilację kodu przy użyciu wolnego oprogramowania. Kiedy to zostało zrobione, wynikowa wersja OpenJDK IcedTea mogła zostać wykorzystana do samodzielnej kompilacji, unikając w ten sposób potrzeby używania niewolnego oprogramowania do przyszłej kompilacji.
  2. aby zapewnić bezpłatne odpowiedniki wtyczek binarnych, które istniały w OpenJDK, ponieważ Sun nie był w stanie udostępnić całego kodu źródłowego. Od marca 2008 nie jest to już konieczne w przypadku IcedTea6, ponieważ dropy kompilacji OpenJDK 6 można budować bez wtyczek binarnych. Wraz z wydaniem b10, które zastępuje zastrzeżoną obsługę dźwięku tą z projektu Gervill, można zbudować pełną implementację Javy 1.6 bez binarnych wtyczek. Jedyna pozostała wtyczka binarna służy do SNMP , która jest opcjonalnym dostawcą dla JMX architektura, a nie część specyfikacji. Od b53 w kwietniu 2009 to samo dotyczy OpenJDK 7. Poza rdzeniem OpenJDK, wtyczki binarne są nadal wymagane do korzystania z apletów Java Web Start, które działają przy użyciu wtyczki przeglądarki (w odróżnieniu od podstawowych wtyczek omówionych wcześniej); od 2013 r. jedynym dostępnym kodem źródłowym, który realizuje ten cel, jest projekt IcedTea-Web.

Inne korzyści

IcedTea zapewnia również bardziej znany system kompilacji, zapewniając opakowanie wokół plików makefile OpenJDK za pomocą GNU Autotools . Eliminuje to konieczność zapamiętywania wielu zmiennych środowiskowych do konfigurowania kompilacji. (Obecne kompilacje IcedTea ustawiają około czterdziestu takich zmiennych dla bazowej kompilacji OpenJDK.) Zapewniło to również miejsce do wczesnych prac nad funkcjami, które ostatecznie pojawią się w głównych kompilacjach OpenJDK, takich jak Gervill, oraz do pracy nad portami na inne platformy.

IcedTea-Web

Wtyczka IcedTea NPR (oparta na IcedTea6) wymieniona w Debianie Iceweasel 6.0.2 (Knoppix 6.7.1)

IcedTea-web zapewnia darmową wtyczkę Java do przeglądarki internetowej. Był to pierwszy działający w 64-bitowych przeglądarkach pod 64-bitowym Linuksem, funkcja, którą później zajęto się zastrzeżonym środowiskiem JRE firmy Sun. Dzięki temu nadaje się między innymi do włączenia obsługi apletów Java w 64-bitowej przeglądarce Mozilla Firefox . IcedTea-web zapewnia również bezpłatną implementację Java Web Start ( Java Network Launching Protocol (JNLP) ). Sun obiecał wydać swoją wtyczkę i Web Start implementacja w ramach OpenJDK. Pomimo nacisków ze strony społeczności, Sun Microsystems nie udało się tego zrobić, zanim firma została przejęta przez Oracle . Prace nad wtyczką IcedTea-web trwają, a najnowsza wersja wtyczki nowej generacji obsługuje Google Chromium oprócz Firefoksa. Od 2011 roku rozwój odbywa się w ramach odrębnego projektu IcedTea-Web. Od kwietnia 2013 r. Oracle utrzymuje w pełni zastrzeżoną bazę kodu wtyczki Java, w przeciwieństwie do pozostałej części OpenJDK. Od grudnia 2017 r. IcedTea-Web 1.7.1 dodaje obsługę jdk9.

W październiku 2018 r. firma Oracle ogłosiła, że ​​publiczne wsparcie Java Web Start zakończy się wraz z wersją Java SE 11 . W marcu kod źródłowy icedtea-web został przekazany projektowi AdoptOpenJDK . Na tej podstawie źródła i zarządzanie problemami IcedTea-Web zostały przeniesione do GitHub . Jednym z celów migracji jest zapewnienie integracji wersji Java 8 AdoptOpenJDK oraz zapewnienie niezależnych instalatorów JDK dla IcedTea-Web. Projekt integracyjny jest efektem współpracy społeczności AdoptOpenJDK, RedHat i Karakun AG. Projekt dla instalatorów nosi nazwę OpenWebStart i pierwsze informacje można znaleźć tutaj .

Postęp i dostępność

Od czerwca 2007, IcedTea była w stanie samodzielnie zbudować i przekazać znaczną część Mauve , pakietu testowego GNU Classpath. W maju 2008 do IcedTea dodano obsługę testów regresji Sun jtreg .

IcedTea stała się popularna wśród opiekunów pakietów dla następujących dystrybucji Linuksa. Obecnie (stan na kwiecień 2012):

  • IcedTea jest domyślną maszyną JVM w Ark Linux i Arch Linux .
  • Można go zbudować i uruchomić pod Debianem . Pakiety weszły w stan niestabilny 12 lipca 2008 r. Od maja 2022 r. Pakiety icedtea-netx i icedtea-netx-common są dostępne w oficjalnych repozytoriach Debiana przynajmniej dla Debiana od 9 do 12.
  • IcedTea[7] był dostępny w Fedorze 8, a IcedTea6 pojawił się w Fedorze od 9 do 17 jako java-1.6.0-openjdk. Pakiet java-1.7.0-openjdk wykorzystujący las IcedTea 2.x OpenJDK, ale nie jego system kompilacji, pojawił się po raz pierwszy w Fedorze 16.
  • Pakiety binarne i źródłowe dla IcedTea 3.x są dostępne w oficjalnym repozytorium Gentoo . Pakiet źródłowy dla IcedTea 2.x nadal jest utrzymywany w repozytorium nakładek Java. Instalacja aplikacji Java domyślnie pobiera IcedTea zamiast oracle-jdk, ponieważ można ją zainstalować bez dodatkowej pracy ze strony użytkownika, ponieważ użytkownicy muszą ręcznie wyrazić zgodę na umowę EULA firmy Oracle, aby pobrać oracle-jdk .
  • IcedTea jest dostępna w Ubuntu 7.10 (Gutsy Gibbon), z repozytorium „wszechświata”, a IcedTea6 w 8.04 (Hardy Heron). Począwszy od Ubuntu 11.04 dostępna jest tylko IcedTea.

Architektura

OpenJDK zawierał około (w momencie wydania w maju 2007) 4% obciążonego kodu, który był spakowany tylko jako wtyczki binarne. Były one wymagane do zbudowania i używania JDK. OpenJDK 6 został wydany z zaledwie 1% obciążonym kodem, a obsługa obciążonego dźwięku również została zastąpiona. IcedTea6 jest oparty na tym wydaniu. IcedTea nadal zapewnia własną wtyczkę przeglądarki internetowej i obsługę Web Start, ponieważ implementacja firmy Sun pozostaje zastrzeżona .

IcedTea 1.x i 2.x mogą kompilować OpenJDK przy użyciu rozwiązań opartych na GNU Classpath, takich jak GCJ i opcjonalnie ładują się przy użyciu wirtualnej maszyny HotSpot Java i właśnie zbudowanego kompilatora Java javac . Na razie zbudowanie IcedTea 3.x wymaga użycia IcedTea 2.x lub 3.x albo kompilacji OpenJDK 7 lub 8 z innego źródła.

Wsparcie platformy

Porty między architekturami HotSpot (maszyna wirtualna OpenJDK) są trudne, ponieważ kod zawiera dużo języka asemblera , oprócz rdzenia C++ . Projekt IcedTea opracował ogólny port interpretera HotSpot o nazwie zero-assembler Hotspot (lub zero ), prawie bez kodu asemblera. Ten port ma na celu umożliwienie bardzo łatwego dostosowania części HotSpot będącej interpreterem do dowolnej Linux . Kod zerowego asemblera Hotspot był używany dla wszystkich systemów innych niż x86 porty HotSpot ( PPC , IA-64 , S390 i ARM ) od wersji 1.6 IcedTea7.

W ramach projektu IcedTea opracowano również niezależny od platformy kompilator just-in-time o nazwie Shark for HotSpot, wykorzystujący LLVM , jako uzupełnienie Zero . Zostało to uwzględnione w upstream OpenJDK w sierpniu 2010. JIT dla ARM32 został po raz pierwszy uwzględniony w 1.6.0 i 2.1.1. Natywny port AArch64 firmy Red Hat pojawił się w wersji 2.4.6, a natywny port PPC64 firmy SAP/IBM zostanie uwzględniony w wersji 2.5.0. Port PPC/AIX jest dołączany do OpenJDK od wersji 8u20, a port AArch64 będzie dołączany od wersji 9.

Zobacz też

Linki zewnętrzne