skip to main content
article
Free Access
Best Paper

UFO: a personal global file system based on user-level extensions to the operating system

Published:01 August 1998Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle Scholar
  2. 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 ScholarGoogle Scholar
  3. BROWNBRIDGE, D. R. AND MARSHALL, L. F. 1982. The Newcastle Connection, or UNIXes of the world unite!. Softw. Pract. Exper. 12.]]Google ScholarGoogle Scholar
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle Scholar
  8. 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 ScholarGoogle Scholar
  9. 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 ScholarGoogle Scholar
  10. 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 ScholarGoogle Scholar
  11. FITZHARDINGE, J. 1996. Userfs: A file system for Linux. ftp://sunsite.unc.edu/pub/Linux/ ALPHA/userfs/userfs-0.9.tar.gz.]]Google ScholarGoogle Scholar
  12. 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 ScholarGoogle Scholar
  13. 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 ScholarGoogle Scholar
  14. 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 ScholarGoogle Scholar
  15. GOLDBERG, R. P. 1974. Survey of virtual machine research. Computer 7, 6 (June).]]Google ScholarGoogle Scholar
  16. GSCHWIND, M. K. 1994. FTP--Access as a user-defined file system. ACM SIGOPS Oper. Syst. Rev. 28, 2 (Apr.), 73-80.]] Google ScholarGoogle Scholar
  17. 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 ScholarGoogle Scholar
  18. 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 ScholarGoogle Scholar
  19. 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 ScholarGoogle Scholar
  20. 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 ScholarGoogle Scholar
  21. 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 ScholarGoogle Scholar
  22. NORMAN, A. 1992. Ange-ftp manual. Free Software Foundation, Cambridge, MA. ftp:// alpha.gnu.ai.mit.edu/ange-ftp/ange-ftp.tar.gz]]Google ScholarGoogle Scholar
  23. PARK, A. AND BECKER, J. C. 1990. IOStone: A synthetic file system benchmark. SIGARCH Comput. Arch. News 18, 2 (June), 45-52.]] Google ScholarGoogle Scholar
  24. PIKE, R., PRESOTTO, D., THOMPSON, K., AND TRICKEY, H. 1990. Plan 9 from Bell Labs. In Proceedings of the UK Unix Users Group.]]Google ScholarGoogle Scholar
  25. 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 ScholarGoogle Scholar
  26. 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 ScholarGoogle Scholar
  27. 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 ScholarGoogle Scholar
  28. 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 ScholarGoogle Scholar
  29. 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 ScholarGoogle Scholar
  30. TANNENBAUM, T. AND LITZKOW, M. 1995. The Condor distributed processing system. Dr. Dobb's J. 20, 2 (Feb.).]]Google ScholarGoogle Scholar
  31. 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 ScholarGoogle Scholar
  32. WELCH, B. B. 1991. Measured performance of caching in the Sprite network file system. Comput. Syst. 3, 4.]]Google ScholarGoogle Scholar

Index Terms

  1. UFO: a personal global file system based on user-level extensions to the operating system

        Recommendations

        Reviews

        Brett D. Fleisch

        The authors consider extending operating system functionality by intercepting certain system calls and transferring control to extension routines that implement extended functionality. They describe mechanisms that have been used in the past to extend operating systems (OSs) with new functionality. Their survey of past approaches to extending OSs, coupled with citations to the literature for each approach, is one of the strongest components of the presentation and would be a worthy subject for undergraduate textbooks on operating systems. The specifics of the authors' research are not startling because the results are mixed, the approach is somewhat obvious, and the expected performance is predicted to be poor. Nonetheless, the benefits of the approach seem to outweigh the significant performance drawbacks. The authors show that individual users can use their interception methodology to choose which extension functions to run. Despite this advantage, performance was quite poor for file-intensive applications, which have a high percentage of interceptions. The authors suggest that their performance costs are mitigated because, over the execution of typical long-running applications, interceptions are executed infrequently. They argue that the cost of their approach is amortized over the application's entire runtime, which for typical applications is much larger than the interception times. Their arguments are bolstered by the observation that the benefits of easy extensibility make up for the significant performance penalties they observed. It is difficult to assess whether this is packaging of an obviously bad concept that is headed to obscurity, or clever use of obvious techniques that could have a significant impact.

        Access critical reviews of Computing literature here

        Become a reviewer for Computing Reviews.

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader