OpenJDK

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
OpenJDK
Последняя версия 18.0.2 (19 июля 2022 года)

OpenJDK — проект по созданию полностью совместимого Java Development Kit, состоящего исключительно из свободного и открытого исходного кода.

История

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

Компания Sun на конференции JavaOne 2006 объявила, что Java станет свободным программным обеспечением[1][2], и 25 октября 2006 на конференции Oracle OpenWorld Джонатан Шварц сказал, что компания намерена открыть коды ядра платформы Java в течение 30—60 дней.

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

Публикация библиотеки классов

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

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

5 ноября 2007 года компания Red Hat заключила соглашение с Sun, подписав обширное соглашение участника проекта (которое охватывает участие разработчиков Red Hat во всех руководимых Sun свободных и открытых проектах) и лицензию сообщества OpenJDK (которая дает доступ компании к тестовым программным пакетам, определяющим, соответствует ли проект OpenJDK спецификациям Java SE 6)[8].

Также в ноябре 2007 года в OpenJDK была создана Porters Group[9] для оказания помощи в портировании (адаптации) OpenJDK на различные процессорные архитектуры и операционные системы. Проект портирования под BSD, возглавляемый Куртом Миллером и Грегом Льюисом, и проект портирования под Mac OS X (основанный также на ядре BSD), руководимый Лэндоном Фуллером, имели повышенный интерес во включении OpenJDK посредством Porters Group.

В декабре 2007 года Sun перевела контроль версий OpenJDK с TeamWare на Mercurial как часть процесса перевода на открытые средства разработки[10][11].

OpenJDK имеет сравнительно строгие процедуры принятия изменений кода: каждое предполагаемое изменение должно быть рассмотрено двумя инженерами Sun (впоследствии — Oracle), а участник должен предварительно подписать особое «соглашение участника»[12]), предпочтительно также должен быть проведен тест JTreg[13], демонстрирующий, что ошибка была исправлена. Первоначально процесс принятия исправлений извне был довольно медленный[14], и изменения в кодах до сентября 2008 года вносились только непосредственно инженерами Sun[15]. Процесс улучшился начиная с 2010 года, небольшие патчи и изменения от версии OpenJDK7 до OpenJDK6 могут быть приняты за несколько часов вместо нескольких дней.[16].

11 октября 2010 IBM и Oracle объявили о совместном сотрудничестве в дальнейшей разработке OpenJDK[17].

Статус развития

Поддерживаемые версии JDK

OpenJDK изначально основывался только на JDK 7.

15 февраля 2008 года OpenJDK разделился на два проекта: OpenJDK, который базируется на JDK 7, и JDK 6, которая обеспечивает свободной версией Java 6.

Все версии OpenJDK (6, 7, 8, 9) имеют единую кодовую базу. То есть, mercurial-репозитории для новых версий OpenJDK создаются из предыдущих. Основная разработка ведется в версии OpenJDK, которая готовится к релизу. В частности, в 2011—2013 годах основная разработка велась в OpenJDK 8, а в 2014—2016 годах — в OpenJDK 9. Таким образом, разработка новых библиотек и подсистем ведется в версии, которая только готовится к релизу и после интеграции в основной репозиторий портируется в более ранние версии.

Компилятор и виртуальная машина

Компилятор Java и виртуальная машина HotSpot доступны под лицензией GPL.

Включение в дистрибутивы Linux

В июне 2008 года был анонсирован проект IcedTea (пакетная версия OpenJDK в Fedora 9), который прошёл Technology Compatibility Kit и теперь может претендовать на звание реализации, полностью совместимой с Java 6.

12 июля 2008 года OpenJDK был принят в нестабильную ветку Debian.

В июле 2009 года бинарная сборка OpenJDK для Ubuntu 9.04 прошла все испытания на совместимость с платформой Java SE 6.[18]

Сборка OpenJDK 6 устанавливается в основном наборе пакетов OpenSUSE 11, входит в состав пакетов, поставляемых на DVD и присутствует в основных репозиториях проекта.

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

11 октября 2010 года компания IBM как наикрупнейший участник Apache Harmony присоединился к проекту «OpenJDK» компании Oracle, переложив все усилия с Harmony на OpenJDK project.

12 ноября 2010 года компания Apple и корпорация Oracle анонсировали проект OpenJDK для платформы Mac OS X.

11 января 2011 года был создан проект Mac OS X Port на основе уже созданной OpenJDK.

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

См. также

Примечания

  1. Schwartz, Jonathan Busy Week... (недоступная ссылка). Sun Microsystems (23 мая 2006). Дата обращения: 9 мая 2007. Архивировано 12 марта 2012 года.
  2. Sun Opens Java (OGG Theora(недоступная ссылка). Sun Microsystems. Архивировано 12 марта 2012 года.
  3. Sun Opens Java (недоступная ссылка). Sun Microsystems (13 ноября 2006). Дата обращения: 9 мая 2007. Архивировано 21 апреля 2007 года.
  4. Stallman, Richard Free But Shackled—The Java Trap (недоступная ссылка). Дата обращения: 4 декабря 2007. Архивировано 12 марта 2012 года.
  5. Sun 'releases' Java to the world (недоступная ссылка). BBC News (13 ноября 2006). Дата обращения: 9 мая 2007. Архивировано 12 марта 2012 года.
  6. Open JDK is here! (недоступная ссылка). Sun Microsystems (8 мая 2007). Дата обращения: 9 мая 2007. Архивировано 12 марта 2012 года.
  7. Some encumbered code[прояснить] remains in the JDK; Sun stated that it will continue to use such code in commercial releases until fully functional free and open source alternatives replace it.
  8. Broad contributor agreement and TCK License pave way for a fully compatible, free and open source Java Development Kit for Red Hat Enterprise Linux. Дата обращения: 11 ноября 2010. Архивировано 28 февраля 2010 года.
  9. Porters Group. Дата обращения: 11 ноября 2010. Архивировано 6 ноября 2010 года.
  10. James Gosling (October 2006), James Gosling on Open Sourcing Sun's Java Platform Implementations, Part 1. Интервью c Robert Eckstein, <http://java.sun.com/developer/technicalArticles/Interviews/gosling_os1_qa.html>. Проверено 11 ноября 2010.. 
  11. O’Hair, Kelly Mercurial OpenJDK Questions (недоступная ссылка) (12 декабря 2007). Архивировано 12 марта 2012 года.
  12. Sun Microsystems Inc. Contributor Agreement (недоступная ссылка). Архивировано 12 марта 2012 года.
  13. Regression Test Harness for the OpenJDK platform: jtreg (недоступная ссылка). Дата обращения: 26 августа 2008. Архивировано 12 марта 2012 года.
  14. Tripp, Andy Classpath hackers frustrated with slow OpenJDK process (недоступная ссылка) (16 июля 2007). Дата обращения: 20 апреля 2008. Архивировано 12 марта 2012 года.
  15. Kennke, Roman A small step for me (недоступная ссылка) (29 сентября 2008). Дата обращения: 19 октября 2008. Архивировано 3 октября 2008 года.
  16. Darcy, Joe Backporting changeset from 7 to 6 for bugfix (недоступная ссылка) (10 июня 2010). Архивировано 12 марта 2012 года.
  17. Oracle and IBM Collaborate to Accelerate Java Innovation Through OpenJDK (недоступная ссылка) (11 октября 2010). Архивировано 12 марта 2012 года.
  18. Announcing OpenJDK 6 Certification for Ubuntu 9.04 (jaunty). Дата обращения: 14 июля 2009. Архивировано 29 сентября 2011 года.

Ссылки