Программное обеспечение с открытым исходным кодом
Виртуальная машина Maxine — это виртуальная машина с открытым исходным кодом , разработанная в Манчестерском университете. Ранее она была разработана 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 можно разрабатывать, собирать и запускать в стандартных интегрированных средах разработки Java (IDE), включая NetBeans , Eclipse и IntelliJ IDEA .
Системное программирование на Java
Второстепенной целью проекта является разработка методов и инструментов для «системного программирования на Java». Расширения компилятора , настроенные в исходном коде виртуальной машины с использованием аннотаций Java , позволяют использовать без потери производительности низкоуровневые операции, которые в противном случае были бы запрещены в Java. Эти расширения легли в основу компилятора Graal .
Максин Инспектор
Специализированная поддержка отладки для Maxine VM предоставляется Maxine Inspector: сопутствующим инструментом, который действует как объединенный браузер объектов, классов и методов, а также как отладчик на уровне машины и байт-кода. [4]
Inspector работает вне процесса, не нуждается в активной поддержке VM и использует код, общий с VM, для специализированных служб разработчиков, которые используют подробные знания о структуре памяти и дизайне VM. [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]
Смотрите также
Ссылки
Примечания
- ^ «Maxine VM: метациркулярная виртуальная машина для Java на Java» . Гитхаб . 18 ноября 2021 г.
- ^ "Oracle Labs – О нас". Labs.oracle.com . Получено 2017-06-25 .
- ^ "Проект Максин: инспектор Максин". community.oracle.com . Получено 2019-04-08 .
- ^ "Введение в инспектора Максин (Демо)". youtube.com . 5 апреля 2010 г. Получено 08.04.2019 .
- ^ "Мини-демонстрация Maxine Inspector 6 из 10 (2008): Просмотры методов с несколькими кодами". youtube.com . 28 августа 2010 . Получено 08.04.2019 .
- ^ "Мини-демо Maxine Inspector 5 из 10 (2008): Дизассемблированный байт-код". youtube.com . 28 августа 2010 . Получено 2019-04-08 .
- ^ "Мини-демонстрация Maxine Inspector 4 из 10 (2008): Разобранный машинный код". youtube.com . 28 августа 2010 . Получено 08.04.2019 .
- ^ "Мини-демо Maxine Inspector 10 из 10 (2008): Точки останова". youtube.com . 28 августа 2010 . Получено 08.04.2019 .
- ^ "Мини-демо Maxine Inspector 7 из 10 (2008): Threads". youtube.com . 28 августа 2010 . Получено 2019-04-08 .
- ^ "Мини-демо Maxine Inspector 9 из 10 (2008): Stacks". youtube.com . 28 августа 2010 . Получено 2019-04-08 .
- ^ "Мини-демо Maxine Inspector 8 из 10 (2008): Регистры". youtube.com . 28 августа 2010 . Получено 2019-04-08 .
- ^ "Мини-демо Maxine Inspector 2 из 10 (2008): Память". youtube.com . 28 августа 2010 . Получено 2019-04-08 .
- ^ "Мини-демо Maxine Inspector 3 из 10 (2008): Heap Objects". youtube.com . 28 августа 2010 . Получено 2019-04-08 .
- ^ "Maxine Inspector Mini-Demo 1 of 10 (2008): Boot Image Configuration". youtube.com . 28 августа 2010 . Получено 2019-04-08 .
- ^ "Архивная копия". Архивировано из оригинала 2016-03-04 . Получено 2013-09-18 .
{{cite web}}
: CS1 maint: архивная копия как заголовок ( ссылка ) - ^ "Maxine-VM: Maxine VM: метациклическая исследовательская VM". GitHub. 21 июня 2017 г. Получено 25 июня 2017 г.
Библиография
- Kotselidis, Christos; Clarkson, James; Rodchenko, Андрей; Nisbet, Andy; Mawer, John; Luján, Mikel (2017). «Гетерогенные управляемые системы времени выполнения». Труды 13-й Международной конференции ACM SIGPLAN/SIGOPS по средам виртуального выполнения . VEE 2017. стр. 74–82. doi :10.1145/3050748.3050764. ISBN 978-1-4503-4948-2.
- Wimmer, Christian; Haupt, Michael; Van De Vanter, Michael L.; Jordan, Mick; Daynès, Laurent; Simon, Douglas (январь 2013 г.). "Maxine: доступная виртуальная машина для Java и в Java". ACM Transactions on Architecture and Code Optimization . 9 (4). art. 30. doi : 10.1145/2400682.2400689 . ISSN 1544-3566.
Внешние ссылки