Эта статья поднимает множество проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалить эти сообщения-шаблоны ) ( Узнайте, как и когда удалить этот шаблон сообщения )
|
Автор (ы) оригинала | Бернд Матиск, Дуглас Саймон ( Sun Labs , Oracle ) |
---|---|
Разработчики) | Университет Манчестера , команда Maxine |
Первый выпуск | 2005 |
Стабильный выпуск | 2.9.0 [1] / 20 декабря 2019 г . |
Репозиторий | |
Написано в | Ява |
Операционная система | Солярис , Linux , macOS |
Платформа | x64, ARM32, AArch64, RISC-V |
Тип | Виртуальная машина Java |
Лицензия | GPL версии 2.0 |
Веб-сайт | github |
Максин виртуальная машина с открытым исходным кодом виртуальной машины , которая разработана в Университете Манчестера. [2] Ранее он был разработан Sun Microsystems Laboratories , [3] с тех пор переименован в Oracle Labs. Основное внимание в архитектуре программного обеспечения Maxine уделяется модульному дизайну и повторному использованию кода для обеспечения гибкости, настраиваемости и производительности для промышленных и академических исследователей виртуальных машин. Это одна из постоянно растущего числа виртуальных машин Java, полностью написанных на Java в мета-круговом стиле. Примеры включают Squawk и Jikes RVM .
Архитектура [ править ]
Виртуальная машина Maxine внутренне характеризуется агрессивным использованием расширенных языковых функций в Java 1.5 и 1.6, модульными подсистемами, координируемыми через интерфейсы Java, отсутствием интерпретатора и тесно связанным инструментом отладчика и визуализации для разработки виртуальных машин.
Совместимость [ править ]
Maxine совместим с немодифицированным Java Development Kit (JDK). Maxine можно разрабатывать, создавать и запускать в стандартных интегрированных средах разработки (IDE) Java , включая NetBeans , Eclipse и IntelliJ IDEA .
Системное программирование на Java [ править ]
Вторичной целью проекта является разработка методов и инструментов для «системного программирования на Java». Расширения компилятора , настроенные в исходном коде виртуальной машины с использованием аннотаций Java , позволяют использовать без потери производительности низкоуровневые операции, запрещенные в Java в противном случае. Эти расширения легли в основу компилятора Graal .
Инспектор Максин [ править ]
Специализированная поддержка отладки для виртуальной машины Maxine обеспечивается Maxine Inspector: сопутствующим инструментом, который действует как комбинированный обозреватель объектов, классов и методов, а также как отладчик на уровне машины и байт-кода. [4] Инспектор работает вне процесса, не требует активной поддержки виртуальных машин и использует код, совместно используемый виртуальной машиной, для специализированных служб разработчика, которые используют подробные знания структуры памяти и конструкции виртуальных машин. [5] Известные услуги включают:
- многорежимные представления кода [6] (исходный код, байт-код, [7] дизассемблированный машинный код [8] ) с многорежимными точками останова [9] и пошаговым режимом ;
- поток, [10] стек, [11] регистр, [12] и проверка локальной переменной потока;
- гибкая низкоуровневая визуализация памяти [13] с динамической интерпретацией и связыванием значений памяти, например, в виде ячеек кода, ссылок на объекты;
- динамическая визуализация полей объекта и метаданных; [14]
- детали конфигурации загрузочного образа; [15] и
- специализированная поддержка алгоритмов для отладки во время сборки мусора.
История [ править ]
Maxine был создан Берндом Матиске в Sun Labs в начале 2005 года. Он руководил его разработкой в растущей команде до конца 2008 года, когда он покинул Sun Microsystems и передал проект Дагу Саймону, который был первым инженером, присоединившимся к нему. Дуг Саймон продолжал выполнять эту роль во время приобретения Sun корпорацией Oracle .
Статическая (проверка кучи) версия Maxine Inspector была создана Берндом Матиске в 2006 году. Майкл Ван Де Вантер взял на себя разработку Inspector в 2007 году, добавив динамическую поддержку по мере того, как виртуальная машина стала исполняемой и продолжала развиваться на протяжении всего периода приобретения Sun компанией Oracle. Корпорация .
Oracle продолжала разработку Maxine до выпуска Maxine 2.0. [16] Манчестерский университет разрабатывает Maxine начиная с версии 2.1. [17]
См. Также [ править ]
- Список виртуальных машин Java
- Виртуальная машина Squawk
- Jikes RVM
Ссылки [ править ]
Заметки [ править ]
- ^ https://github.com/beehive-lab/Maxine-VM/blob/master/CHANGELOG.md
- ^ Wimmer et al. 2013 , стр. 1.
- ^ «Oracle Labs - О нас» . Labs.oracle.com . Проверено 25 июня 2017 .
- ^ «Проект Максин: Инспектор Максин» . community.oracle.com . Проверено 8 апреля 2019 .
- ^ «Введение в Maxine Inspector (Демо)» . youtube.com . Проверено 8 апреля 2019 .
- ^ «Maxine Inspector Mini-Demo 6 из 10 (2008): Мультикодовые виды методов» . youtube.com . Проверено 8 апреля 2019 .
- ^ «Maxine Inspector Mini-Demo 5 из 10 (2008): Дизассемблированный байт-код» . youtube.com . Проверено 8 апреля 2019 .
- ^ «Мини-демонстрация Maxine Inspector 4 из 10 (2008): Disassembled Machine Code» . youtube.com . Проверено 8 апреля 2019 .
- ^ «Мини-демонстрация Maxine Inspector 10 из 10 (2008): точки останова» . youtube.com . Проверено 8 апреля 2019 .
- ^ «Maxine Inspector Mini-Demo 7 из 10 (2008): Threads» . youtube.com . Проверено 8 апреля 2019 .
- ^ «Максин Инспектор Мини-Демонстрация 9 из 10 (2008): Стеки» . youtube.com . Проверено 8 апреля 2019 .
- ^ "Maxine Inspector Mini-Demo 8 из 10 (2008): Регистры" . youtube.com . Проверено 8 апреля 2019 .
- ^ «Максин Инспектор Мини-Демонстрация 2 из 10 (2008): Память» . youtube.com . Проверено 8 апреля 2019 .
- ^ "Maxine Inspector Mini-Demo 3 of 10 (2008): Heap Objects" . youtube.com . Проверено 8 апреля 2019 .
- ^ «Maxine Inspector Mini-Demo 1 из 10 (2008): Конфигурация загрузочного образа» . youtube.com . Проверено 8 апреля 2019 .
- ^ "Архивная копия" . Архивировано из оригинала на 2016-03-04 . Проверено 18 сентября 2013 .CS1 maint: archived copy as title (link)
- ^ "Максин-ВМ: Максин ВМ: мета-круговая исследовательская виртуальная машина" . GitHub. 21 июня 2017 . Проверено 25 июня 2017 .
Библиография [ править ]
- Коцелидис, Христос; Кларксон, Джеймс; Родченко Андрей; Нисбет, Энди; Мауэр, Джон; Лухан, Микель (2017). «Гетерогенные управляемые системы времени выполнения». Материалы 13-й Международной конференции ACM SIGPLAN / SIGOPS по виртуальным средам выполнения . VEE 2017. С. 74–82. DOI : 10.1145 / 3050748.3050764 . ISBN 978-1-4503-4948-2.
- Виммер, Кристиан; Хаупт, Майкл; Ван Де Вантер, Майкл Л .; Джордан, Мик; Дайнес, Лоран; Саймон, Дуглас (январь 2013 г.). «Максин: доступная виртуальная машина для java и в ней» . Транзакции ACM по архитектуре и оптимизации кода . 9 (4). Изобразительное искусство. 30. DOI : 10,1145 / 2400682,2400689 . ISSN 1544-3566 .
Внешние ссылки [ править ]
- Официальный веб-сайт
- Проект Maxine VM на сайте Read the Docs