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.
- Aho, A., Sethi, R., and Ullman, J. 1986. Compilers: Principles, Techniques, and Tools. Addison-Wesley Longman Publishing Co., Inc. Boston, MA. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Bizzotto, G. 2002. JITS: Java in the small. M.S. thesis, Universit de Lille 1.Google Scholar
- Bothner, P. 2003. Compiling Java with GCJ. Linux J. 105, 4. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- Chen, Z. 2000. Java Card Technology for Smart Cards: Architecture and Programmer's Guide. Addison-Wesley Longman Publishing Co., Inc. Google ScholarDigital Library
- Cobbs, A. 2005. JC Virtual Machine. http://jcvm.sourceforge.net.Google Scholar
- 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 Scholar
- Cousot, P. 1996. Abstract interpretation. ACM Comput. Surv. 28, 2, 324--328. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- Drossopoulou, S., Eisenbach, S., and Khurshid, S. 1999. Is the Java type system sound? Theor. Pract. Object Syst. 5, 1, 3--24. Google ScholarDigital Library
- Goldberg, A. and Robson, D. 1983. Smalltalk-80: the Language and Its Implementation. Addison-Wesley Longman Publishing Co., Inc. Boston, MA. Google ScholarDigital Library
- Gosling, J. 1993. Java intermediate bytecodes: ACM SIGPLAN workshop on intermediate representations (ir'95). SIGPLAN Not. 30, 3, 111--118. Google ScholarDigital Library
- 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 ScholarDigital Library
- Hindley, J. R. 1997. Basic Simple Type Theory. Cambridge University Press, Cambridge, UK. Google ScholarDigital Library
- IBM. 2003. WebSphere Studio Device Developer. http://www.ibm.com/developerworks/.Google Scholar
- J-Consortium. 2002. JEFF Draft Specification. J-Consortium.Google Scholar
- JITS Development Team. 2006. JITS: Java In The Small. http://jits.gforge.inria.fr.Google Scholar
- JITS Development Team. 2008. JITS Developer's Manual.Google Scholar
- Jones, R. and Lins, R. 1996. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. John Wiley & Sons, Inc. New York, NY. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Lindholm, T. and Yellin, F. 1999. Java Virtual Machine Specification. Addison-Wesley Longman Publishing Co., Inc. Google ScholarDigital Library
- 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 ScholarDigital Library
- Muchnick, S. 1997. Advanced Compiler Design and Implementation. Morgan Kaufmann. Google ScholarDigital Library
- 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 ScholarDigital Library
- OSGi Alliance. 2003. OSGi Service Platform, Release 3. IOS Press, Inc. Google ScholarDigital Library
- 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 ScholarDigital Library
- Puschner, P. and Burns, A. 2000. Guest editorial: A review of worst-case execution-timeanalysis. Real-Time Syst. 18, 2--3, 115--128. Google ScholarDigital Library
- Rayside, D. and Kontogiannis, K. 2002. Extracting Java library subsets for deployment on embedded systems. Sci. Comput. Program. 45, 2-3, 245--270. Google ScholarDigital Library
- 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 ScholarDigital Library
- Rellermeyer, J. S. and Alonso, G. 2007. Concierge: A service platform for resource-constrained devices. SIGOPS Oper. Syst. Rev. 41, 3, 245--258. Google ScholarDigital Library
- 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 ScholarDigital Library
- Smart Card Trends. 2007. Eurosmart estimates 4 billion smartcards to be shipped this year. http://www.smartcardstrends.com.Google Scholar
- Sun Microsystems. 2000. J2ME Building Blocks for Mobile Devices. Sun Microsystems.Google Scholar
- Sun Microsystems. 2003. Java Card Virtual Machine Specification. Sun Microsystems.Google Scholar
- Sun Microsystems. 2004a. Java applets. http://java.sun.com/applets/.Google Scholar
- Sun Microsystems. 2004b. Java servlet technology: Implementations and specifications. http://java.sun.com/products/servlet/download.html.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Tip, F., Sweeney, P. F., and Laffra, C. 2003. Extracting library-based Java applications. Comm. ACM 46, 8, 35--40. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Tools Interface Standards Committee. 1995. Executable and Linkable Format (ELF), Version 1.2. Tools Interface Standards Committee.Google Scholar
- VMware, Inc. 2007. VMware. http://www.vmware.org.Google Scholar
Index Terms
- Efficient off-board deployment and customization of virtual machine-based embedded systems
Recommendations
Extracting Java library subsets for deployment on embedded systems
Software maintenance and reengineering (CSMR 99)Embedded systems provide means for enhancing the functionality delivered by small-sized electronic devices such as hand-held computers and cellular phones. Java is a programming language which incorporates a number of features that are useful for ...
JN: OS for an Embedded Java Network Computer
This paper describes the implementation of an embedded operating system explicitly designed to support the Java Virtual Machine on the National Semiconductor NS486 embedded PC. This system, the Java Nanokernel (JN), supports an Internet web server ...
Scaling J2EE™ application servers with the Multi-tasking Virtual Machine
Research ArticlesThe Java™ 2 Platform, Enterprise Edition (J2EE™), is established as the standard platform for hosting enterprise applications written in the Java programming language. Similar to an operating system, a J2EE server can host multiple applications, but ...
Comments