JEP 294: Linux/s390x Port
Порт на Linux/s390x
| Ответственный | Volker Simonis |
| Тип | Feature |
| Область | Implementation |
| Статус | Closed / Delivered |
| Выпуск | 9 |
| Компонент | hotspot / compiler |
| Обсуждение | s390x dash port dash dev at openjdk dot java dot net |
| Трудоёмкость | M |
| Длительность | M |
| Рецензенты | Alan Bateman |
| Одобрен | Vladimir Kozlov |
| Создан | 2016/09/26 17:48 |
| Обновлён | 2019/08/13 10:36 |
| Задача | 8166730 |
Аннотация
Портировать JDK 9 на Linux/s390x.
Мотивация
s390x (также известная под названиями «System z» или «z/Architecture») — архитектура мейнфреймов, которую разрабатывает и поддерживает IBM. На s390x работают несколько дистрибутивов Linux, в том числе Ubuntu, RHEL/Fedora и SuSE.
Современные облачные развёртывания с такими пакетами, как TomEE, Cassandra, Spark, Hadoop и Neo4j (и это лишь некоторые из них), во многом зависят от Java. Поскольку большинство этих пакетов имеют открытый исходный код, лучше всего они работают на OpenJDK, который сейчас недоступен для Linux/s390x.
Этот JEP нужен, чтобы устранить этот недостаток.
Описание
У SAP есть полный (то есть с шаблонным интерпретатором, JIT-компиляторами C1 и C2) и сертифицированный (Java SE 1.4–8) порт на s390x, который уже много лет используется в продакшене. Мы уже передали этот порт в s390x Port Project; он работает на моделях IBM System z z10 и новее (только 64-битных).
Этот JEP посвящён не самому портированию, которое в основном завершено, а интеграции порта в главный репозиторий JDK 9.
Сейчас у нас есть очередь патчей менее чем из 10 наборов изменений, в которой очень мало общих изменений, и они вообще не должны затрагивать текущие платформы. Кроме двух минимальных изменений сборки в репозитории верхнего уровня и в репозитории jdk, все остальные изменения находятся только в репозитории hotspot.
Мы уже начали создавать задачи в JBS для общих изменений, и некоторые из них уже находятся на рецензировании.
Альтернативы
Сейчас для запуска JDK на Linux/s390x можно использовать порт Zero, но он довольно медленный (потому что использует только старый, устаревший интерпретатор C++) и не очень хорошо протестирован. Он не является реальной альтернативой для запуска таких нагрузок, как серверы приложений или приложения баз данных, написанные на Java.
Для Linux/s390x также доступен IBM's Developer Kit for Linux, но сейчас у него нет открытого исходного кода, и для работы с ним Java-приложения обычно требуют некоторой настройки или тонкой настройки. Кроме того, его нельзя использовать для тестирования новых возможностей будущих версий Java, потому что он выходит только после того, как сам JDK достигает статуса GA.
Тестирование
Этот порт уже много лет используется в продакшене в составе нашего коммерческого продукта SAP JVM. Мы уже ежедневно собираем и тестируем OpenJDK-версию порта (запуская тесты jtreg и JCK, бенчмарки SPEC и несколько приложений SAP) и обязуемся делать это и в будущем. Разумеется, мы также будем сопровождать порт в будущем и обновлять его в соответствии со всеми будущими требованиями.
Риски и допущения
В отличие от нашего предыдущего порта PowerPC/AIX, этот порт требует лишь минимальных изменений в существующей кодовой базе, потому что:
- s390x — архитектура CISC со строгой моделью памяти;
- не требуется изменений, связанных с ОС, поскольку мы ориентируемся только на Linux.
Мы вообще не ожидаем никакого влияния на существующие платформы.