The JX Operating System

Michael Golm, Meik Felser, Christian Wawersich, Jürgen Kleinöder · 2002

This paper describes the architecture and performance of the JX operating system. JX is both an operating system completely written in Java and a runtime system for Java applications. Our work demonstrates that it is possible to build a complete operating system in Java, achieve a good performance, and still benefit from the modern software-technology of this object-oriented, type-safe language. We explain how an operating system can be structured that is no longer build on MMU protection but on type safety. JX is based on a small microkernel which is responsible for system initialization, CPU context switching, and lowlevel protection-domain management. The Java code is organized in components, which are loaded into domains, verified, and translated to native code. Domains can be completely isolated from each other. The JX architecture allows a wide range of system configurations, from fast and monolithic to very flexible, but slower configurations. We compare the performance of JX with Linux by using two non-trivial operating system components: a file system and an NFS server. Furthermore we discuss the performance impact of several alternative system configurations. In a monolithic configuration JX achieves between about 40 % and 100 % Linux performance in the file system benchmark and about 80 % in the NFS benchmark. 1

Read the paper · More papers on PaperTik