OpenJDK

редактировать
Бесплатная реализация Java SE с открытым исходным кодом

OpenJDK
OpenJDK logo.svg
Разработчик (и) Oracle Corporation, OpenJDK и Java Community, Red Hat, Azul Systems, IBM, Microsoft, Amazon, Apple Inc, SAP SE
Первый выпуск8 мая 2007 г.; 13 лет назад (2007-05-08)
Репозиторий Отредактируйте это в Викиданных
Написано наC ++ и Java
Операционная система Linux, FreeBSD, macOS, Microsoft Windows, OpenIndiana ; несколько других портов в процессе
Тип Платформа Java
Лицензия GPLv2 с исключением связи
Веб-сайтopenjdk.java.net

OpenJDK (Open Java Development Kit ) - это бесплатная реализация с открытым исходным кодом платформы Java, Standard Edition (Java SE). Это результат усилий Sun Microsystems, начатых в 2006 году. Реализация под лицензией Стандартной общественной лицензии GNU (GNU GPL) версии 2 с исключением связи. Если бы не исключение связывания GPL, компоненты, которые связаны с библиотекой классов Java, подпадали бы под условия лицензии GPL. OpenJDK - это официальная эталонная реализация Java SE, начиная с версии 7.

Содержание

  • 1 Компоненты
  • 2 Версии OpenJDK
  • 3 Сборки OpenJDK
  • 4 IcedTea и включение в дистрибутивы программного обеспечения
  • 5 История
    • 5.1 Обещание Sun и первоначальный выпуск
    • 5.2 Выпуск библиотеки классов
    • 5.3 Улучшения сообщества
    • 5.4 Сотрудничество с IBM, Apple и SAP
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки

Компоненты

Проект OpenJDK создает ряд компонентов: наиболее важно виртуальная машина (HotSpot ), Библиотека классов Java и компилятор Java (javac ).

Подключаемый модуль веб-браузера и Web Start, которые являются частью Oracle Java, не включены в OpenJDK. Sun ранее указала, что они попытаются сделать эти компоненты открытыми, но ни Sun, ни Oracle этого не сделали. Единственными доступными в настоящее время бесплатными плагинами и реализациями Web Start по состоянию на 2016 год являются те, которые предоставляются IcedTea.

. В сентябре 2016 года сотрудник Oracle детализировал планы по добавлению компиляции AOT в OpenJDK с использованием GraalVM.

версии OpenJDK

OpenJDK изначально был основан только на версии JDK 7 платформы Java.

Начиная с JDK 10, усилия по созданию открытого Эталонная реализация платформы Java SE была перенесена в проект JDK. В отличие от прошлых проектов выпуска JDK, которые производили только один выпуск функции, а затем были прекращены, этот долгосрочный проект будет создавать все будущие выпуски функций JDK и выпускать выпуск функций каждые шесть месяцев в соответствии со строгой, привязанной ко времени моделью.

Существует несколько отдельных ветвей разработки проектов OpenJDK и JDK:

  • Проект JDK, выпуск 16.
  • Проект JDK, выпуск 15.
  • Проект JDK, выпуск 14.
  • Проект JDK, выпуск 13.
  • Проект JDK, выпуск 12.
  • Проект JDK, выпуск 11.
  • Проект JDK, выпуск 10.
  • Проект OpenJDK 9, который является основой для JDK 9.
  • Проект OpenJDK 8u, который основан на JDK 8 и обеспечивает обновления существующих выпусков Java 8.
  • OpenJDK 8 проект, лежащий в основе JDK 8, был выпущен 18 марта 2014 года.
  • Проект OpenJDK 7u, основанный на JDK 7, производит обновления существующих выпусков Java 7.
  • Проект OpenJDK 6, основанный на ed на JDK 7, модернизированный для предоставления версии Java 6 с открытым исходным кодом. Обратите внимание, что Red Hat отказалась от лидерства над OpenJDK 6 в начале 2017 года, а затем этим занялась Azul Systems.

