OpenJDK

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

java-библиотека[d] и библиотека функций

Разработчик

Oracle

Написана на

C++ и Java

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

Linux

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

Java Virtual Machine

Последняя версия
Лицензия

GNU GPL 2

Сайт

openjdk.java.net

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

История[править | править вики-текст]

Обещание Sun и первый выпуск[править | править вики-текст]

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

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

Публикация библиотеки классов[править | править вики-текст]

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

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

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

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

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

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

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

Статус развития[править | править вики-текст]

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

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

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

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

  1. 1 2 https://blogs.oracle.com/thejavatutorials/jdk-8u144-released
  2. Schwartz, Jonathan Busy Week.... Sun Microsystems (May 23, 2006). Проверено 9 мая 2007. Архивировано 12 марта 2012 года.
  3. Sun Opens Java (OGG Theora). Sun Microsystems. Архивировано 12 марта 2012 года.
  4. Sun Opens Java. Sun Microsystems (November 13, 2006). Проверено 9 мая 2007. Архивировано 21 апреля 2007 года.
  5. Stallman, Richard Free But Shackled—The Java Trap. Проверено 4 декабря 2007. Архивировано 12 марта 2012 года.
  6. Sun 'releases' Java to the world. BBC News (November 13, 2006). Проверено 9 мая 2007. Архивировано 12 марта 2012 года.
  7. Open JDK is here!. Sun Microsystems (May 8, 2007). Проверено 9 мая 2007. Архивировано 12 марта 2012 года.
  8. 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.
  9. Broad contributor agreement and TCK License pave way for a fully compatible, free and open source Java Development Kit for Red Hat Enterprise Linux
  10. Porters Group
  11. 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> 
  12. O’Hair, Kelly Mercurial OpenJDK Questions (December 12, 2007). Архивировано 12 марта 2012 года.
  13. Sun Microsystems Inc. Contributor Agreement. Архивировано 12 марта 2012 года.
  14. Regression Test Harness for the OpenJDK platform: jtreg. Проверено 26 августа 2008. Архивировано 12 марта 2012 года.
  15. Tripp, Andy Classpath hackers frustrated with slow OpenJDK process (July 16, 2007). Проверено 20 апреля 2008. Архивировано 12 марта 2012 года.
  16. Kennke, Roman A small step for me  (недоступная ссылка — история) (September 29, 2008). Проверено 19 октября 2008. Архивировано 3 октября 2008 года.
  17. Darcy, Joe Backporting changeset from 7 to 6 for bugfix (June 10, 2010). Архивировано 12 марта 2012 года.
  18. Oracle and IBM Collaborate to Accelerate Java Innovation Through OpenJDK (October 11, 2010). Архивировано 12 марта 2012 года.
  19. Announcing OpenJDK 6 Certification for Ubuntu 9.04 (jaunty)

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