User-level operating system extensions based on system call interposition
暂无分享,去创建一个
Extensibility is becoming a very important issue in modern operating systems. Extensible operating systems can easily adapt to satisfy the requirements of new emerging applications. Although a lot of research has gone into designing extensible operating systems, existing standard operating systems are difficult to extend.
In this dissertation we show how to extend standard operating systems completely at the user level without actual modifications to the operating system itself. Our approach is based on system call interposition. It works by intercepting selected system calls at the user level, using tracing facilities such as the /proc file system provided by many Unix operating systems. The behavior of some intercepted system calls is then modified to implement new functionality. This approach does not require any re-linking or re-compilation of existing applications. In fact, the extensions can even be dynamically “installed” into already running processes. The extensions work completely at the user level and install without system administrator assistance. Individual users can choose what extensions to run, in effect creating a personalized operating system view for themselves.
We demonstrate the viability of our approach by implementing two significant operating system extensions: Ufo and Consh. Ufo is a global file system that provides transparent access to remote HTTP and FTP servers. Consh is a confined shell for protected execution that provides services needed for new Internet computing applications. Our detailed performance analysis of these extensions shows that while system call interposition incurs noticeable performance overhead on individual system calls, the overall overhead for complete applications is acceptable. Furthermore, we analyze the current implementation of the / proc interface, identify the bottlenecks responsible for the overhead and propose minor changes to the operating system to overcome these bottlenecks. The changes are small enough to be easily incorporated in a future version of the operating system. We implement the changes in a current operating system and demonstrate the resulting improved performance in the Ufo extension.