ACM Home Page
Please provide us with feedback. Feedback
Writing Solaris device drivers in Java
Full text PdfPdf (117 KB)
Source Architectural Support for Programming Languages and Operating Systems archive
Proceedings of the 3rd workshop on Programming languages and operating systems: linguistic support for modern operating systems table of contents
San Jose, California
Article No. 3  
Year of Publication: 2006
ISBN:1-59593-577-0
Authors
Hiroshi Yamauchi  Purdue University, West Lafayette, IN
Mario Wolczko  Sun Microsystems Laboratories, Menlo Park, CA
Sponsor
SIGARCH: ACM Special Interest Group on Computer Architecture
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 67,   Citation Count: 3
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1215995.1215998
What is a DOI?

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
3
4
 
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
 
12
{Saulpaugh99} T. Saulpaugh and C. A. Mirho, Inside the JavaOS Operating System, Addison-Wesley, 1999.
13
14
15
 
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


Collaborative Colleagues:
Hiroshi Yamauchi: colleagues
Mario Wolczko: colleagues