ACM Home Page
Please provide us with feedback. Feedback
The KaffeOS Java runtime system
Full text PdfPdf (704 KB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 27 ,  Issue 4  (July 2005) table of contents
Pages: 583 - 630  
Year of Publication: 2005
ISSN:0164-0925
Authors
Godmar Back  Virginia Polytechnic Institute and State University, Blacksburg, VA
Wilson C. Hsieh  Google, Inc., Mountain View, CA
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 16,   Downloads (12 Months): 141,   Citation Count: 5
Additional Information:

abstract   references   cited by   index terms   review   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/1075382.1075383
What is a DOI?

ABSTRACT

Single-language runtime systems, in the form of Java virtual machines, are widely deployed platforms for executing untrusted mobile code. These runtimes provide some of the features that operating systems provide: interapplication memory protection and basic system services. They do not, however, provide the ability to isolate applications from each other. Neither do they provide the ability to limit the resource consumption of applications. Consequently, the performance of current systems degrades severely in the presence of malicious or buggy code that exhibits ill-behaved resource usage. We show that Java runtime systems can be extended to support processes, and that processes can provide robust and efficient support for untrusted applications.We have designed and built KaffeOS, a Java runtime system that provides support for processes. KaffeOS isolates processes and manages the physical resources available to them: CPU and memory. Unlike existing Java virtual machines, KaffeOS can safely terminate processes without adversely affecting the integrity of the system, and it can fully reclaim a terminated process's resources. Finally, KaffeOS requires no changes to the Java language. The novel aspects of the KaffeOS architecture include the application of a user/kernel boundary as a structuring principle for runtime systems, the employment of garbage collection techniques for resource management and isolation, and a model for direct sharing of objects between untrusted applications. The difficulty in designing KaffeOS lay in balancing the goals of isolation and resource management against the goal of allowing direct sharing of objects.For the SpecJVM benchmarks, the overhead that our KaffeOS prototype incurs ranges from 0&percent; to 25&percent;, when compared to the open-source JVM on which it is based. We consider this overhead acceptable for the safety that KaffeOS provides. In addition, our KaffeOS prototype can scale to run more applications than running multiple JVMs. Finally, in the presence of malicious or buggy code that engages in a denial-of-service attack, KaffeOS can contain the attack, remove resources from the attacked applications, and continue to provide robust service to other clients.


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
2
 
3
4
 
5
 
6
Bernadat, P., Lambright, D., and Travostino, F. 1998. Towards a resource-safe Java for service guarantees in uncooperative environments. In Proceedings of the IEEE Workshop on Programming Languages for Real-Time Industrial Applications (Madrid, Spain). IEEE Computer Society Press, Los Alamitos, Calif., 101--111.
 
7
8
9
 
10
 
11
 
12
13
14
15
16
17
18
19
 
20
21
 
22
Dorward, S., Pike, R., Presotto, D. L., Ritchie, D. M., Trickey, H., and Winterbottom, P. 1997. The Inferno operating system. Bell Labs Tech. J. 2, 1, 5--18.
 
23
Engler, D., Chelf, B., Chou, A., and Hallem, S. 2000. Checking system rules using system-specific, programmer-written compiler extensions. In Proceedings of the 4th Symposium on Operating Systems Design and Implementation (San Diego, Calif.). USENIX Association, 1-- 16.
24
25
26
 
27
Franz, M. 1997. Beyond Java: An infrastructure for high-performance mobile code on the World Wide Web. In Proceedings of WebNet '97, World Conference of the WWW, Internet, and Intranet, S. Lobodzinski and I. Tomek, Eds. Association for the Advancement of Computing in Education, Toronto, Ont., Canada, 33--38.
28
 
29
Gorrie, L. 1998. Echidna---A free multiprocess system in Java. http://www.javagroup.org/ echidna/.
 
30
Hawblitzel, C., Chang, C.-C., Czajkowski, G., Hu, D., and von Eicken, T. 1998. Implementing multiple protection domains in Java. In Proceedings of the 1998 USENIX Annual Technical Conference (New Orleans, La.). USENIX Association, 259--270.
31
 
32
 
33
Jaeger, T., Liedtke, J., and Islam, N. 1998. Operating system protection for fine-grained programs. In Proceedings of the 7th USENIX Security Symposium (San Antonio, Tex.). USENIX Association, 143--157.
 
34
Java Apache Project. 2000. The Apache JServ project. http://java.apache.org/jserv.
 
35
Java Community Process. 2003. Jsr 121. http://www.jcp.org/en/jsr/detail?id=121.
 
36
37
 
38
 
39
40
 
41
Lizt, J. 1999. Oracle JServer Scalability and Performance. http://www.oracle.com/ java/scalability/index.html?testresults_twp.html. Java Products Team, Oracle Server Technologies.
 
42
Malkhi, D., Reiter, M. K., and Rubin, A. D. 1998. Secure execution of Java applets using a remote playground. In Proceedings of the 1998 IEEE Symposium on Security and Privacy (Oakland, Calif.). IEEE Computer Society Press, Los Alamitos, Calif., 40--51.
43
 
44
 
45
Microsoft Corporation. 2003. NET web pages. http://msdn.microsoft.com/netframework/.
 
46
 
47
48
 
49
Ritchie, D. M. and Thompson, K. 1978. The UNIX time-sharing system. The Bell Syst. Tech. J. 57, 6 (July/Aug.), 1905--1930.
 
50
Rivest, R. 1992. The MD5 message-digest algorithm. Internet Request for Comments RFC 1321, Internet Network Working Group. April.
 
51
Roscoe, T. 1995. The structure of a multi-service operating system. Ph.D. dissertation. Queen's College, University of Cambridge, Cambridge, U.K.
52
 
53
Saraswat, V. 1997. Java is not type-safe. http://matrix.research.att.com/vj/bug.html.
 
54
Saulpaugh, T. and Mirho, C. A. 1999. Inside the JavaOS Operating System. The Java Series. Addison-Wesley, Reading, Mass.
55
 
56
 
57
Sirer, E., Fiuczynski, M., Pardyak, P., and Bershad, B. 1996. Safe dynamic linking in an extensible operating system. In Proceedings of the 1st Workshop on Compiler Support for System Software (Tucson, Az.). 141--148.
 
58
SPEC. 1998. SPEC JVM98 benchmarks. http://www.spec.org/osg/jvm98/.
59
60
 
61
62
 
63
Tullmann, P. A. 1999. The Alta operating system. M.S. dissertation, Department of Computer Science, University of Utah.
 
64
Tullmann, P., Hibler, M., and Lepreau, J. 2001. Janos: A Java-oriented OS for active network nodes. IEEE J. Sel. Areas Commun. 19, 3 (Mar.), 501--510.
65
 
66
van Doorn, L. 2000. A secure Java virtual machine. In Proceedings of the 9th USENIX Security Symposium (Denver, Col.). USENIX Association, 19--34.
 
67
68
 
69
 
70
Wick, A., Flatt, M., and Hsieh, W. 2002. Reachability-based memory accounting. In Proceedings of the 2002 Scheme Workshop (Pittsburgh, Pa.).
 
71
Wilkinson, T. 1996. Kaffe---A Java virtual machine. http://www.kaffe.org/.
 
72
Wilkinson, T., Stiemerling, T., Gull, A., Whitcroft, A., Osmon, P., Saulsbury, A., and Kelly, P. 1992. Angel: A proposed multiprocessor operating system kernel. In Proceedings of the European Workshop on Parallel Computing (Barcelona, Spain). 316--319.
 
73
 
74
Wind River Systems, Inc. 1995. VxWorks Programmer's Guide. Wind River Systems, Inc., Alameda, Calif.
 
75
Wirth, N. and Gutknecht, J. 1992. Project Oberon. ACM, New York.
76



REVIEW

"R. Clayton : Reviewer"

The Java Virtual Machine (JVM) can be thought of as a single-process operating system (OS). The advantage of a single-process OS over a multiple-process OS is simplicity and security; the advantage of a multiple-process OS is flexibility and utili  more...

Collaborative Colleagues:
Godmar Back: colleagues
Wilson C. Hsieh: colleagues