[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article

Singularity: rethinking the software stack

Published: 01 April 2007 Publication History

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.
[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).
[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.
[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.
[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.
[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.
[7]
ECMA International, ECMA-335 Common Language Infrastructure (CLI), 4th Edition. Technical Report Geneva, Switzerland, 2006.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[15]
Kongetira, P., Aingaran, K. and Olukotun, K. Niagara: A 32-Way Multithreaded Spare Processor. IEEE Micro, 25 (2). 21--29.
[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.
[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.
[18]
League, C. A Type-Preserving Compiler Infrastructure, Yale University, New Haven, CT, 2002.
[19]
Levy, H. M. Capability-Based Computer Systems. Butterworth-Heinemann, Newton, MA, 1984.
[20]
Microsoft Corporation, Scalable Networking: Network Protocol Offload - Introducing TCP Chimney. Technical Report Redmond, WA, 2004.
[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.
[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.
[23]
Saltzer, J. H. and Schroeder, M. D. The protection of information in computer systems. Proceedings of the IEEE, 63 (9). 1268--1308.
[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.
[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.
[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.
[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.
[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.
[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.
[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.

Cited By

View all
  • (2024)Limitations and opportunities of modern hardware isolation mechanismsProceedings of the 2024 USENIX Conference on Usenix Annual Technical Conference10.5555/3691992.3692013(349-368)Online publication date: 10-Jul-2024
  • (2024)Microkernel goes generalProceedings of the 18th USENIX Conference on Operating Systems Design and Implementation10.5555/3691938.3691963(465-485)Online publication date: 10-Jul-2024
  • (2024)DRustProceedings of the 18th USENIX Conference on Operating Systems Design and Implementation10.5555/3691938.3691944(97-115)Online publication date: 10-Jul-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGOPS Operating Systems Review
ACM SIGOPS Operating Systems Review  Volume 41, Issue 2
Systems work at Microsoft Research
April 2007
93 pages
ISSN:0163-5980
DOI:10.1145/1243418
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 April 2007
Published in SIGOPS Volume 41, Issue 2

Check for updates

Author Tags

  1. hardware protection domains
  2. manifest-based programs (MBPs)
  3. operating systems
  4. program specification
  5. program verification
  6. safe programming languages
  7. sealed kernel
  8. sealed process architecture
  9. software-isolated processes (SIPs)
  10. unsafe code tax

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)248
  • Downloads (Last 6 weeks)4
Reflects downloads up to 06 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Limitations and opportunities of modern hardware isolation mechanismsProceedings of the 2024 USENIX Conference on Usenix Annual Technical Conference10.5555/3691992.3692013(349-368)Online publication date: 10-Jul-2024
  • (2024)Microkernel goes generalProceedings of the 18th USENIX Conference on Operating Systems Design and Implementation10.5555/3691938.3691963(465-485)Online publication date: 10-Jul-2024
  • (2024)DRustProceedings of the 18th USENIX Conference on Operating Systems Design and Implementation10.5555/3691938.3691944(97-115)Online publication date: 10-Jul-2024
  • (2024)Ambience: an operating system for IoT microservicesJournal of Edge Computing10.55056/jec.786Online publication date: 5-Sep-2024
  • (2024)rOOM: A Rust-Based Linux Out of Memory Kernel ComponentIEICE Transactions on Information and Systems10.1587/transinf.2023MPP0001E107.D:3(245-256)Online publication date: 1-Mar-2024
  • (2024)BrickOS: specialized kernels for heterogeneous hardware resourcesSCIENTIA SINICA Informationis10.1360/SSI-2022-041354:3(491)Online publication date: 11-Mar-2024
  • (2024)VeriFence: Lightweight and Precise Spectre Defenses for Untrusted Linux Kernel ExtensionsProceedings of the 27th International Symposium on Research in Attacks, Intrusions and Defenses10.1145/3678890.3678907(644-659)Online publication date: 30-Sep-2024
  • (2024)Enoki: High Velocity Linux Kernel Scheduler DevelopmentProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3629569(962-980)Online publication date: 22-Apr-2024
  • (2024)Puddles: Application-Independent Recovery and Location-Independent Data for Persistent MemoryProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3629555(575-589)Online publication date: 22-Apr-2024
  • (2024)Lightweight Fault Isolation: Practical, Efficient, and Secure Software SandboxingProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3620665.3640408(649-665)Online publication date: 27-Apr-2024
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media