OpenJDK | это... Что такое OpenJDK? (original) (raw)
OpenJDK
Тип | Библиотека |
Разработчик | Oracle (ранее Sun Microsystems) |
Написана на | C и Java |
Операционная система | Кроссплатформенное программное обеспечение |
Последняя версия | 6b23 (6 июля, 2011) |
Тестовая версия | OpenJDK7 Build b116 (28 октября, 2010) |
Лицензия | GPL+linking exception |
Сайт | http://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 разделился на два проекта:
Компилятор и виртуальная машина
Компилятор 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 и присутствует в основных репозиториях проекта.
Примечания
- ↑ Schwartz, Jonathan Busy Week.... Sun Microsystems (May 23, 2006). Архивировано из первоисточника 12 марта 2012. Проверено 9 мая 2007.
- ↑ Sun Opens Java (OGG Theora). Sun Microsystems. Архивировано из первоисточника 12 марта 2012.
- ↑ Sun Opens Java. Sun Microsystems (November 13, 2006). Архивировано из первоисточника 21 апреля 2007. Проверено 9 мая 2007.
- ↑ Stallman, Richard Free But Shackled—The Java Trap. Архивировано из первоисточника 12 марта 2012. Проверено 4 декабря 2007.
- ↑ Sun 'releases' Java to the world. BBC News (November 13, 2006). Архивировано из первоисточника 12 марта 2012. Проверено 9 мая 2007.
- ↑ Open JDK is here!. Sun Microsystems (May 8, 2007). Архивировано из первоисточника 12 марта 2012. Проверено 9 мая 2007.
- ↑ 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.
- ↑ Broad contributor agreement and TCK License pave way for a fully compatible, free and open source Java Development Kit for Red Hat Enterprise Linux
- ↑ Porters Group
- ↑ 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>
- ↑ O'Hair, Kelly Mercurial OpenJDK Questions (December 12, 2007). Архивировано из первоисточника 12 марта 2012.
- ↑ Sun Microsystems Inc. Contributor Agreement. Архивировано из первоисточника 12 марта 2012.
- ↑ Regression Test Harness for the OpenJDK platform: jtreg. Архивировано из первоисточника 12 марта 2012. Проверено 26 августа 2008.
- ↑ Tripp, Andy Classpath hackers frustrated with slow OpenJDK process (July 16, 2007). Архивировано из первоисточника 12 марта 2012. Проверено 20 апреля 2008.
- ↑ Kennke, Roman A small step for me (September 29, 2008).(недоступная ссылка — история) Проверено 19 октября 2008. (недоступная ссылка)
- ↑ Darcy, Joe Backporting changeset from 7 to 6 for bugfix (June 10, 2010). Архивировано из первоисточника 12 марта 2012.
- ↑ Oracle and IBM Collaborate to Accelerate Java Innovation Through OpenJDK (October 11, 2010). Архивировано из первоисточника 12 марта 2012.
- ↑ Announcing OpenJDK 6 Certification for Ubuntu 9.04 (jaunty)
См. также
Ссылки
- Официальный сайт OpenJDK (англ.)
- OpenJDK FAQ (англ.)
- OpenJDK — The First Year by Mark Reinhold (англ.)
Виртуальные машины Java | |
---|---|
Sun/Oracle | JVM • HotSpot • KVM • OpenJDK • Maxine VM |
Сообщества и основные реализации | Apache Harmony • GCJ • JamVM • Jikes RVM • Kaffe • IKVM.NET • IBM J9 • JRockit (BEA/Oracle) |
Встроенные | Mysaifu • Squawk (Sun) • JamaicaVM • Mika VM |
Другие | CACAO • JX • JNode • другие… |
Неподдерживаемые | Microsoft JVM • SableVM • Jupiter • Jaos |
Java | ||
---|---|---|
Платформы | Java Card • Java ME • Java SE • Java EE | |
Технологии Sun | Java • Java Development Kit • OpenJDK • WTK • Java Virtual Machine • JavaFX • JAXP • Squawk | |
Основные сторонние технологии | GNU Classpath • GNU компилятор для Java • Kaffe • TopLink • Apache Harmony • Apache Struts • Spring Framework • Dalvik • Hibernate • JBoss • Processing • Dozer • AspectJ | |
История | История версий Java • Критика Java • Java Community Process • Sun Microsystems • Свободные реализации Java | |
Свойства языка | Байткод • Синтаксис • Апплеты • Сервлеты • Мидлеты • JavaServer Pages • Web Start • Enterprise JavaBeans | |
Скриптовые языки | Java Tcl • Jython • JRuby • BeanShell • Groovy • Judoscript • Sleep • Bean Scripting Framework • Yoix • Rhino | |
Конференции Java | JavaOne |