OpenJDK builds

Из-за того, что Oracle больше не выпускает обновления для долгосрочной поддержки (LTS) выпускает под разрешающей лицензией, другие начали предлагать сборки.

СборкаLTSРазрешающая. лицензияTCK. Протестированнаясборка. немодифицированная. апстримКоммерческая. поддержка. доступна
AdoptOpenJDKДаДаНетНеобязательноНеобязательно (IBM)
Alibaba DragonwellДаДаДаНетНет
Amazon CorrettoДаДаДаNoНеобязательно (на AWS)
Azul ZuluДаДаДаНетНеобязательно
BellSoft Liberica JDKДаДаДаНетНеобязательно
IBM Java SDKДаНетДаНетДа
ojdkbuildДаДаНетДаНет
OpenLogic OpenJDKДаДаНетНетНеобязательно
Oracle Java SEДаНетДаНетДа
Oracle OpenJDKНетДаДаДаНет
Сборка Red Hat OpenJDKДаДаДаНетДа
SAP SapMachineДаДаДаНетНет

IcedTea и включение в дистрибутивы программного обеспечения

Для объединения OpenJDK в Fedora и другие бесплатные дистрибутивы GNU / Linux, OpenJDK необходимо было собирать с использованием только компонентов бесплатного программного обеспечения. Это было невозможно из-за наличия компонентов в библиотеке классов и неявных предположений в системе сборки о том, что JDK, используемый для сборки OpenJDK, был Sun JDK. Для достижения открытости Red Hat запустил проект IcedTea в июне 2007 года. Он начал свою жизнь как гибрид OpenJDK / GNU Classpath, который можно было использовать для начальной загрузки OpenJDK, заменяя обременения кодом из GNU Classpath.

5 ноября 2007 г. Red Hat подписала Соглашение с участником Sun и лицензию OpenJDK Community TCK. Одним из первых преимуществ этого соглашения является более тесное согласование с проектом IcedTea, который объединяет Fedora, дистрибутив Linux, и JBoss, сервер приложений, технологии в среде Linux. IcedTea предоставила бесплатные альтернативы программному обеспечению для немногих оставшихся закрытых разделов проекта OpenJDK.

В мае 2008 г. дистрибутивы Fedora 9 и Ubuntu 8.04 включали IcedTea 6, полностью основанный на бесплатном и с открытым исходным кодом. Fedora 9 была первой версией, поставляемой с IcedTea6, основанной на исходных кодах OpenJDK6 от Sun, а не OpenJDK7. Он также был первым, кто использовал OpenJDK для имени пакета (в соответствии с соглашением о товарных знаках OpenJDK ) вместо IcedTea. Ubuntu также сначала упаковал IcedTea7, а затем перешел на IcedTea6. Пакеты для IcedTea6 также были созданы для Debian и включены в Lenny. 12 июля 2008 г. Debian принял OpenJDK-6 в нестабильном состоянии, и теперь он находится в стабильном. OpenJDK также доступен на openSUSE, Red Hat Enterprise Linux и производных от RHEL, таких как CentOS.

. В июне 2008 года Red Hat объявила, что упакованные двоичные файлы для OpenJDK на Fedora 9, созданная с использованием IcedTea 6, прошла тесты Technology Compatibility Kit и может претендовать на то, чтобы быть полностью совместимой реализацией Java 6. В июле 2009 года двоичная сборка IcedTea 6 для Ubuntu 9.04 прошла все тесты совместимости в Java SE 6 TCK.

. С августа 2008 года OpenJDK 7 можно использовать на macOS и другие варианты BSD.

