{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,1]],"date-time":"2025-10-01T17:48:06Z","timestamp":1759340886527,"version":"3.41.0"},"reference-count":39,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2011,11,1]],"date-time":"2011-11-01T00:00:00Z","timestamp":1320105600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100004963","name":"Seventh Framework Programme","doi-asserted-by":"publisher","award":["216682 (JEOPARD)"],"award-info":[{"award-number":["216682 (JEOPARD)"]}],"id":[{"id":"10.13039\/501100004963","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Embed. Comput. Syst."],"published-print":{"date-parts":[[2011,11]]},"abstract":"<jats:p>Embedded systems use specialized hardware devices to interact with their environment, and since they have to be dependable, it is attractive to use a modern, type-safe programming language like Java to develop programs for them. Standard Java, as a platform-independent language, delegates access to devices, direct memory access, and interrupt handling to some underlying operating system or kernel, but in the embedded systems domain resources are scarce and a Java Virtual Machine (JVM) without an underlying middleware is an attractive architecture. The contribution of this article is a proposal for Java packages with hardware objects and interrupt handlers that interface to such a JVM. We provide implementations of the proposal directly in hardware, as extensions of standard interpreters, and finally with an operating system middleware. The latter solution is mainly seen as a migration path allowing Java programs to coexist with legacy system components. An important aspect of the proposal is that it is compatible with the Real-Time Specification for Java (RTSJ).<\/jats:p>","DOI":"10.1145\/2043662.2043666","type":"journal-article","created":{"date-parts":[[2011,11,30]],"date-time":"2011-11-30T13:58:46Z","timestamp":1322661526000},"page":"1-40","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":29,"title":["A Hardware Abstraction Layer in Java"],"prefix":"10.1145","volume":"10","author":[{"given":"Martin","family":"Schoeberl","sequence":"first","affiliation":[{"name":"Vienna University of Technology"}]},{"given":"Stephan","family":"Korsholm","sequence":"additional","affiliation":[{"name":"Aalborg University"}]},{"given":"Tomas","family":"Kalibera","sequence":"additional","affiliation":[{"name":"Purdue University"}]},{"given":"Anders P.","family":"Ravn","sequence":"additional","affiliation":[{"name":"Aalborg University"}]}],"member":"320","published-online":{"date-parts":[[2011,11]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"aJile. 2000. aj-100 real-time low power Java processor. Preliminary data sheet. aJile . 2000. aj-100 real-time low power Java processor. Preliminary data sheet."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1324969.1324974"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/604131.604155"},{"key":"e_1_2_1_4_1","doi-asserted-by":"crossref","unstructured":"Bollella G. Gosling J. Brosgol B. Dibble P. Furr S. and Turnbull M. 2000. The Real-Time Specification for Java. Java Series. Addison-Wesley. Bollella G. Gosling J. Brosgol B. Dibble P. Furr S. and Turnbull M. 2000. The Real-Time Specification for Java . Java Series. Addison-Wesley.","DOI":"10.1109\/2.846318"},{"key":"e_1_2_1_5_1","unstructured":"Burns A. and Wellings A. J. 2001. Real-Time Systems and Programming Languages: ADA 95 Real-Time Java and Real-Time POSIX 3rd Ed. Addison-Wesley Longman Publishing. Burns A. and Wellings A. J. 2001. Real-Time Systems and Programming Languages: ADA 95 Real-Time Java and Real-Time POSIX 3rd Ed. Addison-Wesley Longman Publishing."},{"key":"e_1_2_1_6_1","volume-title":"accessed","author":"Caska J.","year":"2009","unstructured":"Caska , J. accessed 2009 . micro {&mu;} virtual-machine. http:\/\/muvium.com\/. Caska, J. accessed 2009. micro {&mu;} virtual-machine. http:\/\/muvium.com\/."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/502059.502042"},{"volume-title":"Proceedings of the USENIX Annual Technical Conference. 45--58","author":"Felser M.","key":"e_1_2_1_8_1","unstructured":"Felser , M. , Golm , M. , Wawersich , C. , and Klein\u00f6der , J . 2002. The JX operating system . In Proceedings of the USENIX Annual Technical Conference. 45--58 . Felser, M., Golm, M., Wawersich, C., and Klein\u00f6der, J. 2002. The JX operating system. In Proceedings of the USENIX Annual Technical Conference. 45--58."},{"key":"e_1_2_1_9_1","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"Gamma E.","year":"1994","unstructured":"Gamma , E. , Helm , R. , Johnson , R. , and Vlissides , J. M . 1994 . Design Patterns: Elements of Reusable Object-Oriented Software . Addison Wesley Professional . Gamma, E., Helm, R., Johnson, R., and Vlissides, J. M. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley Professional."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/781131.781133"},{"key":"e_1_2_1_11_1","unstructured":"Gerum P. 2004. Xenomai - Implementing a RTOS emulation framework on GNU\/Linux. http:\/\/www.xenomai.org\/documentation\/branches\/v2.4.x\/pdf\/xenomai.pdf. Gerum P. 2004. Xenomai - Implementing a RTOS emulation framework on GNU\/Linux. http:\/\/www.xenomai.org\/documentation\/branches\/v2.4.x\/pdf\/xenomai.pdf."},{"key":"e_1_2_1_12_1","unstructured":"Group T. C. 2008. Trusted computing. https:\/\/www.trustedcomputinggroup.org\/. Group T. C. 2008. Trusted computing. https:\/\/www.trustedcomputinggroup.org\/."},{"volume-title":"The Architecture of Concurrent Programs","author":"Hansen P. B.","key":"e_1_2_1_13_1","unstructured":"Hansen , P. B. 1977. The Architecture of Concurrent Programs . Prentice-Hall Series in Automatic Computing. Prentice-Hall . Hansen, P. B. 1977. The Architecture of Concurrent Programs. Prentice-Hall Series in Automatic Computing. Prentice-Hall."},{"key":"e_1_2_1_14_1","volume-title":"Computer Architecture: A Quantitative Approach","author":"Hennessy J.","year":"2002","unstructured":"Hennessy , J. and Patterson , D . 2002 . Computer Architecture: A Quantitative Approach 3 rd Ed. Morgan Kaufmann Publishers , Palo Alto, CA . Hennessy, J. and Patterson, D. 2002. Computer Architecture: A Quantitative Approach 3rd Ed. Morgan Kaufmann Publishers, Palo Alto, CA.","edition":"3"},{"volume-title":"Proceedings of the 2nd International Workshop on the Certification of Safety-Critical Software Controlled Systems (SafeCert\u201909)","author":"Henties T.","key":"e_1_2_1_15_1","unstructured":"Henties , T. , Hunt , J. J. , Locke , D. , Nilsen , K. , Schoeberl , M. , and Vitek , J . 2009. Java for safety-critical applications . In Proceedings of the 2nd International Workshop on the Certification of Safety-Critical Software Controlled Systems (SafeCert\u201909) . Henties, T., Hunt, J. J., Locke, D., Nilsen, K., Schoeberl, M., and Vitek, J. 2009. Java for safety-critical applications. In Proceedings of the 2nd International Workshop on the Certification of Safety-Critical Software Controlled Systems (SafeCert\u201909)."},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/378993.379006"},{"key":"e_1_2_1_17_1","unstructured":"Hunt G. Larus J. R. Abadi M. Aiken M. Barham P. Fahndrich M. Hawblitzel C. Hodson O. Levi S. Murphy N. Steensgaard B. Tarditi D. Wobber T. and Zill B. D. 2005. An overview of the singularity project. Tech. rep. MSR-TR-2005-135 Microsoft Research (MSR). Hunt G. Larus J. R. Abadi M. Aiken M. Barham P. Fahndrich M. Hawblitzel C. Hodson O. Levi S. Murphy N. Steensgaard B. Tarditi D. Wobber T. and Zill B. D. 2005. An overview of the singularity project. Tech. rep. MSR-TR-2005-135 Microsoft Research (MSR)."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISORC.2008.68"},{"volume-title":"Proceedings of the Workshop on Java for Science and Engineering Computation (PPoPP\u201997)","author":"Krall A.","key":"e_1_2_1_19_1","unstructured":"Krall , A. and Grafl , R . 1997. CACAO -- A 64 bit JavaVM just-in-time compiler . In Proceedings of the Workshop on Java for Science and Engineering Computation (PPoPP\u201997) , G. C. Fox and W. Li Eds. ACM. Krall, A. and Grafl, R. 1997. CACAO -- A 64 bit JavaVM just-in-time compiler. In Proceedings of the Workshop on Java for Science and Engineering Computation (PPoPP\u201997), G. C. Fox and W. Li Eds. ACM."},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0141-9331(02)00082-0"},{"key":"e_1_2_1_21_1","unstructured":"Lindholm T. and Yellin F. 1999. The Java Virtual Machine Specification 2nd Ed. Addison-Wesley Reading MA. Lindholm T. and Yellin F. 1999. The Java Virtual Machine Specification 2nd Ed. Addison-Wesley Reading MA."},{"key":"e_1_2_1_22_1","unstructured":"Lohmeier S. 2005. Jini on the Jnode Java os. http:\/\/monochromata.de\/jnodejini.html. Lohmeier S. 2005. Jini on the Jnode Java os. http:\/\/monochromata.de\/jnodejini.html."},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1002\/(SICI)1097-024X(19990410)29:4%3C345::AID-SPE238%3E3.0.CO;2-C"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1980.230462"},{"key":"e_1_2_1_25_1","unstructured":"RTJ Computing. 2000. SimpleRTJ a small footprint Java VM for embedded and consumer devices. http:\/\/www.rtjcom.com\/. RTJ Computing . 2000. SimpleRTJ a small footprint Java VM for embedded and consumer devices. http:\/\/www.rtjcom.com\/."},{"key":"e_1_2_1_26_1","unstructured":"Schoeberl M. 2005. Jop: A Java optimized processor for embedded real-time systems. Ph.D. thesis Vienna University of Technology. Schoeberl M. 2005. Jop: A Java optimized processor for embedded real-time systems. Ph.D. thesis Vienna University of Technology."},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISORC.2006.66"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.sysarc.2007.06.001"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1288940.1288953"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1434790.1434802"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISORC.2008.63"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/12.57058"},{"key":"e_1_2_1_33_1","unstructured":"Siebert F. 2002. Hard Realtime Garbage Collection in Modern Object Oriented Programming Languages. aicas Books. Siebert F. 2002. Hard Realtime Garbage Collection in Modern Object Oriented Programming Languages . aicas Books."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/1134760.1134773"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISORC.2009.13"},{"key":"e_1_2_1_36_1","unstructured":"Wilkinson T. 1996. Kaffe -- A virtual machine to run Java code. http:\/\/www.kaffe.org. Wilkinson T. 1996. Kaffe -- A virtual machine to run Java code. http:\/\/www.kaffe.org."},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380070102"},{"volume-title":"Programming in Modula-2","author":"Wirth N.","key":"e_1_2_1_38_1","unstructured":"Wirth , N. 1982. Programming in Modula-2 . Springer . Wirth, N. 1982. Programming in Modula-2. Springer."},{"key":"e_1_2_1_39_1","volume-title":"Xenomai: Real-Time framework for Linux","author":"Xenomai Developers","year":"2008","unstructured":"Xenomai Developers . 2008 . Xenomai: Real-Time framework for Linux . http:\/\/www.xenomai.org. Xenomai Developers. 2008. Xenomai: Real-Time framework for Linux. http:\/\/www.xenomai.org."}],"container-title":["ACM Transactions on Embedded Computing Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2043662.2043666","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2043662.2043666","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T09:54:19Z","timestamp":1750240459000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2043662.2043666"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2011,11]]},"references-count":39,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2011,11]]}},"alternative-id":["10.1145\/2043662.2043666"],"URL":"https:\/\/doi.org\/10.1145\/2043662.2043666","relation":{},"ISSN":["1539-9087","1558-3465"],"issn-type":[{"type":"print","value":"1539-9087"},{"type":"electronic","value":"1558-3465"}],"subject":[],"published":{"date-parts":[[2011,11]]},"assertion":[{"value":"2008-08-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2010-02-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2011-11-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}