YJVM-一种运行在嵌入式Linux内核中的Java虚拟机的设计与实现
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
嵌入式系统通常对于资源和执行效率有严格的约束,导致了应用于嵌入式系统中的操作系统通常都提供非常有限的编程接口和系统支持。因此对于传统的嵌入式系统开发人员来说,开发难度相对较大,开发效率也相对较低。Java的出现缓解了这一情况。由于Java的跨平台特性,大批应用程序开发人员可以脱离硬件平台,在桌面的虚拟环境中开发嵌入式应用程序。
     与传统的Java虚拟机不同,YJVM(Yet another JVM)是运行在嵌入式Linux内核中的Java虚拟机。实现了解释执行Java字节码、线程管理、执行环境管理、集成Classpath核心类库等基本功能。它可以使Linux在内核层次上支持Java的字节码,从而减少了软件层次、为提高效率留下空间。另外,YJVM中还构造了Java的进程管理,为在嵌入式环境中运行Java程序提供了更安全的环境。不同于纯粹用Java来实现的操作系统的尝试,这个方案更充分利用了现有的操作系统的实践成果,在不牺牲Java跨平台特性的前提下,更有实用价值。
     本文从对嵌入式操作系统的讨论入手,结合Java虚拟机的原理和研究状况阐述了YJVM的设计和实现要点,体现了YJVM相比现有的嵌入式Java解决方案和Java操作系统的优势。本文的主要研究内容及成果包括:
     作为一种嵌入式操作系统,嵌入式Linux的基本结构和与传统嵌入式操作系统相比的特点和优势。
     嵌入式Java的传统解决方案和Java操作系统的基本结构。以及他们对于YJVM设计的影响和异同。
     Java虚拟机的工作原理和结构。在YJVM中Java虚拟机的结构和实现方案之间的具体映射。
     YJVM中程序装载、解释器、进程管理、垃圾收集和对Classpath核心类库集成的具体实现要点.
     测试方案的制定的依据和结果;测试例程的构造和选择;测试结果的分析和在此基础上提出的改进和发展方向。
Embedded system normally has critical restrictions on resource and efficiency. It leads to the fact that embedded operating systems often provide limited programming interface and system support. As for the developers of embedded systems, it is more difficult and less efficient to implement the software. Java has thrown a light on this issue. Application developers can avoid tackling the hardware problems and program in a desktop development environment because of the cross platform personality of Java.
     Unlike traditional Java virtual machine implementations, YJVM is a kernel-mode Java virtual machine, enabling kernel-level Java support. It maps Java threads to Linux native threads and presents processes to refine the protection mechanism. Unlike Java operating system built with Java, YJVM incorporates the assets of traditional operating systems and provides better backward compatibility and usability.
     This thesis begins with the discussion of embedded operating systems. It represents the design policy and keys of implementation of YJVM, along with the theory and current research of Java virtual machine. What’s more, the advantages over traditional embedded Java solutions and Java operating systems are also shown. The main content and research result of this thesis include:
     As a kind of embedded operating system, embedded Linux has its unique features and advantages in technology and developing model.
     Traditional embedded Java solutions and Java operating system is discussed, as well as the influence they bring to YJVM and the differences from YJVM.
     The theory and the structure of Java virtual machine and the mapping from these aspects to the design of YJVM.
     Inside the YJVM, the implementation of class loading, interpreter, process management and essential classes in Classpath are described in detail.
     Test plan, test routines and test result of YJVM are discussed and the
