Exploring the base abstractions from which developers build applications and practical implementations of those abstractions in operating systems.
Overview
The Operating Systems Group is part of the Systems and Networking Research Area. The most important job of an operating system is to provide a context within which programs can be created and run. Our group conducts fundamental and applied research into the base abstractions to create this context. To make our work relevant, we build prototype systems to evaluate our ideas and to prove their implemention into practical systems.
Projects
-
Drawbridge is a research prototype of a new form of virtualization for application sandboxing. Drawbridge combines two core technologie: First, a picoprocess, which is a process-based isolation container with a minimal kernel API surface. Second, a library OS, which is a very of Windows enlightened to run efficiently within a picoprocess.
-
Experiment 19 was a shunkworks project in late 2008 and early 2009 to re-imagine the Windows Phone platform. We created drivers and firmware to run Windows core components on prototype ARM-based phones. We ported the CLR to ARM and created an ARM JIT compiler. The prototype proved that Windows NT could achieve better performance than Windows CE on identical hardware. Within months of the completion of Experiment 19, Microsoft launched efforts to build what would become Windows Phone 8 and Windows RT for ARM tablets.
- Singularity focused on the construction of dependable systems through innovation in the areas of systems, languages, and tools. We are researching OS innovations, extending programming languages, and developing new techniques and tools for specifying and verifying system behavior. This research occurs in a new OS also called Singularity.
Full Time Jobs
We are hiring! We are looking for research candidates with demonstrated qualities of research taste, innovation, and first-hand system building. We highly value a proven track record as demonstrated by strong publications in top venues. If you are interested in a full-time Researcher position, you will need to submit a C.V. or resume, a research statement, two publications you feel represent your best work, and provide at least three references. The minimum education requirement for a Researcher is a Ph.D. in Computer Science or equivalent.
We do most of our hiring in the spring of each year. To be considered in our spring candidate pool, please apply online by January 15, listing Galen Hunt as your primary contact.
Microsoft is an equal opportunity employer and supports workforce diversity.
Internships
If you are an exceptional Ph.D. student interested in a research internship, please apply through the MSR Internship Application site to our group. Most interns work during the summer (application deadline is January 15), but we are interested in "off season" interns as well.
We differentiate ourselves from university research programs by tackling ambitiously large research projects. We strongly prefer intern candidates with recommendation letters that establish clearly that the candidate has strong research skills and great systems building skills. It is common for our interns to write many thousands of lines of systems code during an internship.
2013
- Andrew Baumann, Dongyoon Lee, Pedro Fonseca, Lisa Glendenning, Jacob R. Lorch, Barry Bond, Reuben Olinsky, and Galen C. Hunt, Composing OS extensions safely and efficiently with Bascule, in Eurosys, ACM, April 2013
2012
- Edmund B. Nightingale, Jeremy Elson, Jinliang Fan, Owen Hofmann, Jon Howell, and Yutaka Suzue, Flat Datacenter Storage, in 10th USENIX Symposium on Operating Systems Design and Implementation (OSDI 2012), USENIX, October 2012
- Johnson Apacible, Rich Draves, Jeremy Elson, Jinliang Fan, Owen Hofmann, Jon Howell, Ed Nightingale, Reuben Olinsky, and Yutaka Suzue, MinuteSort with Flat Datacenter Storage, no. MSR-TR-2012-126, 15 May 2012
2011
- Jeffrey C. Mogul, Andrew Baumann, Timothy Roscoe, and Livio Soares, Mind the gap: Reconnecting architecture and OS research, in Proceedings of the 13th Workshop on Hot Topics in Operating Systems (HotOS), USENIX, May 2011
- Edmund B. Nightingale, John R Douceur, and Vince Orgovan, Cycles, Cells and Platters: An Empirical Analysis of Hardware Failures on a Million Consumer PCs, in Proceedings of EuroSys 2011, Awarded "Best Paper", ACM, April 2011
- Donald E. Porter, Silas Boyd-Wickizer, Jon Howell, Reuben Olinsky, and Galen Hunt, Rethinking the Library OS from the Top Down, in Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), Association for Computing Machinery, Inc., March 2011
2010
- A. J. Bernheim Brush, Amy K. Karlson, James Scott, Raman Sarin, Andy Jacobs, Barry Bond, Oscar Murillo, Galen Hunt, Mike Sinclair, Kerry Hammil, and Steven Levi, User Experiences with Activity-Based Navigation on Mobile Devices, in Proceedings of MobileHCI 2010, Association for Computing Machinery, Inc., September 2010
- Ross Tate, Juan Chen, and Chris Hawblitzel, Inferable Object-Oriented Typed Assembly Language, in ACM SIGPLAN 2010 Conference on Programming Language Design and Implementation (PLDI) , Association for Computing Machinery, Inc., June 2010
- Engin Ipek, Jeremy Condit, Edmund B Nightingale, Doug Burger, and Thomas Moscibroda, Dynamically Replicated Memory: Building resilient systems from unreliable nanoscale memories, in Fifteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '10) Won Best Paper Award., March 2010
- Kaushik Veeraraghavan, Jason Flinn, Edmund B Nightingale, and Brian Noble, quFiles: The Right File at the Right Time, in 8th USENIX Conference on File and Storage technologies (FAST '10) Won best paper award., February 2010
2009
- Edmund B. Nightingale, Orion Hodson, Ross McIlroy, Chris Hawblitzel, and Galen Hunt, Helios: Heterogeneous Multiprocessing with Satellite Kernels, in Proceedings of the 22nd Symposium on Operating Systems Principles (SOSP '09), Association for Computing Machinery, Inc., Big Sky, MT, October 2009
- Jeremy Condit, Edmund B. Nightingale, Christopher Frost, Engin Ipek, Doug Burger, Benjamin Lee, and Derrick Coetzee, Better I/O Through Byte-Addressable, Persistent Memory, in Symposium on Operating Systems Principles (SOSP '09), Association for Computing Machinery, Inc., October 2009
- Kirk Glerum, Kinshuman Kinshumann, Steve Greenberg, Gabriel Aul, Vince Orgovan, Greg Nichols, David Grant, Gretchen Loihle, and Galen Hunt, Debugging in the (Very) Large: Ten Years of Implementation and Experience, in Proceedings of the 22nd ACM Symposium on Operating Systems Principles (SOSP '09), Association for Computing Machinery, Inc., Big Sky, MT, October 2009
- Benjamin Wester, James Cowling, Edmund B. Nightingale, Peter M. Chen, Jason Flinn, and Barbara Liskov, Tolerating Latency in Replicated State Machines Through Client Speculation, in The 6th USENIX Symposium on Networked Systems Design and Implementation (NSDI '09), USENIX, 2009
2008
- Ross Tate, Juan Chen, and Chris Hawblitzel, A Flexible Framework for Type Inference with Existential Quantification, no. MSR-TR-2008-184, December 2008
- Juan Chen, Chris Hawblitzel, Frances Perry, Mike Emmi, Jeremy Condit, Derrick Coetzee, and Polyvios Pratikakis, Type-Preserving Compilation for Large-Scale Optimizing Object-Oriented Compilers, in ACM Conference on Programming Language Design and Implementation (PLDI 08), Association for Computing Machinery, Inc., June 2008
- Edmund B. Nightingale, Daniel Peek, Peter M. Chen, and Jason Flinn, Parallelizing Security Checks on Commodity Hardware, in Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '08), Seattle, WA, March 2008
2007
- Frances Perry, Chris Hawblitzel, and Juan Chen, Simple and Flexible Stack Types, in International Workshop on Aliasing, Confinement and Ownership in object-oriented programming (IWACO 07), July 2007
- Chris Hawblitzel, Heng Huang, Lea Wittie, and Juan Chen, A Garbage-Collecting Typed Assembly Language, in ACM Workshop on Types in Language Design and Implementation (TLDI 07), Association for Computing Machinery, Inc., January 2007
