OpenJDK

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
OpenJDK
OpenJDK logo.png
Тип

Библиотека

Разработчик

Oracle (ранее Sun Microsystems)

Написана на

C и Java

Операционная система

Кроссплатформенное программное обеспечение

Аппаратная платформа

Java Virtual Machine

Последняя версия

8u102 (21 июля, 2016)

Тестовая версия

JDK 9

Лицензия

GPL+linking exception

Сайт

openjdk.java.net

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 [1], Sun опубликовала полные исходные коды библиотеки классов Java под GPL 8 мая 2007, за исключением некоторых частей, ограниченных третьей стороной, и исключающих условия GPL.[6] В списке среди обремененных частей были несколько важных компонентов Java по графическому интерфейсу (GUI). Sun заявила, что планирует заменить оставшиеся собственнические компоненты альтернативными реализациями и сделать библиотеку классов полностью свободной.[7]

Улучшения сообщества[править | править вики-текст]

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

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

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

OpenJDK имеет сравнительно строгие процедуры принятия изменений кода: каждое предполагаемое изменение должно быть рассмотрено двумя инженерами Sun/Oracle, а участник должен предварительно подписать Соглашение Участника Sun/Oracle (SCA/OCA[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 (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 и присутствует в основных репозиториях проекта.

Примечания[править | править вики-текст]

  1. Schwartz, Jonathan Busy Week.... Sun Microsystems (May 23, 2006). Проверено 9 мая 2007. Архивировано 12 марта 2012 года.
  2. Sun Opens Java (OGG Theora). Sun Microsystems. Архивировано 12 марта 2012 года.
  3. Sun Opens Java. Sun Microsystems (November 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 (November 13, 2006). Проверено 9 мая 2007. Архивировано 12 марта 2012 года.
  6. Open JDK is here!. Sun Microsystems (May 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
  9. Porters Group
  10. James Gosling (October 2006), James Gosling on Open Sourcing Sun's Java Platform Implementations, Part 1, <http://java.sun.com/developer/technicalArticles/Interviews/gosling_os1_qa.html> 
  11. O'Hair, Kelly Mercurial OpenJDK Questions (December 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 (July 16, 2007). Проверено 20 апреля 2008. Архивировано 12 марта 2012 года.
  15. Kennke, Roman A small step for me (недоступная ссылка — история) (September 29, 2008). Проверено 19 октября 2008. Архивировано 3 октября 2008 года.
  16. Darcy, Joe Backporting changeset from 7 to 6 for bugfix (June 10, 2010). Архивировано 12 марта 2012 года.
  17. Oracle and IBM Collaborate to Accelerate Java Innovation Through OpenJDK (October 11, 2010). Архивировано 12 марта 2012 года.
  18. Announcing OpenJDK 6 Certification for Ubuntu 9.04 (jaunty)

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]