引文
[1] A.S. Tanenbaum, and A.S. Woodhull, Operating Systems: Design and Implementation, Prentice Hall, 1997.
    [2] J. Gough, Virtual Machines, Managed Code and Component Technology, Australian Software Engineering Conference, 2005.
    [3] A. Varma, and S.S. Bhattacharyya, Java-through-C Compilation: An Enabling Technology for Java in Embedded Systems, the Design, Automation and Test in Europe Conference and Exhibition Designer's Forum, 2004.
    [4] M. Debbabi, A. Mourad, and N. Tawbi, Armed E-Bunny: A Selective Dynamic Compiler for Embedded Java Virtual Machine Targeting ARM Processors, ACM Symposium on Applied Computing, 2005.
    [5] C.W. Krueger, Software Reuse. ACM Computing Surveys 24 (1992).
    [6] J.E. Smith, and R. Nair, Virtual Machines - Versatile Platforms for Systems and Processes, Morgan Kaufmann Publishers, 2006.
    [7] Y. shi, D. Gregg, A. Beatty, and M.A. Ertl, Virtual Machine Showdown: Stack Versus Registers. ACM VEE (2005).
    [8] B. Weinberg, and C. Lundholm, Embedded Linux - Ready for Real-time, 2004.
    [9] G. Lawton, Moving Java into Mobile Phones. IEEE Computer 35 (2002).
    [10] S. Microsystems, CLDC HotSpot Implementation Virtual Machine, 2005.
    [11] S. Microsystems, and Motorola, Mobile Information Device Profile Specification, 2002.
    [12] C. Porthouse, High-performance Java on Embedded Devices, ARM Ltd, 2002.
    [13] I. SavaJe Technologies, SavaJe OS Whitepaper, 2002.
    [14] C. Hawblitzel, C.-C. Chang, G. Czajkowski, D. Hu, and T.v. Eicken, Implementing Multiple Protection Domains in Java, the USENIX Annual Technical Conference, 1998.
    [15] H. Ishikawa, and T. Nakajima, EarlGray: A Component-Based Java Virtual Machine for Embedded Systems, Eighth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, 2005.
    [16] S. Microsystems, and IBM, JavaOS for Business, 1998.
    [17] M. Golm, M. Felser, C. Wawersich, and J. Kleinoeder, The JX Operating System, the USENIX Annual Techinical Conference, 2002.
    [18] B.R. Montague, JN: OS for An Embedded Java Network Computer. IEEE Micro (1997).
    [19] S.M. Dorward, R. Pike, D.L. Presotto, and D.M. Ritchie, The Inferno Operating System. Bell Labs Technical Journal (1997).
    [20] G.C. Hunt, J.R. Larus, D. Tarditi, and T. Wobber, Broad New OSResearch: Chanllenges and Opportunities, Hot Topics in Operating System, 2005.
    [21] S. Hand, A. Warfield, K. Fraser, E. Kotsovinos, and D. Magenheimer, Are Virtual Machine Monitors Microkernels Done Right?, Hot Topics in Operating Systems, 2005.
    [22] G. Back, P. Tullmann, L. Stoller, W.C. Hsieh, and J. Lepreau, Techniques for the Design of Java Operating Systems, the USENIX Annual Technical Conference, 2000.
    [23] F.D. Tran, J.-P. Fassino, O. Lobry, J. Pulou, and N. Rivierre, Toward a Component-Based Embedded Java-Oriented Operating System. LNCS (2004) 256-267.
    [24] T. Lindholm, and F. Yellin, Java Virtual Machine Specification, Addison-Wesley Longman Publishing Co., Inc., 1999.
    [25] H. McGhan, and M. O'Connor, PicoJava: A Direct Execution Engine for Java Bytecode. IEEE Computer (1998).
    [26] Y.-M. Lee, B.-C. Tak, H.-S. Maeng, and S.-D. Kim, Real-Time Java Virtual Machine for Information Appliances. IEEE Transactions on Consumer Electronics 46 (2000).
    [27] B. Venners, Inside the Java Virtual Machine, The McGraw-Hill Companies, Inc., 1997.
    [28] D.P. Bovet, and M. Cesati, Understanding the Linux Kernel, O'Reilly, 2005.
    [29] R. Love, Linux Kernel Development, Sams Publishing, 2005.
    [30] K. Shiv, R. Iyer, C. Newburn, J. Dahlstedt, M. Lagergren, and O. Lindholm, Impact of JIT/JVM Optimizations on Java Application Performance, the Seventh Workshop on Interaction between Compilers and Computer Architectures, 2003.
    [31] N. Shaylor, D.N. Simon, and W.R. Bush, A Java Virtual Machine Architecture for Very Small Devices. ACM LCTES (2003).
    [32] G. Back, and W.C. Hsieh, The KaffeOS Java Runtime System. ACM Transactions on Programming Languages and Systems 27 (2005).
    [33] U. Steinberg, J. Wolter, and H. Hartig, Fast Component Interaction for Real-Time Systems, the 17th Euromicro Conference on Real-Time Systems, 2005.
    [34] J. Corbet, G. Kroah-Hartman, and A. Rubini, Linux Device Drivers, O'Reilly, 2005.
    [35] G. Agosta, S.C. Reghizzi, and G. Svelto, Jaletine: A Virtual Machine for Small Embedded Systems. ACM JTRES (2006).

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700