For object-oriented distributed systems, the platform-independence and the safety are very important. Java is developed to satisfy these requirements and has become the most popular language for mobile contents. JavaOS is the first OS for executing mobile Java contents. Since JavaOS is targeted for thin clients, the architecture of JavaOS is designed to be simple. However, thin clients also need OS extension facilities for the flexibility and the new functionality.
The current trend in the research of operating systems is a OS extension by applications for performance and functionality. The thin clients are not the exceptions. To extend OS, the subsystems should be designed to serve the interface for extensions. And the interface should be designed to have incrementality which means easiness of extension implementation. Also, the interface must have safety to protect the kernel from the OS extension code.
In this thesis, we propose OS extension safety support by allowing JavaOS to be extended only by Java Extension code. As Java language is a kind of safe language which support strong type checking and safe memory reference. These features help protecting kernel from extensions. Moreover, object-oriented language feature of Java can offer incrementality. And, we also propose a detail design of OS extension interfaces, interfaces for the scheduler, the network subsystem, and the file system. We evaluate the relationship between incrementality and performance. The results show an incremental design by the fine-grain extension needs trade-offs between incrementality and performance.