skip to main content
research-article

Efficient off-board deployment and customization of virtual machine-based embedded systems

Published:05 March 2010Publication History
Skip Abstract Section

Abstract

This article presents a new way to deploy and customize embedded virtual machine based operating systems for very restrained devices. Due to the specificity of restrained embedded devices (large usage of read-only memory, very few writable memory available, …), these systems are typically deployed off-board, in a process called romization. However, current romization solutions do not allow a complete deployment to take place outside of the execution device: they are capable of converting system components and applications into their executable form, but are unable to perform any operation that would require the system to be running. This results in a good part of the deployment being performed by the target device, at the cost of longer startup times, bloat with code and data that are only executed once at startup, and suboptimal memory placement of data structures. In this article, we propose a new romization scheme that allows the system to be started within a virtual execution environment, and thus to be fully deployed off-board before being transferred to its real execution support. We then take advantage of all the information provided by the deployed state in order to analyze and customize it, resulting in a very low-footprint, custom-tailored embedded system. The Java platform is used as a support to implement our romization architecture and perform our experiments. For the evaluated set of embedded applications, we were able to obtain embedded systems which memory footprint was lower than their J2ME counterpart, while being based on a full-fledged J2SE environment.

References

  1. Aho, A., Sethi, R., and Ullman, J. 1986. Compilers: Principles, Techniques, and Tools. Addison-Wesley Longman Publishing Co., Inc. Boston, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Ball, T. and Rajamani, S. K. 2002. The SLAM project: Debugging system software via static analysis. In Proceedings of the 29th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'02). ACM Press, New York, NY, 1--3. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bellard, F. 2005. Qemu, a fast and portable dynamic translator. In Proceedings of the USENIX Annual Technical Conference (ATEC'05). USENIX Association, Berkeley, CA, 41--41. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Bizzotto, G. 2002. JITS: Java in the small. M.S. thesis, Universit de Lille 1.Google ScholarGoogle Scholar
  5. Bothner, P. 2003. Compiling Java with GCJ. Linux J. 105, 4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Cabri, G., Leonardi, L., and Quitadamo, R. 2006. Enabling Java mobile computing on the IBM Jikes research virtual machine. In Proceedings of the 4th International Symposium on Principles and Practice of Programming in Java (PPPJ'06). ACM, New York, NY, 62--71. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Carzaniga, A., Fuggetta, A., Hall, R. S., van der Hoek, A., Heimbigner, D., and Wolf, A. L. 1998. A characterization framework for software deployment technologies. Tech. Rep. CU-CS-857-98, Department of Computer Science, University of Colorado.Google ScholarGoogle Scholar
  8. Chanet, D., Sutter, B. D., Bus, B. D., Put, L. V., and Bosschere, K. D. 2007. Automated reduction of the memory footprint of the linux kernel. ACM Trans. Embed. Comput. Sys. 6, 4, 23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Chen, Z. 2000. Java Card Technology for Smart Cards: Architecture and Programmer's Guide. Addison-Wesley Longman Publishing Co., Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Cobbs, A. 2005. JC Virtual Machine. http://jcvm.sourceforge.net.Google ScholarGoogle Scholar
  11. Courbot, A., Grimaud, G., Vandewalle, J.-J., and Simplot, D. 2005. Application-driven customization of an embedded Java virtual machine. In Proceedings of the 2nd International Symposium on Ubiquitous Intelligence and Smart Worlds (UISW'05).Google ScholarGoogle Scholar
  12. Cousot, P. 1996. Abstract interpretation. ACM Comput. Surv. 28, 2, 324--328. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Cousot, P. and Cousot, R. 1977. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proceedings of the ACM Symposium on Principles of Programming Languages (POPL). 238--252. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Deville, D., Galland, A., Grimaud, G., and Jean, S. 2003. Smart card operating systems: Past, present and future. In Proceedings of the 5th USENIX/NordU Conference.Google ScholarGoogle Scholar
  15. Deville, D. and Grimaud, G. 2002. Building an “impossible” verifier on a Java card. In Proceedings of the 2nd Workshop on Industrial Experiences with Systems Software (WIESS'02). Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Drossopoulou, S., Eisenbach, S., and Khurshid, S. 1999. Is the Java type system sound? Theor. Pract. Object Syst. 5, 1, 3--24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Goldberg, A. and Robson, D. 1983. Smalltalk-80: the Language and Its Implementation. Addison-Wesley Longman Publishing Co., Inc. Boston, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Gosling, J. 1993. Java intermediate bytecodes: ACM SIGPLAN workshop on intermediate representations (ir'95). SIGPLAN Not. 30, 3, 111--118. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Grcevski, N., Kielstra, A., Stoodley, K., Stoodley, M., and Sundaresan, V. 2004. Java just-in-time compiler and virtual machine improvements for server and middleware applications. In Proceedings of the 3rd Conference on Virtual Machine Research And Technology Symposium (VM'04). USENIX Association, Berkeley, CA, 12--27. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Hindley, J. R. 1997. Basic Simple Type Theory. Cambridge University Press, Cambridge, UK. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. IBM. 2003. WebSphere Studio Device Developer. http://www.ibm.com/developerworks/.Google ScholarGoogle Scholar
  22. J-Consortium. 2002. JEFF Draft Specification. J-Consortium.Google ScholarGoogle Scholar
  23. JITS Development Team. 2006. JITS: Java In The Small. http://jits.gforge.inria.fr.Google ScholarGoogle Scholar
  24. JITS Development Team. 2008. JITS Developer's Manual.Google ScholarGoogle Scholar
  25. Jones, R. and Lins, R. 1996. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. John Wiley & Sons, Inc. New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Kawachiya, K., Ogata, K., Silva, D., Onodera, T., Komatsu, H., and Nakatani, T. 2007. Cloneable jvm: A new approach to start isolated java applications faster. In Proceedings of the 3rd International Conference on Virtual Execution Environments (VEE'07). ACM, New York, NY. 1--11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Koshy, J. and Pandey, R. 2005. Vmstar: Synthesizing scalable runtime environments for sensor networks. In Proceedings of the 3rd International Conference on Embedded Networked Sensor Systems (SenSys'05). ACM Press, New York, NY. 243--254. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Kuck, D. J., Kuhn, R. H., Padua, D. A., Leasure, B., and Wolfe, M. 1981. Dependence graphs and compiler optimizations. In Proceedings of the 8th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'81). ACM, New York, NY. 207--218. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Leroy, X. 2001a. Java bytecode verification: An overview. In Proceedings of the 13th International Conference on Computer Aided Verification (CAV'01). Springer-Verlag. 265--285. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Leroy, X. 2001b. On-card bytecode verification for Java card. In Proceedings of the International Conference on Research in Smart Cards (E-SMART'01). Springer-Verlag. 150--164. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Lindholm, T. and Yellin, F. 1999. Java Virtual Machine Specification. Addison-Wesley Longman Publishing Co., Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Marquet, K. and Grimaud, G. 2007. A dsl approach for object memory management of small devices. In Proceedings of the 5th International Symposium on Principles and Practice of Programming in Java (PPPJ'07). ACM, New York, NY. 155--164. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Muchnick, S. 1997. Advanced Compiler Design and Implementation. Morgan Kaufmann. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Muller, G., Moura, B., Bellard, F., and Consel, C. 1997. Harissa: A flexible and efficient java environment mixing bytecode and compiled code. In Proceedings of the 3rd USENIX Conference on Object-Oriented Technologies (COOTS). USENIX. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. OSGi Alliance. 2003. OSGi Service Platform, Release 3. IOS Press, Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Proebsting, T. A., Townsend, G., Bridges, P., Hartman, J. H., Newsham, T., and Watterson, S. A. 1997. Toba: Java for applications: A way ahead of time (wat) compiler. In Proceedings of the 3rd USENIX Conference on Object-Oriented Technologies (COOTS). Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Puschner, P. and Burns, A. 2000. Guest editorial: A review of worst-case execution-timeanalysis. Real-Time Syst. 18, 2--3, 115--128. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Rayside, D. and Kontogiannis, K. 2002. Extracting Java library subsets for deployment on embedded systems. Sci. Comput. Program. 45, 2-3, 245--270. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Rayside, D., Mamas, E., and Hons, E. 1999. Compact Java binaries for embedded systems. In Proceedings of the Conference of the Centre for Advanced Studies on Collaborative Research. IBM Press, 9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Rellermeyer, J. S. and Alonso, G. 2007. Concierge: A service platform for resource-constrained devices. SIGOPS Oper. Syst. Rev. 41, 3, 245--258. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Shaylor, N., Simon, D. N., and Bush, W. R. 2003. A Java virtual machine architecture for very small devices. In Proceedings of the ACM SIGPLAN Conference on Language, Compiler, and Tool for Embedded Systems. ACM Press, 34--41. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Smart Card Trends. 2007. Eurosmart estimates 4 billion smartcards to be shipped this year. http://www.smartcardstrends.com.Google ScholarGoogle Scholar
  43. Sun Microsystems. 2000. J2ME Building Blocks for Mobile Devices. Sun Microsystems.Google ScholarGoogle Scholar
  44. Sun Microsystems. 2003. Java Card Virtual Machine Specification. Sun Microsystems.Google ScholarGoogle Scholar
  45. Sun Microsystems. 2004a. Java applets. http://java.sun.com/applets/.Google ScholarGoogle Scholar
  46. Sun Microsystems. 2004b. Java servlet technology: Implementations and specifications. http://java.sun.com/products/servlet/download.html.Google ScholarGoogle Scholar
  47. Sutter, B. D., Put, L. V., Chanet, D., Bus, B. D., and Bosschere, K. D. 2007. Link-time compaction and optimization of arm executables. Trans. Embedd. Comput. Sys. 6, 1, 5. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Tip, F., Laffra, C., Sweeney, P. F., and Streeter, D. 1999. Practical experience with an application extractor for java. In Proceedings of the 14th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'99). ACM, New York, NY. 292--305. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Tip, F. and Palsberg, J. 2000. Scalable propagation-based call graph construction algorithms. In Proceedings of the 15th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'00). ACM, New York, NY, 281--293. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Tip, F., Sweeney, P. F., and Laffra, C. 2003. Extracting library-based Java applications. Comm. ACM 46, 8, 35--40. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Tip, F., Sweeney, P. F., Laffra, C., Eisma, A., and Streeter, D. 2002. Practical extraction techniques for Java. ACM Trans. Program. Lang. Syst. 24, 6, 625--666. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Titzer, B. L., Auerbach, J., Bacon, D. F., and Palsberg, J. 2007. The exovm system for automatic vm and application reduction. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'07). ACM, New York, NY, 352--362. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Tiwari, V., Malik, S., and Wolfe, A. 1994. Power analysis of embedded software: A first step towards software power minimization. IEEE Trans. VLSI Syst. 2, 4, 437--445. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Tools Interface Standards Committee. 1995. Executable and Linkable Format (ELF), Version 1.2. Tools Interface Standards Committee.Google ScholarGoogle Scholar
  55. VMware, Inc. 2007. VMware. http://www.vmware.org.Google ScholarGoogle Scholar

Index Terms

  1. Efficient off-board deployment and customization of virtual machine-based embedded systems

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM Transactions on Embedded Computing Systems
          ACM Transactions on Embedded Computing Systems  Volume 9, Issue 3
          February 2010
          442 pages
          ISSN:1539-9087
          EISSN:1558-3465
          DOI:10.1145/1698772
          Issue’s Table of Contents

          Copyright © 2010 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 5 March 2010
          • Accepted: 1 July 2009
          • Revised: 1 February 2009
          • Received: 1 August 2008
          Published in tecs Volume 9, Issue 3

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Research
          • Refereed

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader