Виртуальная машина Максин - Maxine Virtual Machine

Максин
Оригинальный автор (ы)Бернд Матиск, Дуглас Саймон
Разработчики)Университет Манчестера, команда Maxine
изначальный выпуск2005; 15 лет назад (2005)
Стабильный выпуск
2.9.0[1] / 20 декабря 2019 г.; 11 месяцев назад (2019-12-20)
Репозиторий Отредактируйте это в Викиданных
Написано вЯва
Операционная системаСолярис, Linux, macOS
Платформаx64, ARM32, AArch64, RISC-V
ТипВиртуальная машина Java
ЛицензияGPL версия 2.0
Интернет сайтgithub.com/ улей-лаборатория/ Максин-ВМ Отредактируйте это в Викиданных

В Максин виртуальная машина с открытым исходным кодом виртуальная машина который разработан в Манчестерском университете.[2] Ранее он был разработан Лаборатории Sun Microsystems,[3] с тех пор переименован в Oracle Labs. Акцент в Максин программная архитектура посвящен модульной конструкции и повторному использованию кода для обеспечения гибкости, настраиваемости и производительности для промышленных и академических исследователей виртуальных машин. Это один из растущего числа Виртуальные машины Java полностью написан на Java в мета-круговой стиль. Примеры включают Пронзительный крик и Jikes RVM.

Архитектура

Виртуальная машина Maxine внутренне характеризуется агрессивным использованием расширенных языковых функций в Java 1.5 и 1.6, модульными подсистемами, координируемыми через интерфейсы Java, отсутствием устный переводчик, а также тесно связанным отладчиком и визуализацией инструмент для разработки ВМ.

Совместимость

Максин совместимый с вилкой с неизмененным Комплект для разработки Java (JDK). Maxine можно разрабатывать, строить и запускать на стандартной Java интегрированные среды разработки (IDE), включая NetBeans, Затмение, и IntelliJ IDEA.

Системное программирование на Java

Второй целью проекта является разработка методов и инструментов для «системного программирования на Java». Компилятор расширения, настроенные в ВМ исходный код с помощью Аннотации Java, разрешить использование без потери производительности низкоуровневых операций, которые иначе были бы запрещены в Java. Эти расширения послужили основой для Компилятор Graal.

Максин инспектор

Специализированная поддержка отладки для виртуальной машины Maxine обеспечивается Maxine Inspector: сопутствующим инструментом, который действует как комбинированный обозреватель объектов, классов и методов, а также как отладчик на уровне машины и байт-кода.[4]Инспектор работает вне процесса, не требует активной поддержки виртуальных машин и использует код, совместно используемый виртуальной машиной, для специализированных служб разработчика, которые используют подробные знания структуры памяти и конструкции виртуальных машин.[5]Известные услуги включают:

  • несколько режимов просмотра кода[6] (источник, байт-код,[7] дизассемблированный машинный код[8]) с многорежимными точками останова[9] и шагать;
  • нить,[10] куча,[11] регистр,[12] и проверка локальной переменной потока;
  • гибкая визуализация низкоуровневой памяти[13] с динамической интерпретацией и связыванием значений памяти, например как места кода, ссылки на объекты;
  • динамическая визуализация полей объекта и метаданных;[14]
  • детали конфигурации загрузочного образа;[15] и
  • специализированная поддержка алгоритмов для отладки во время сборки мусора.

История

Максин был создан Берндом Матиске в 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]

Смотрите также

Рекомендации

Примечания

  1. ^ https://github.com/beehive-lab/Maxine-VM/blob/master/CHANGELOG.md
  2. ^ Wimmer et al. 2013, п. 1.
  3. ^ «Oracle Labs - О компании». Labs.oracle.com. Получено 2017-06-25.
  4. ^ "Проект Максин: Инспектор Максин". community.oracle.com. Получено 2019-04-08.
  5. ^ «Знакомство с Maxine Inspector (Демо)». youtube.com. Получено 2019-04-08.
  6. ^ "Мини-демонстрация Maxine Inspector 6 из 10 (2008 г.): Мультикодовые представления методов". youtube.com. Получено 2019-04-08.
  7. ^ «Мини-демонстрация Maxine Inspector 5 из 10 (2008): Дизассемблированный байт-код». youtube.com. Получено 2019-04-08.
  8. ^ "Мини-демонстрация Maxine Inspector 4 из 10 (2008): Машинный код в разобранном виде". youtube.com. Получено 2019-04-08.
  9. ^ «Мини-демонстрация Maxine Inspector 10 из 10 (2008): точки останова». youtube.com. Получено 2019-04-08.
  10. ^ "Мини-демонстрация Maxine Inspector 7 из 10 (2008): темы". youtube.com. Получено 2019-04-08.
  11. ^ "Мини-демонстрация Maxine Inspector 9 из 10 (2008): Стеки". youtube.com. Получено 2019-04-08.
  12. ^ "Мини-демонстрация Maxine Inspector 8 из 10 (2008): Регистры". youtube.com. Получено 2019-04-08.
  13. ^ «Мини-демонстрация Maxine Inspector 2 из 10 (2008): Память». youtube.com. Получено 2019-04-08.
  14. ^ «Мини-демонстрация Maxine Inspector 3 из 10 (2008): объекты в куче». youtube.com. Получено 2019-04-08.
  15. ^ «Мини-демонстрация Maxine Inspector 1 из 10 (2008 г.): Конфигурация загрузочного образа». youtube.com. Получено 2019-04-08.
  16. ^ «Архивная копия». Архивировано из оригинал на 2016-03-04. Получено 2013-09-18.CS1 maint: заархивированная копия как заголовок (связь)
  17. ^ "Максин-ВМ: Максин ВМ: мета-круговая исследовательская виртуальная машина". GitHub. 21 июня 2017 г.. Получено 2017-06-25.

Библиография

  • Коцелидис, Христос; Кларксон, Джеймс; Родченко Андрей; Нисбет, Энди; Мауэр, Джон; Лухан, Микель (2017). «Гетерогенные управляемые системы времени выполнения». Материалы 13-й Международной конференции ACM SIGPLAN / SIGOPS по виртуальным средам выполнения. VEE 2017. С. 74–82. Дои:10.1145/3050748.3050764. ISBN  978-1-4503-4948-2.CS1 maint: ref = harv (связь)
  • Виммер, Кристиан; Хаупт, Майкл; Ван де Вантер, Майкл Л .; Джордан, Мик; Дайнес, Лоран; Саймон, Дуглас (январь 2013 г.). «Максин: доступная виртуальная машина для java и в ней». Транзакции ACM по архитектуре и оптимизации кода. 9 (4). Изобразительное искусство. 30. Дои:10.1145/2400682.2400689. ISSN  1544-3566.CS1 maint: ref = harv (связь)

внешняя ссылка