В Android Nougat OpenJDK заменяет прекращенный сейчас Apache Harmony в качестве библиотек Java в исходном коде. код мобильной операционной системы. Google находится в продолжающемся судебном споре с Oracle из-за претензий о нарушении авторских прав и патентов из-за использования повторных реализаций API Java, защищенных авторским правом, через Harmony. Заявив также, что это изменение должно было создать более согласованную платформу между Java на Android и других платформах, компания признала, что переход был мотивирован судебным процессом, утверждая, что Oracle разрешила использование кода OpenJDK, лицензируя его по GPL..

История

Обещание и первоначальный выпуск Sun

Sun объявила в JavaOne 2006, что Java станет программным обеспечением с открытым исходным кодом, а 25 октября В 2006 году на конференции Oracle OpenWorld Джонатан Шварц сказал, что компания намеревается объявить об открытии исходного кода ядра Java Platform в течение 30-60 дней.

Sun выпустила виртуальную машину и компилятор Java HotSpot как бесплатное программное обеспечение в соответствии с Стандартной общественной лицензией GNU 13 ноября 2006 г. обещаем, что остальная часть JDK (включая Java Runtime Environment ) будет помещена под лицензию GPL к марту 2007 года, «за исключением нескольких компонентов, которые Sun делает n не имеют права публиковать в исходной форме под лицензией GPL ». По словам защитника свободного программного обеспечения Ричарда Столлмана, это положило бы конец «ловушке Java», привязке к поставщику, которая, по его утверждениям, применима к Java и программам, написанным на Java.

Выпуск библиотеки классов

Следуя своему обещанию выпустить Java Development Kit (JDK), почти полностью основанный на бесплатном коде с открытым исходным кодом в первой половине 2007 года, Sun 8 мая 2007 г. выпустила полный исходный код библиотеки классов Java по лицензии GPL, за исключением некоторых ограниченных частей, которые были переданы Sun по лицензии третьими сторонами, и Sun не смогла повторно лицензировать по лицензии GPL. В список обремененных частей включены несколько основных компонентов графического пользовательского интерфейса Java (GUI). Sun заявила, что планирует заменить оставшиеся проприетарные компоненты альтернативными реализациями и сделать библиотеку классов полностью бесплатной.

При первоначальном выпуске в мае 2007 г. 4% библиотеки классов OpenJDK оставались проприетарными. К моменту появления OpenJDK 6 в мае 2008 г. осталось менее 1% (реализация SNMP, которая не является частью спецификации Java), что позволяет создавать OpenJDK без каких-либо двоичных плагинов. Требование бинарного плагина было позже исключено из OpenJDK 7 как часть b53 в апреле 2009 года.

Это стало возможным в течение первого года благодаря работе Sun Microsystems и сообщество OpenJDK. Каждое препятствие было либо выпущено как бесплатное программное обеспечение с открытым исходным кодом, либо было заменено альтернативой. Начиная с декабря 2010 года, все так называемые бинарные плагины были заменены на с открытым исходным кодом, что сделало весь JDK открытым, а бинарные плагины больше не нужны.

Улучшения сообщества

5 ноября 2007 года Red Hat объявила о соглашении с Sun, подписав широкое соглашение об участии Sun (которое охватывает участие всех инженеров Red Hat во всех проектах Sun с бесплатным и открытым исходным кодом.) и лицензионное соглашение Sun's OpenJDK Community Technology Compatibility Kit (TCK) (которое дает компании доступ к набору тестов, который определяет, соответствует ли проект, основанный на OpenJDK, спецификации Java SE 6).

Также в ноябре 2007 года на базе OpenJDK была создана Porters Group для помощи в усилиях по переносу OpenJDK на различные архитектуры процессоров и операционные системы. Проект портирования BSD, возглавляемый Куртом Миллером и Грегом Льюисом, и проект портирования Mac OS X (основанный на BSD), возглавляемый Лэндоном Фуллером, выразили заинтересованность в присоединении к OpenJDK через Портеров. Группа. По состоянию на январь 2008 года оба они участвуют в обсуждениях в списках рассылки. Еще один проект, ожидающий формализации в Porters Group, - это Haiku Java Team, возглавляемая Брайаном Варнером.

