OpenJDK — Википедия

OpenJDK
Логотип программы OpenJDK
Тип Java Development Kit
Разработчик Oracle[1]
Написана на Java[2]
Операционные системы GNU/Linux[3], BSD[вд][3], Windows[3], macOS[3] и Unix-подобная операционная система
Первый выпуск 8 мая 2007
Аппаратная платформа Java Virtual Machine
Последняя версия 22
Репозиторий github.com/openjdk/jdk
Лицензия GNU GPL 2, GPL linking exception[вд][4] и Universal Permissive License[вд][5]
Сайт openjdk.org (англ.)

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

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

[править | править код]

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

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

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

[править | править код]

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

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

[править | править код]

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

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

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

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

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

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

[править | править код]

Поддерживаемые версии 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.[23]

Сборка 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. https://openjdk.java.net/legal/openjdk-trademark-notice.html
  2. The OpenJDK Open Source Project on Open Hub: Languages Page — 2006.
  3. 1 2 3 4 Free Software Directory
  4. https://openjdk.java.net/legal/gplv2+ce.html
  5. https://github.com/openjdk/jdk/tree/master/src/utils/hsdis
  6. Schwartz, Jonathan Busy Week... Sun Microsystems (23 мая 2006). Дата обращения: 9 мая 2007. Архивировано из оригинала 12 марта 2012 года.
  7. Sun Opens Java (OGG Theora). Sun Microsystems. Архивировано из оригинала 12 марта 2012 года.
  8. Sun Opens Java. Sun Microsystems (13 ноября 2006). Дата обращения: 9 мая 2007. Архивировано из оригинала 21 апреля 2007 года.
  9. Stallman, Richard Free But Shackled—The Java Trap. Дата обращения: 4 декабря 2007. Архивировано из оригинала 12 марта 2012 года.
  10. Sun 'releases' Java to the world. BBC News (13 ноября 2006). Дата обращения: 9 мая 2007. Архивировано из оригинала 12 марта 2012 года.
  11. Open JDK is here! Sun Microsystems (8 мая 2007). Дата обращения: 9 мая 2007. Архивировано из оригинала 12 марта 2012 года.
  12. 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.
  13. 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 года.
  14. Porters Group. Дата обращения: 11 ноября 2010. Архивировано 6 ноября 2010 года.
  15. James Gosling (2006). "James Gosling on Open Sourcing Sun's Java Platform Implementations, Part 1" (Interview). Interviewed by Robert Eckstein. Архивировано 1 марта 2009. Дата обращения: 11 ноября 2010. {{cite interview}}: Неизвестный параметр |month= игнорируется (справка)
  16. O’Hair, Kelly Mercurial OpenJDK Questions (12 декабря 2007). Архивировано из оригинала 12 марта 2012 года.
  17. Sun Microsystems Inc. Contributor Agreement. Архивировано из оригинала 12 марта 2012 года.
  18. Regression Test Harness for the OpenJDK platform: jtreg. Дата обращения: 26 августа 2008. Архивировано из оригинала 12 марта 2012 года.
  19. Tripp, Andy Classpath hackers frustrated with slow OpenJDK process (16 июля 2007). Дата обращения: 20 апреля 2008. Архивировано из оригинала 12 марта 2012 года.
  20. Kennke, Roman A small step for me (29 сентября 2008). Дата обращения: 19 октября 2008. Архивировано из оригинала 3 октября 2008 года.
  21. Darcy, Joe Backporting changeset from 7 to 6 for bugfix (10 июня 2010). Архивировано из оригинала 12 марта 2012 года.
  22. Oracle and IBM Collaborate to Accelerate Java Innovation Through OpenJDK (11 октября 2010). Архивировано из оригинала 12 марта 2012 года.
  23. Announcing OpenJDK 6 Certification for Ubuntu 9.04 (jaunty). Дата обращения: 14 июля 2009. Архивировано 29 сентября 2011 года.