최대 가상 시스템
Maxine Virtual Machine원저작자 | 베른트 매티스케 더글러스 사이먼 (Sun Labs, Oracle) |
---|---|
개발자 | 맨체스터 대학교 맥신 팀 |
초기 릴리즈 | 전( |
안정된 릴리스 | 2.9.0[1] / 2019년 12월 , 전( |
저장소 | |
기입처 | 자바 |
운영 체제 | Solaris, Linux, macOS |
플랫폼 | x64, ARM32, AArch64, RISC-V |
유형 | Java 가상 머신 |
면허증. | GPL 버전 2.0 |
웹 사이트 | github |
Maxine 가상 시스템은 맨체스터 대학에서 개발된 [2]오픈 소스 가상 시스템입니다.이전에는 Sun Microsystems [3]Laboraties에서 개발되었으며, 이후 Oracle Labs로 이름이 변경되었습니다.Maxine의 소프트웨어 아키텍처는 산업용 및 학술용 가상 머신 연구자의 유연성, 구성성 및 생산성을 위해 모듈러 설계와 코드 재사용에 중점을 두고 있습니다.이는 메타 서클 스타일로 완전히 Java로 작성되는 Java 가상 머신의 수가 증가하고 있는 것 중 하나입니다.예를 들어 Squawk와 Jikes RVM이 있습니다.
아키텍처
Maxine VM은 Java 1.5 및 1.6에서 고급 언어 기능을 적극적으로 사용하고, Java 인터페이스를 통해 조정된 모듈러 서브시스템, 인터프리터 부재, VM 개발을 위한 긴밀하게 결합된 디버거 및 시각화 툴이 내부적으로 특징입니다.
호환성.
Maxine은 수정되지 않은 Java Development Kit(JDK)와 플러그 호환됩니다.Maxine은 NetBeans, Eclipse 및 IntelliJ IDEA를 포함한 표준 Java 통합 개발 환경(IDE)에서 개발, 구축 및 실행할 수 있습니다.
Java에서의 시스템 프로그래밍
이 프로젝트의 두 번째 목표는 "Java에서의 시스템 프로그래밍"을 위한 방법과 도구를 개발하는 것입니다.Java 주석을 사용하여 VM 소스 코드로 구성된 컴파일러 확장을 사용하면 Java에서 허용되지 않는 낮은 수준의 작업을 성능 저하 없이 사용할 수 있습니다.이러한 확장 기능은 Graal 컴파일러의 기반을 제공했습니다.
맥신 인스펙터
Maxine VM 전용 디버깅 지원은 Maxine Inspector를 통해 제공됩니다.Maxine Inspector는 객체, 클래스 및 메서드 브라우저의 결합 및 머신 및 바이트 코드 수준의 [4]디버거 역할을 하는 보조 도구입니다.인스펙터는 프로세스가 종료되어 VM 지원이 활성화되지 않으며 메모리 레이아웃 및 VM [5]설계에 대한 자세한 지식을 활용하는 전문 개발자 서비스를 위해 VM과 공유되는 코드를 활용합니다.주목할 만한 서비스는 다음과 같습니다.
- 다중 모드 중단점[9] 및 스테핑이 있는 코드(소스, 바이트 코드,[7] 분해된 기계[8] 코드)의[6] 다중 모드 뷰
- 스레드,[10] 스택,[11] 레지스터 [12]및 스레드 로컬 변수 검사
- 코드 위치, 객체 참조 등의 메모리 값을 동적으로 해석 및 링크하는 유연한 로우 레벨 메모리 시각화[13]
- 객체 필드 및 [14]메타데이터의 동적 시각화
- 부트 이미지 구성 [15]상세
- GC에서의 디버깅을 위한 특별한 알고리즘 고유의 지원.
역사
Maxine은 2005년 초 Sun Labs의 Bernd Mathiske에 의해 만들어졌습니다.그는 Sun Microsystems를 떠나 2008년 후반까지 성장 중인 팀에서 개발을 주도했으며, 이 프로젝트에 참여한 첫 번째 엔지니어가 된 Doug Simon에게 프로젝트를 넘겼습니다.Doug Simon은 Oracle Corporation이 Sun을 인수하는 내내 이 역할을 계속했습니다.
Maxine Inspector의 정적(히프 검사) 버전은 2006년에 Bernd Mathiske에 의해 작성되었습니다.Michael Van De Vanter는 2007년에 인스펙터 개발을 맡았습니다.VM이 실행 가능 상태가 되어 Oracle Corporation이 Sun을 인수하는 동안 계속 진화해 나가면서 동적인 지원을 추가했습니다.
Oracle은 Maxine 2.0이 [16]출시될 때까지 Maxine 개발을 계속했습니다.맨체스터 대학교는 릴리스 2.1을 기준으로 Maxine을 개발하고 있습니다.[17]
「 」를 참조해 주세요.
레퍼런스
메모들
- ^ "Maxine VM: A Metacircular VM for Java in Java". GitHub. 18 November 2021.
- ^ Wimmer et al. 2013, 페이지 1
- ^ "Oracle Labs – About". Labs.oracle.com. Retrieved 2017-06-25.
- ^ "The Maxine Project: The Maxine Inspector". community.oracle.com. Retrieved 2019-04-08.
- ^ "Introduction to the Maxine Inspector (Demo)". youtube.com. Retrieved 2019-04-08.
- ^ "Maxine Inspector Mini-Demo 6 of 10 (2008): Multi-code Method Views". youtube.com. Retrieved 2019-04-08.
- ^ "Maxine Inspector Mini-Demo 5 of 10 (2008): Disassembled Bytecode". youtube.com. Retrieved 2019-04-08.
- ^ "Maxine Inspector Mini-Demo 4 of 10 (2008): Disassembled Machine Code". youtube.com. Retrieved 2019-04-08.
- ^ "Maxine Inspector Mini-Demo 10 of 10 (2008): Breakpoints". youtube.com. Retrieved 2019-04-08.
- ^ "Maxine Inspector Mini-Demo 7 of 10 (2008): Threads". youtube.com. Retrieved 2019-04-08.
- ^ "Maxine Inspector Mini-Demo 9 of 10 (2008): Stacks". youtube.com. Retrieved 2019-04-08.
- ^ "Maxine Inspector Mini-Demo 8 of 10 (2008): Registers". youtube.com. Retrieved 2019-04-08.
- ^ "Maxine Inspector Mini-Demo 2 of 10 (2008): Memory". youtube.com. Retrieved 2019-04-08.
- ^ "Maxine Inspector Mini-Demo 3 of 10 (2008): Heap Objects". youtube.com. Retrieved 2019-04-08.
- ^ "Maxine Inspector Mini-Demo 1 of 10 (2008): Boot Image Configuration". youtube.com. Retrieved 2019-04-08.
- ^ "Archived copy". Archived from the original on 2016-03-04. Retrieved 2013-09-18.
{{cite web}}
: CS1 maint: 제목으로 아카이브된 복사(링크) - ^ "Maxine-VM: Maxine VM: A meta-circular research VM". GitHub. 21 June 2017. Retrieved 2017-06-25.
참고 문헌
- Kotselidis, Christos; Clarkson, James; Rodchenko, Andrey; Nisbet, Andy; Mawer, John; Luján, Mikel (2017). "Heterogeneous Managed Runtime Systems". Proceedings of the 13th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments. VEE 2017. pp. 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 (January 2013). "Maxine: An approachable virtual machine for, and in, java". ACM Transactions on Architecture and Code Optimization. 9 (4). art. 30. doi:10.1145/2400682.2400689. ISSN 1544-3566.