В декабре 2007 года Sun переместила контроль версий OpenJDK с От TeamWare до Mercurial (а позже до Git и GitHub ), как часть процесса выпуска его в open-source сообществ.

OpenJDK имеет сравнительно строгие процедуры принятия дополнений кода: каждый предложенный вклад должен быть рассмотрен другим коммиттером OpenJDK, и участник должен подписать соглашение Sun / Oracle Contributor Agreement (SCA / OCA). Желательно также иметь тест jtreg, демонстрирующий, что ошибка была исправлена. Первоначально процесс отправки внешнего исправления был медленным, и до сентября 2008 г. фиксация кодовой базы производилась только инженерами Sun. Этот процесс улучшился, и с 2010 года простые исправления и обратные переносы с OpenJDK 7 на OpenJDK 6 могут выполняться в течение нескольких часов, а не дней.

В 2011 году впервые был произведен неофициальный перенос OpenJDK 6.0 на OS / 2 выпущенный. Этот порт включен в производную от OS / 2 ArcaOS.

25 сентября 2013 года Microsoft и Azul Systems совместно создали Zulu, сборку OpenJDK для пользователей облака Windows Azure. Zulu доступен для бесплатной загрузки с сайта сообщества Zulu.org. Также можно получить Zulu на веб-сервисах Amazon через репозитории Juju Charm Store Canonical, Docker Hub и Azul Systems. Azul вносит исправления ошибок и улучшения обратно в проект OpenJDK и имеет в штате несколько коммиттеров проекта.

С апреля 2016 года сообщества не поддерживают сборки OpenJDK для Microsoft Windows на GitHub в проекте ojdkbuild, который выпускается вместе с обновлениями для Oracle JDK. Начиная со сборки 8u151, установщик MSI предлагает дополнительный компонент для использования Java Web Start на основе проекта IcedTea-Web.

В 2020 году был выпущен перенос OpenJDK 8 на OpenVMS на платформе Itanium.

Количество внешних вкладов в OpenJDK растет с момента создания проекта. OpenJDK 11, выпущенный в сентябре 2018 года, получил 20% внешних исправлений и принес 17 новых JEP (функций), из которых 3 были внесены сообществом. А именно, JEP 315: «Улучшение встроенных функций Aarch64» (предоставлено), JEP 318: «Epsilon: сборщик мусора без использования операций» (от Red Hat) и JEP 331: «Профилирование кучи с низкими накладными расходами» (предоставлено Google).

Сотрудничество с IBM, Apple и SAP

11 октября 2010 г. IBM, безусловно, крупнейший участник проекта Apache Harmony, решила присоединиться к Oracle в проекте OpenJDK, эффективно переключив свои усилия с Harmony на OpenJDK. Боб Сутор, глава IBM по Linux и ПО с открытым исходным кодом, написал в блоге, что «IBM будет переводить свои усилия по разработке с Apache Project Harmony на OpenJDK».

12 ноября 2010 г. Apple Inc. (всего через три недели после прекращения поддержки собственного порта среды выполнения Java) и Oracle Corporation объявила о проекте OpenJDK для Mac OS X. Apple предоставит большинство ключевых компонентов, инструментов и технологий, необходимых для реализации Java SE 7 в Mac OS X, включая 32-битная и 64-битная виртуальная машина Java на основе HotSpot, библиотеки классов, сетевой стек и основа для нового графического клиента.

11 января 2011 года был создан проект порта Mac OS X на OpenJDK, и Apple сделали первый публичный вклад кода в проект. Первоначальный вклад Apple был основан на OpenJDK BSD port.

В июле 2011 года SAP AG объявила, что SAP официально присоединилась к проекту OpenJDK.

См. Также

Ссылки

Внешние ссылки

Последняя правка сделана 2021-06-01 12:37:10
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте