Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Максин виртуальная машина с открытым исходным кодом виртуальной машины , которая разработана в Университете Манчестера. [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

Ссылки [ править ]

Заметки [ править ]

  1. ^ https://github.com/beehive-lab/Maxine-VM/blob/master/CHANGELOG.md
  2. ^ Wimmer et al. 2013 , стр. 1.
  3. ^ «Oracle Labs - О нас» . Labs.oracle.com . Проверено 25 июня 2017 .
  4. ^ «Проект Максин: Инспектор Максин» . community.oracle.com . Проверено 8 апреля 2019 .
  5. ^ «Введение в Maxine Inspector (Демо)» . youtube.com . Проверено 8 апреля 2019 .
  6. ^ «Maxine Inspector Mini-Demo 6 из 10 (2008): Мультикодовые виды методов» . youtube.com . Проверено 8 апреля 2019 .
  7. ^ «Maxine Inspector Mini-Demo 5 из 10 (2008): Дизассемблированный байт-код» . youtube.com . Проверено 8 апреля 2019 .
  8. ^ «Мини-демонстрация Maxine Inspector 4 из 10 (2008): Disassembled Machine Code» . youtube.com . Проверено 8 апреля 2019 .
  9. ^ «Мини-демонстрация Maxine Inspector 10 из 10 (2008): точки останова» . youtube.com . Проверено 8 апреля 2019 .
  10. ^ «Maxine Inspector Mini-Demo 7 из 10 (2008): Threads» . youtube.com . Проверено 8 апреля 2019 .
  11. ^ «Максин Инспектор Мини-Демонстрация 9 из 10 (2008): Стеки» . youtube.com . Проверено 8 апреля 2019 .
  12. ^ "Maxine Inspector Mini-Demo 8 из 10 (2008): Регистры" . youtube.com . Проверено 8 апреля 2019 .
  13. ^ «Максин Инспектор Мини-Демонстрация 2 из 10 (2008): Память» . youtube.com . Проверено 8 апреля 2019 .
  14. ^ "Maxine Inspector Mini-Demo 3 of 10 (2008): Heap Objects" . youtube.com . Проверено 8 апреля 2019 .
  15. ^ «Maxine Inspector Mini-Demo 1 из 10 (2008): Конфигурация загрузочного образа» . youtube.com . Проверено 8 апреля 2019 .
  16. ^ "Архивная копия" . Архивировано из оригинала на 2016-03-04 . Проверено 18 сентября 2013 .CS1 maint: archived copy as title (link)
  17. ^ "Максин-ВМ: Максин ВМ: мета-круговая исследовательская виртуальная машина" . 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