Виртуальная машина Максин
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Оригинальный автор(ы) | Бернд Матиске, Дуглас Саймон ( Сан Лабс , Оракл ) |
---|---|
Разработчик(и) | Манчестерский университет , команда Максин |
Первоначальный выпуск | 2005 г |
Стабильная версия | 2.9.0 [1] / 20 декабря 2019 г |
Репозиторий | |
Написано в | Ява |
Операционная система | Солярис , Линукс , macOS |
Платформа | x64, ARM32, AArch64, RISC-V |
Тип | виртуальная машина Java |
Лицензия | Лицензионная лицензия версии 2.0 |
Веб-сайт | github ![]() |
Виртуальная машина Maxine с открытым исходным кодом — это виртуальная машина , разработанная в Манчестерском университете. [2] Ранее он был разработан Sun Microsystems Laboratories . [3] с тех пор переименован в Oracle Labs. Акцент в архитектуре программного обеспечения Maxine делается на модульную конструкцию и повторное использование кода для обеспечения гибкости, настраиваемости и производительности для промышленных и академических исследователей виртуальных машин. Это одна из растущего числа виртуальных машин Java , полностью написанных на Java в метациклическом стиле. Примеры включают Squawk и Jikes RVM .
Архитектура
[ редактировать ]Внутри Maxine VM характеризуется агрессивным использованием расширенных языковых функций Java 1.5 и 1.6, модульными подсистемами, координируемыми через интерфейсы Java, отсутствием интерпретатора , а также тесно связанным отладчиком и инструментом визуализации для разработки виртуальных машин.
Совместимость
[ редактировать ]Maxine совместим с немодифицированным комплектом разработки Java (JDK). Maxine можно разрабатывать, собирать и запускать в стандартных интегрированных средах разработки Java (IDE), включая 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]
См. также
[ редактировать ]Ссылки
[ редактировать ]Примечания
[ редактировать ]- ^ «Maxine VM: метациркулярная виртуальная машина для Java в Java» . Гитхаб . 18 ноября 2021 г.
- ^ Виммер и др. 2013 , с. 1.
- ^ «Oracle Labs – О компании» . Labs.oracle.com . Проверено 25 июня 2017 г.
- ^ «Проект Максин: Инспектор Максин» . сообщество.oracle.com . Проверено 08 апреля 2019 г.
- ^ «Знакомство с Maxine Inspector (Демо)» . youtube.com . Проверено 08 апреля 2019 г.
- ^ «Мини-демо Maxine Inspector 6 из 10 (2008 г.): Представления методов с несколькими кодами» . youtube.com . Проверено 08 апреля 2019 г.
- ^ «Мини-демо Maxine Inspector 5 из 10 (2008 г.): Дизассемблированный байт-код» . youtube.com . Проверено 08 апреля 2019 г.
- ^ «Мини-демо Maxine Inspector 4 из 10 (2008 г.): Дизассемблированный машинный код» . youtube.com . Проверено 08 апреля 2019 г.
- ^ «Мини-демо Maxine Inspector 10 из 10 (2008 г.): Точки останова» . youtube.com . Проверено 08 апреля 2019 г.
- ^ «Мини-демо Maxine Inspector 7 из 10 (2008 г.): Потоки» . youtube.com . Проверено 08 апреля 2019 г.
- ^ «Мини-демо Maxine Inspector 9 из 10 (2008): Стеки» . youtube.com . Проверено 08 апреля 2019 г.
- ^ «Мини-демо Maxine Inspector 8 из 10 (2008 г.): Регистры» . youtube.com . Проверено 08 апреля 2019 г.
- ^ «Мини-демо Maxine Inspector 2 из 10 (2008): Память» . youtube.com . Проверено 08 апреля 2019 г.
- ^ «Мини-демо Maxine Inspector 3 из 10 (2008 г.): Кучи объектов» . youtube.com . Проверено 08 апреля 2019 г.
- ^ «Мини-демо Maxine Inspector 1 из 10 (2008 г.): Конфигурация загрузочного образа» . youtube.com . Проверено 08 апреля 2019 г.
- ^ «Архивная копия» . Архивировано из оригинала 4 марта 2016 г. Проверено 18 сентября 2013 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ^ «Maxine-VM: Maxine VM: метациркулярная исследовательская виртуальная машина» . Гитхаб. 21 июня 2017 года . Проверено 25 июня 2017 г.
Библиография
[ редактировать ]- Коцелидис, Христос; Кларксон, Джеймс; Родченко Андрей; Нисбет, Энди; Мауэр, Джон; Лухан, Микель (2017). «Гетерогенные управляемые системы времени выполнения». Материалы 13-й Международной конференции ACM SIGPLAN/SIGOPS по виртуальным средам выполнения . ВЭЭ 2017. С. 74–82. дои : 10.1145/3050748.3050764 . ISBN 978-1-4503-4948-2 .
- Виммер, Кристиан; Хаупт, Майкл; Ван Де Вантер, Майкл Л.; Джордан, Мик; Дайнес, Лоран; Саймон, Дуглас (январь 2013 г.). «Maxine: доступная виртуальная машина для Java и внутри нее» . Транзакции ACM по оптимизации архитектуры и кода . 9 (4). искусство. 30. дои : 10.1145/2400682.2400689 . ISSN 1544-3566 .