Abstract
In this article we show how to extend a wide range of functionality of standard operation systems completely at the user level. Our approach 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 relinking or recompilation 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 used this approach to implement a global file system, called Ufo, which allows users to treat remote files exactly as if they were local. Currently, Ufo supports file access through the FTP and HTTP protocols and allows new protocols to be plugged in. While several other projects have implemented global file system abstractions, they all require either changes to the operating system or modifications to standard libraries. The article gives a detailed performance analysis of our approach to extending the OS and establishes that Ufo introduces acceptable overhead for common applications even though intercepting individual system calls incurs a high cost.
- BAKER, M. G., HARTMANN, J. H., KUPFER, J. H., SHIRRIF, K. W., AND OUSTERHOUT, J. K. 1991. Measurement of a distributed file system. In Proceedings of the 13th ACM Symposium on Operating Systems Principles (SOSP '91, Pacific Grove, CA, Oct. 13-16). ACM Press, New York, NY.]] Google Scholar
- BERSHAD, B. N., SAVAGE, S., PARDYAK, P., SIRER, E. G., FIUCZYNSKI, M. E., BECKER, D., CHAMBERS, C., AND EGGERS, S. 1995. Extensibility safety and performance in the SPIN operating system. ACM SIGOPS Oper. Syst. Rev. 29, 5 (Dec.), 267-283.]] Google Scholar
- BROWNBRIDGE, D. R. AND MARSHALL, L. F. 1982. The Newcastle Connection, or UNIXes of the world unite!. Softw. Pract. Exper. 12.]]Google Scholar
- BUGNION, E., DEVINE, S., AND ROSENBLUM, M. 1997. Disco: Running commodity operating systems on scalable multiprocessors. In Proceedings of the 16th Symposium on Operating Systems Principles (SOSP '97, Saint-Malo, France). ACM Press, New York, NY.]] Google Scholar
- CATE, V. 1992. ALEX--A global file system. In Proceedings of the 1992 USENIX File System Workshop (Ann Arbor, MI, May). USENIX Assoc., Berkeley, CA.]]Google Scholar
- DAHLIN, M., WANG, R., ANDERSON, T., AND PATTERSON, D. 1994. Cooperative caching: Using remote client memory to improve file system performance. In Proceedings of the 1st USENIX Symposium on Operating Systems Design and Implementation (Monterey, CA, May). USENIX Assoc., Berkeley, CA.]] Google Scholar
- EGGERT, P. R. AND PARKER, D. S. 1993. File systems in user space. In Proceedings of the USENIX Winter 1993 Technical Conference (Berkeley, CA). USENIX Assoc., Berkeley, CA.]]Google Scholar
- ENGLER, D. R., KAASHOEK, M. F., AND O'TOOLE, J. 1995. Exokernel: An operating system architecture for application-level resource management. ACM SIGOPS Oper. Syst. Rev. 29, 5 (Dec.), 251-266.]] Google Scholar
- FAULKNER, R. AND GOMES, R. 1991. The process file system and process model in UNIX system V. In Proceedings of the 1991 Winter USENIX Conference. USENIX Assoc., Berkeley, CA.]]Google Scholar
- FEELEY, M. J., MORGAN, W. E., PIGHIN, E. P., KARLIN, A. R., LEVY, H. M., AND THEKKATH, C. A. 1995. Implementing global memory management in a workstation cluster. ACM SIGOPS Oper. Syst. Rev. 29, 5 (Dec.), 201-212.]] Google Scholar
- FITZHARDINGE, J. 1996. Userfs: A file system for Linux. ftp://sunsite.unc.edu/pub/Linux/ ALPHA/userfs/userfs-0.9.tar.gz.]]Google Scholar
- FORD, B., HIBLER, M., LEPREAU, J., TULLMAN, P., BACK, G., AND CLAWSON, S. 1996. Microkernels meet recursive virtual machines. In Proceedings of the 2nd Symposium on Operating Systems Design and Implementation (OSDI '96, Seattle, WA, Oct.). ACM Press, New York, NY.]] Google Scholar
- GHORMLEY, D. P., PETROU, D., AND ANDERSON, T. E. 1996. SLIC: Secure loadable interposition code. Tech. Rep. CSD-96-920. Computer Science Department, University of California at Berkeley, Berkeley, CA.]]Google Scholar
- GOLDBERG, I., WAGNER, D., THOMAS, R., AND BREWER, E.n. 1996. A secure environment for untrusted helper applications--Confining the wily hacker. In Proceedings of the 1996 USENIX Security Symposium. USENIX Assoc., Berkeley, CA.]] Google Scholar
- GOLDBERG, R. P. 1974. Survey of virtual machine research. Computer 7, 6 (June).]]Google Scholar
- GSCHWIND, M. K. 1994. FTP--Access as a user-defined file system. ACM SIGOPS Oper. Syst. Rev. 28, 2 (Apr.), 73-80.]] Google Scholar
- HOWARD, J. H., KAZAR, M. L., MENEES, S. G., NICHOLS, D. A., SATYANARAYANAN, M., SIDEBOTHAM, R. N., AND WEST, M. J. 1988. Scale and performance in a distributed file system. ACM Trans. Comput. Syst. 6, 1 (Feb.), 51-81.]] Google Scholar
- JONES, M. B. 1993. Interposition agents: Transparently interposing user code at the system interface. ACM SIGOPS Oper. Syst. Rev. 27, 5 (Dec.), 80-93.]] Google Scholar
- MORRIS, J. H., SATYANARAYANAN, M., CONNER, M. H., HOWARD, J. H., ROSENTHAL, D. S., AND SMITH, F. D. 1986. Andrew: A distributed personal computing environment. Commun. ACM 29, 3 (Mar.), 184-201.]] Google Scholar
- NELSON, M. N., WELCH, B. B., AND OUSTERHOUT, J. K. 1988. Caching in the Sprite network file system. ACM Trans. Comput. Syst. 6, 1 (Feb.), 134-154.]] Google Scholar
- NEUMANN, B. C., AUGART, S. S., AND UPASANI, S. 1993. Using Prospero to support integrated location-independent computing. In Proceedings of the USENIX Mobile and Location- Independent Computing Symposium. USENIX Assoc., Berkeley, CA.]]Google Scholar
- NORMAN, A. 1992. Ange-ftp manual. Free Software Foundation, Cambridge, MA. ftp:// alpha.gnu.ai.mit.edu/ange-ftp/ange-ftp.tar.gz]]Google Scholar
- PARK, A. AND BECKER, J. C. 1990. IOStone: A synthetic file system benchmark. SIGARCH Comput. Arch. News 18, 2 (June), 45-52.]] Google Scholar
- PIKE, R., PRESOTTO, D., THOMPSON, K., AND TRICKEY, H. 1990. Plan 9 from Bell Labs. In Proceedings of the UK Unix Users Group.]]Google Scholar
- RAO, g. C. AND PETERSON, L. L. 1993. Accessing files in an internet: The Jade File System. IEEE Trans. Softw. Eng. 19, 6 (June), 613-624.]] Google Scholar
- SANDBERG, R., GOLDBERG, D., KLEIMAN, S., WALSH, D., AND LYON, B. 1985. Design and implementaiton of the Sun network file system. In Proceedings of the Summer USENIX Conference. USENIX Assoc., Berkeley, CA.]]Google Scholar
- SATYANARAYANAN, M., KISTLER, J. J., KUMAR, P., OKASAKI, M. E., SIEGEL, E. H., AND STEERE, D. C. 1990. Coda: A highly available file system for a distributed workstation environment. IEEE Trans. Comput. 39, 4 (Apr.), 447-459.]] Google Scholar
- SELTZER, M. AND SMALL, C. 1996. A comparison of OS extension technologies. In Proceedings of the 1996 USENIX Technical Conference (San Diego, CA, Jan.). USENIX Assoc., Berkeley, CA.]] Google Scholar
- SELTZER, M., ENDO, Y., SMALL, C., AND SMITH, K. 1994. An introduction to the VINO architecture. Tech. Rep. TR34-94. Harvard Univ., Cambridge, MA.]]Google Scholar
- TANNENBAUM, T. AND LITZKOW, M. 1995. The Condor distributed processing system. Dr. Dobb's J. 20, 2 (Feb.).]]Google Scholar
- VAHDAT, A., DAHLIN, M., AND ANDERSON, T. 1996. Turning the Web into a computer. Tech. Rep. Computer Science Department, University of California at Berkeley, Berkeley, CA.]]Google Scholar
- WELCH, B. B. 1991. Measured performance of caching in the Sprite network file system. Comput. Syst. 3, 4.]]Google Scholar
Index Terms
- UFO: a personal global file system based on user-level extensions to the operating system
Recommendations
Extending the operating system at the user level: the Ufo global file system
ATEC '97: Proceedings of the annual conference on USENIX Annual Technical ConferenceIn this paper we show how to extend the functionality of standard operating systems completely at the user level. Our approach works by intercepting selected system calls at the user level, using tracing facilities such as the /proc file system provided ...
Accessing Files in an Internet: The Jade File System
The Jade file system, which provides a uniform way to name and access files in an Internet environment, is introduced. Jade is a logical system that integrates a heterogeneous collection of existing file systems in which underlying file systems support ...
Comments