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.
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- ECMA International, ECMA-335 Common Language Infrastructure (CLI), 4th Edition. Technical Report Geneva, Switzerland, 2006.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- Kongetira, P., Aingaran, K. and Olukotun, K. Niagara: A 32-Way Multithreaded Spare Processor. IEEE Micro, 25 (2). 21--29. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- League, C. A Type-Preserving Compiler Infrastructure, Yale University, New Haven, CT, 2002.Google Scholar
- Levy, H. M. Capability-Based Computer Systems. Butterworth-Heinemann, Newton, MA, 1984. Google ScholarDigital Library
- Microsoft Corporation, Scalable Networking: Network Protocol Offload - Introducing TCP Chimney. Technical Report Redmond, WA, 2004.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Saltzer, J. H. and Schroeder, M. D. The protection of information in computer systems. Proceedings of the IEEE, 63 (9). 1268--1308.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Singularity: rethinking the software stack
Recommendations
Sealing OS processes to improve dependability and safety
EuroSys'07 Conference ProceedingsIn most modern operating systems, a process is a hardware-protected abstraction for isolating code and data. This protection, however, is selective. Many common mechanisms---dynamic code loading, run-time code generation, shared memory, and intrusive ...
Looking beyond a singularity
VEE '10How does one build a truly dependable software system? Seven years ago, Microsoft Research started the Singularity project to answer this question. The premise was to start with the best known software development tools and to build a new kind of ...
Sealing OS processes to improve dependability and safety
EuroSys '07: Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007In most modern operating systems, a process is a hardware-protected abstraction for isolating code and data. This protection, however, is selective. Many common mechanisms---dynamic code loading, run-time code generation, shared memory, and intrusive ...
Comments