OpenJDK

Pause

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 (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.. 
  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 года.

Ссылки

Дополнительно по теме

Pause