|
ABSTRACT
Operating system kernels have been traditionally written in C for flexibility and efficiency. They, however, often suffer from bugs and security vulnerabilities because C is inherently error-prone and unsafe. While there have been attempts to experimentally construct a complete operating system in a type safe language such as Java for higher safety and reliability, such type safe operating systems are not mainstream as yet. In this paper, we present an experimental implementation of the Java Virtual Machine that runs inside the kernel of the Solaris operating system. Our approach is to extend the existing operating system, rather than creating a new operating system from scratch, in order to reap the benefits of a type safe language in the kernel without expensive development and transition cost for a new operating system architecture. We implemented our system by porting an existing small, portable JVM, Squawk, into the Solaris kernel. Our first application of this system is to allow device drivers to be written in Java. A simple device driver was ported from C to Java. Characteristics of the Java device driver and our device driver interface are described.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
{BHL00} G. Back, W. C. Hsieh and J. Lepreau, Processes in KaffeOS: Isolation, Resource Management, and Sharing in Java, Symposium on Operating Systems Design and Implementation, 2000.
|
 |
2
|
B. N. Bershad , S. Savage , P. Pardyak , E. G. Sirer , M. E. Fiuczynski , D. Becker , C. Chambers , S. Eggers, Extensibility safety and performance in the SPIN operating system, Proceedings of the fifteenth ACM symposium on Operating systems principles, p.267-283, December 03-06, 1995, Copper Mountain, Colorado, United States
|
 |
3
|
Grzegorz Czajkowski , Laurent Daynés, Multitasking without comprimise: a virtual machine evolution, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.125-138, October 14-18, 2001, Tampa Bay, FL, USA
|
 |
4
|
Grzegorz Czajkowski , Thorsten von Eicken, JRes: a resource accounting interface for Java, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.21-35, October 18-22, 1998, Vancouver, British Columbia, Canada
|
| |
5
|
|
| |
6
|
{HCC*98} C. Hawblitzel, C. Chang, G. Czajkowski, D. Hu and T. von Eicken, Implementing Multiple Protection Domains in Java, USENIX Annual Technical Conference, 1998.
|
| |
7
|
{HL04} G. C. Hunt and J. R. Larus, Singularity Design Motivation (Singularity Technical Report 1), Microsoft Research, MSR-TR-2004-105, 2004.
|
| |
8
|
{JCP05} Java Community Process, Application Isolation API Specification, http://jcp.org/jsr/detail/121.jsp, 2002.
|
| |
9
|
{JNode05} Java New Operating System Design Effort, http://www.jnode.org/, 2005.
|
| |
10
|
|
 |
11
|
David D. Redell , Yogen K. Dalal , Thomas R. Horsley , Haug C. Lauer , William C. Lynch , Paul R. McJones , Hal G. Murray , Stephen C. Purcell, Pilot: An operating system for a personal computer (Summary), Proceedings of the seventh ACM symposium on Operating systems principles, p.106-107, December 10-12, 1979, Pacific Grove, California, United States
[doi> 10.1145/800215.806576]
|
| |
12
|
{Saulpaugh99} T. Saulpaugh and C. A. Mirho, Inside the JavaOS Operating System, Addison-Wesley, 1999.
|
 |
13
|
Nik Shaylor , Douglas N. Simon , William R. Bush, A java virtual machine architecture for very small devices, Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems, June 11-13, 2003, San Diego, California, USA
|
 |
14
|
Doug Simon , Cristina Cifuentes, The squawk virtual machine: Java™ on the bare metal, Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
[doi> 10.1145/1094855.1094908]
|
 |
15
|
Doug Simon , Cristina Cifuentes , Dave Cleal , John Daniels , Derek White, Java™ on the bare metal of wireless sensor devices: the squawk Java virtual machine, Proceedings of the second international conference on Virtual execution environments, June 14-16, 2006, Ottawa, Ontario, Canada
[doi> 10.1145/1134760.1134773]
|
| |
16
|
{Sun99} Sun Microsystems, Inc., The Java Hotspot Performance Engine Architecture, http://java.sun.com/products/hotspot/whitepaper.html, April, 1999.
|
| |
17
|
{Sun} Sun Microsystems, Inc., Sample Driver Source for Solaris 8, http://developers.sun.com/solaris/developer/support/driver/src/SUNWdrvs-8. html.
|
| |
18
|
{Sun05} Sun Microsystems, Inc., Writing Device Drivers, http://docs.sun.com/app/docs/doc/816-4854?a=load, 2005.
|
| |
19
|
|
CITED BY 3
|
|
|
|
|
Daniel Frampton , Stephen M. Blackburn , Perry Cheng , Robin J. Garner , David Grove , J. Eliot B. Moss , Sergey I. Salishev, Demystifying magic: high-level low-level programming, Proceedings of the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, March 11-13, 2009, Washington, DC, USA
|
|
|
|
|