skip to main content
article

Singularity: rethinking the software stack

Published:01 April 2007Publication History
Skip Abstract Section

Abstract

Every operating system embodies a collection of design decisions. Many of the decisions behind today's most popular operating systems have remained unchanged, even as hardware and software have evolved. Operating systems form the foundation of almost every software stack, so inadequacies in present systems have a pervasive impact. This paper describes the efforts of the Singularity project to re-examine these design choices in light of advances in programming languages and verification tools. Singularity systems incorporate three key architectural features: software-isolated processes for protection of programs and system services, contract-based channels for communication, and manifest-based programs for verification of system properties. We describe this foundation in detail and sketch the ongoing research in experimental systems that build upon it.

References

  1. Aiken, M., Fähndrich, M., Hawblitzel, C., Hunt, G. and Larus, J., Deconstructing Process Isolation. In Proceedings of the ACM SIGPLAN Workshop on Memory Systems Correctness and Performance (MSPC 2006), San Jose, CA, October 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Allen, D. H., Dhong, S. H., Hofstee, H. P., Leenstra, J., Nowka, K. J., Stasiak, D. L. and Wendel, D. F. Custom Circuit Design as a Driver of Microprocessor Performance. IBM Journal of Research and Development, 44 (6). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Anderson, T. E., Levy, H. M., Bershad, B. N. and Lazowska, E. D. The Interaction of Architecture and Operating System Design. In Proceedings of the Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, Santa Clara, CA, 1991, 108--120. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Bershad, B. N., Savage, S., Pardyak, P., Sirer, E. G., Fiuczynski, M., Becker, D., Eggers, S. and Chambers, C. Extensibility, Safety and Performance in the SPIN Operating System. In Proceedings of the Fifteenth ACM Symposium on Operating System Principles, Copper Mountain Resort, CO, 1995, 267--284. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Chakraborty, K., Wells, P. and Sohi, G., Computation Spreading: Employing Hardware Migration to Specialize CMP Cores On-the-fly. In 12th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XII), San Josa, CA, October 2006, 283--302. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Chen, J. and Tarditi, D., A Simple Typed Intermediate Language for Object-oriented Languages. In Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '05), Long Beach, CA, January 2005, 38--49. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. ECMA International, ECMA-335 Common Language Infrastructure (CLI), 4th Edition. Technical Report Geneva, Switzerland, 2006.Google ScholarGoogle Scholar
  8. Fähndrich, M., Aiken, M., Hawblitzel, C., Hodson, O., Hunt, G., Larus, J. R. and Levi, S., Language Support for Fast and Reliable Message Based Communication in Singularity OS. In Proceedings of the EuroSys 2006 Conference, Leuven, Belgium, April 2006, 177--190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Fähndrich, M., Carbin, M. and Larus, J., Reflective Program Generation with Patterns. In 5th International Conference on Generative Programming and Component Engineering (GPCE'06), Portland, OR, October 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Fitzgerald, R. and Tarditi, D. The Case for Profile-directed Selection of Garbage Collectors. In Proceedings of the 2nd International Symposium on Memory Management (ISMM'00), Minneapolis, MN, 2000, 111--120. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Hawblitzel, C., Huang, H., Wittie, L. and Chen, J., A Garbage-Collecting Typed Assembly Language. In AGM SIGPLAN Workshop on Types in Language Design and Implementation (TLDI '07), Nice, France, January 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Herder, J. N., Bos, H., Gras, B., Homburg, P. and Tanenbaum, A. S. MINIX 3: A Highly Reliable, Self-Repairing Operating System. Operating System Review, 40 (3). 80--89. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Hunt, G., Larus, J., Abadi, M., Aiken, M., Barham, P., Fähndrich, M., Hawblitzel, C., Hodson, O., Levi, S., Murphy, N., Steensgaard, B., Tarditi, D., Wobber, T. and Zill, B., An Overview of the Singularity Project. Technical Report MSR-TR-2005-135, Microsoft Research, 2005.Google ScholarGoogle Scholar
  14. Hunt, G., Larus, J., Abadi, M., Aiken, M., Barham, P., Fähndrich, M., Hawblitzel, C., Hodson, O., Levi, S., Murphy, N., Steensgaard, B., Tarditi, D., Wobber, T. and Zill, B., Sealing OS Processes to Improve Dependability and Safety. In Proceedings of the EuroSys2007 Conference, Lisbon, Portugal, March 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Kongetira, P., Aingaran, K. and Olukotun, K. Niagara: A 32-Way Multithreaded Spare Processor. IEEE Micro, 25 (2). 21--29. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Lampson, B., Abadi, M., Burrows, M. and Wobber, E. P. Authentication in distributed systems: Theory and Practice. ACM Transactions on Computer Systems, 10 (4). 265--310. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Larus, J. R. and Parkes, M. Using Cohort-Scheduling to Enhance Server Performance. In Proceedings of the USENIX 2002 Annual Conference, Monterey, CA, 2002, 103--114. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. League, C. A Type-Preserving Compiler Infrastructure, Yale University, New Haven, CT, 2002.Google ScholarGoogle Scholar
  19. Levy, H. M. Capability-Based Computer Systems. Butterworth-Heinemann, Newton, MA, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Microsoft Corporation, Scalable Networking: Network Protocol Offload - Introducing TCP Chimney. Technical Report Redmond, WA, 2004.Google ScholarGoogle Scholar
  21. Morrisett, G., Walker, D., Crary, K. and Glew, N. From System F to Typed Assembly Language. ACM Transactions on Programming Languages and Systems, 21 (3). 527--568. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Necula, G. C. and Lee, P. Safe Kernel Extensions Without Run-Time Checking. In Proceedings of the Second Symposium on Operating System Design and Implementation, Seattle, Wa., 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Saltzer, J. H. and Schroeder, M. D. The protection of information in computer systems. Proceedings of the IEEE, 63 (9). 1268--1308.Google ScholarGoogle Scholar
  24. Shapiro, J. S., Smith, J. M. and Farber, D. J. EROS: a Fast Capability System. In Proceedings of the 17th ACM Symposium on Operating Systems Principles (SOSP '99), Charleston, SC, 1999, 170--185. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Spear, M. F., Roeder, T., Hodson, O., Hunt, G. C. and Levi, S., Solving the Starting Problem: Device Drivers as Self-Describing Artifacts. In Proceedings of the EuroSys 2006 Conference, Leuven, Belgium, April 2006, 45--58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Swinehart, D. C., Zellweger, P. T., Beach, R. J. and Hagmann, R. B. A Structural View of the Cedar Programming Environment. ACM Transactions on Programming Languages and Systems, 8 (4). 419--490. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Vangal, S., Howard, J., Ruhl, G., Dighe, S., Wilson, H., Tschanz, J., Finan, D., Iyer, P., Singh, A., Jacob, T., Jain, S., Venkataraman, S., Hoskote, Y. and Borkar, N., An 80-Tile 1.28TFLPOPS Network-on-Chip in 65nm CMOS. In 2007 IEEE International Solid-State Circuits Conference, San Francisco, CA, February 2007.Google ScholarGoogle Scholar
  28. von Behren, R., Condit, J., Zhou, F., Necula, G. C. and Brewer, E. Capriccio: Scalable Threads for Internet Services. In Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles (SOSP '03), Bolton Landing, NY, 2003, 268--281. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Wobber, E. P., Abadi, M., Burrows, M. and Lampson, B. Authentication in the Taos Operating System. ACM Transactions on Computer Systems, 12 (1). 3--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Wobber, T., Abadi, M., Birrell, A., Simon, D. R. and Yumerefendi, A., Authorizing Applications in Singularity. In Proceedings of the EuroSys2007 Conference, Lisbon, Portugal, March 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Singularity: rethinking the software stack

                    Recommendations

                    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