I lead the Microsoft Research Operating Systems Group as Principal Researcher. I currently spend a lot of time thinking about the trade-offs between virtual machine monitors and OS kernels as ways to build new computing systems using Drawbridge. Previously, I lead the Menlo and Experiment 19 projects and the Singularity project.
Experiment 19 was a skunkworks project completed in spring 2009 that demonstrated for the first time that Windows NT could effectively replace Windows CE as the core OS for mobile devices. 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.
In 2001, I co-founded the MSR BIG project. Well ahead of our time, we pioneered many principles of cloud computing. Over 30 US Patents issued for the cloud computing technologies we developed; the most recent was filed over 2 years before Amazon announced EC2. During a leave from MSR to move these ideas into Microsoft products, I was the Group Program Manager for Windows Automated Deployment Services. My group created two of the core technologies for Microsoft's Dynamic Systems Initiative: the Dynamic Data Center and the System Definition Model.
Before BIG, I was a Researcher in the Systems and Networking Group. I worked on the Millennium Project; Continuum, a distributed version of the .NET Common Language Runtime (CLR); and Coign, a system that converted existing COM-based desktop applications into client-server distributed applications without access to application source code. I've worked on running DCOM over System Area Networks (SANs), the Detours package for instrumenting Windows binaries, and a proxy device driver for creating Windows NT user-mode drivers.
As a MSR summer intern, I developed the prototype for the protocol and implementation for what became, after reworking by a cast of hundreds, Microsoft's Advanced Streaming Format (ASF) and Windows Media Player.
I have Ph.D. (1998) and M.S. (1996) degrees in Computer Science from the University of Rochester, a B.S. (1992) degree in Physics from the University of Utah, and an A.S. (1987) degree from Dixie College.
While at the University of Rochester, I was part of Michael Scott's Cashmere team developing fast Software Distributed Shared Memory (SDSM) systems on memory mapped networks. I also modified the GNU Compiler Collection Objective-C runtime to support full multi-threading.
Before graduate school, I lead software development at a small start-up, Software Migrations, Inc.. My greatest achievement at SMI was DPX, an advanced struct-mapping and data-migration tool. We rocked the tax-preparation software market by creating programs that automatically migrated tax records from one tax package to another. With just 5 people, we produced over 100 separate transfer programs each year and ate the lunch of everyone else in the business. It was an excellent experiment in leveraging automated software development tools.
As an undergraduate, I contributed to the Linux 0.11 text console driver. Before that, I started programming in C as a teenager.
Personal
Aside from systems research, my biggest interests are my wife, my daughter, my son, and church. I'm a seventh generation mormon. My wife thinks I spend too much time with computers; my daughter and son tend to agree. They all smile when I come home from work and that makes me smile.
Interns
- Don Porter (2009) created a user-mode version of the Win32k subsystem to allow complete Windows application isolation for sandboxing, legacy compatibility, and process migration.
- Aaron Shulman (2008), prototype kiosk scenarios.
- Ryan Braud (2007) prototyped kiosk authentication using a TPM.
- César Spessot (2006) ported a subset of SQL to Singularity.
- Mike Spear (2005) created an entirely declarative I/O device driver configuration system for Singularity.
- Prince Mahajan (2004) wrote a number of device drivers and a transacted file system for Singularity.
- Tom Roeder (2004) worked on Singularity's application abstraction and installer.
- David Oppenheimer (1999) built a distributed hash table on an unnamed research OS.
- Rob Stets (1998) created a distributed DCOM-based implementation of the Win32 API called COP (the Component-based OS Proxy).
If you are interested in interning with my team, please see the instructions on our group page.
Professional Activities
- Program Committee, 8th ACM International Conference on Virtual Execution Environments (VEE 2012), London, UK, March 2012.
- Program Committee, Posters and Works-in-Progress, 23rd ACM Symposium on Operating Systems Principles (SOSP 2011), Cascais, PT, October 2011.
- External Review Committee, 17th ACM International Conference on Architectural Support for Progamming Languages and Operating Systems (ASPLOS 2012), London, UK, March 2012.
- External Review Committee, 16th ACM International Conference on Architectural Support for Progamming Languages and Operating Systems (ASPLOS 2011), Newport Beach, CA, March 2011.
- Steering Committee, USENIX 13th Workshop on Hot Topics in Operating Systems (HotOS XIII), Napa, CA, May 2011.
- Steering Committee, USENIX 12th Workshop on Hot Topics in Operating Systems (HotOS XII), Monte Verita, Switzerland, May 2009.
- Progam Committee, USENIX Advanced Technical Conference 2010, Boston, MA, June 2010.
- Program Committee, EuroSys 2009 . Nuremberg, Germany, April 2009.
- Program Committee, 8th USENIX Symposium on Operating Systems Design and Implementation (OSDI '08). San Diego, CA, December 2008.
- Program Committee, EuroSys 2008. Glasgow, Scotland, April 2008.
- Program Committee Chair, 11th Workshop on Hot Topics in Operating Systems (HotOS XI). San Diego, CA, May 2007.
- Sponsorships Chair, 20th ACM Symposium on Operating Systems Principles (SOSP). Brighton, United Kingdom, October 2005.
- Treasurer, 19th ACM Symposium on Operating Systems Principles (SOSP), Bolton Landing, NY, October 2003.
- Program Committee, Ninth International Conference on Architectural Support for Programming Languages and Operation Systems (ASPLOS-IX), Cambridge, MA, November 2000.
- Review Panel, NSF Information Technology Research (ITR) Program, Arlington, VA, April, 2000.
- Committee, 1999 DARPA ISAT Study on Probabilistic Methods in Computational Systems and Infrastructure, Woods Hole, MA, August 1999.
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
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
- James Larus and Galen Hunt, The Singularity System, in Communications of the ACM, vol. 53, no. 8, pp. 72-79, Association for Computing Machinery, Inc., August 2010
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
- 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
2007
- Galen C. Hunt and James R. Larus, Singularity: Rethinking the Software Stack, in ACM SIGOPS Operating Systems Review, vol. 41, no. 2, pp. 37-49, Association for Computing Machinery, Inc., April 2007
- Galen Hunt, Chris Hawblitzel, Orion Hodson, James Larus, Bjarne Steensgaard, and Ted Wobber, Sealing OS Processes to Improve Dependability and Safety, in Proceedings of the European Conference on Computer Systems (EuroSys), Association for Computing Machinery, Inc., Lisbon, Portugal, March 2007
2006
- Aiken, Mark, Fähndrich, Manuel, Hawblitzel, Chris, Hunt, Galen, Larus, and James R., Deconstructing Process Isolation, in ACM SIGPLAN Workshop on Memory Systems Performance and Correctness, ACM, San Jose, CA, October 2006
- Larus, James, Hunt, Galen, Tarditi, and David, {End Bracket} Singularity, in MSDN Magazine, vol. 21, no. 7, pp. 176, June 2006
- Manuel Fähndrich, Mark Aiken, Chris Hawblitzel, Orion Hodson, Galen Hunt, James R. Larus, and Steven Levi, Language Support for Fast and Reliable Message-based Communication in Singularity OS, in Proceedings of the EuroSys 2006 Conference, Association for Computing Machinery, Inc., April 2006
- Michael Spear, Tom Roeder, Orion Hodson, Galen C. Hunt, and Steven Levi, Solving the Starting Problem: Device Drivers as Self-Describing Artifacts, in Proceedings of the EuroSys 2006 Conference, Association for Computing Machinery, Inc., April 2006
2005
- Galen C. Hunt, James R. Larus, David Tarditi, and Ted Wobber, Broad New OS Research: Challenges and Opportunities, in Proceedings of Tenth Workshop on Hot Topics in Operating Systems (HotOs), USENIX, June 2005
1999
- Galen C. Hunt, Michael L. Scott, and Robert J. Stets, Component-based Operating System APIs: A Versioning and Distributed Resource Solution, in IEEE Computer, vol. 32, no. 7, pp. 36, IEEE Computer Society, July 1999
- Galen Hunt and Doug Brubacher, Detours: Binary Interception of Win32 Functions, in Third USENIX Windows NT Symposium, USENIX, July 1999
- Alessandro Forin, Galen Hunt, Li Li, and Yi-Min Wang, High-Performance Distributed Objects over System Area Networks, in Third USENIX Windows NT Symposium, USENIX, July 1999
- Galen C. Hunt and Michael L. Scott, Intercepting and Instrumenting COM Applications, in Fifth Conference on Object-Oriented Technologies and Systems (COOTS), USENIX, May 1999
- Galen C. Hunt and Michael L. Scott, The Coign Automatic Distributed Partitioning System, in Third Symposium on Operating System Design and Implementation (OSDI), USENIX, February 1999
1998
- Galen C. Hunt and Michael L. Scott, A Guided Tour of the Coign Automatic Distributed Partitioning System, in Second International Enterprise Distributed Object Computing Workshop (EDOC ), Institute of Electrical and Electronics Engineers, Inc., November 1998
1997
- Robert Stets, Sandhya Dwarkadas, Nikolaos Hardavellas, Galen Hunt, Leonidas Kontothanassis, Srinivasan Parthasarathy, and Michael Scott, CASHMERE-2L: Software Coherent Shared Memory on a Clustered Remote-Write Network, in Sixteenth ACM Symposium on Operating System Principles (SOSP), Association for Computing Machinery, Inc., October 1997
- Galen C. Hunt, Creating User-Mode Device Drivers with a Proxy, in Proceedings of the First USENIX Windows NT Workshop, USENIX, August 1997
- Leonidas Kontothanassis, Galen Hunt, Robert Stets, Nikolaos Hardavellas, Michal Cierniak, Srinivasan Parthasarathy, Wagner Meira, Sandhya Dwarkadas, and Michael Scott, VM-Based Shared Memory on Low-Latency, Remote-Memory-Access Networks, in Twenty-fourth Annual International Symposium on Computer Architecture (ISCA), Association for Computing Machinery, Inc., June 1997
1996
- Galen Hunt, Maged Michael, Srinivasan Parathasarathy, and Michael Scott, Accelerating a Distributed Component Architecture Over a Network Using a Direct Marshaling, in Information Processing Letters (IPL), vol. 60, no. 3, Elsevier , November 1996
- Galen Hunt, Maged M. Michael, Srinivasan Parthasarathy, and Michael L. Scott, An Efficient Algorithm for Priority Queue Heaps, in Information Processing Letters , Elsevier, November 1996
- Michael Scott, Wei Li, Leonidas Kontothanassis, Galen Hunt, Maged Michael, Robert Stets, Nikolaos Hardavellas, Wagner Meira, Alexandros Poulos, Michal Cierniak, Srinivasan Parthasarathy, and Mohammed Zaki, Implementation of Cashmere, in Workshop on Scalable Shared Memory Multiprocessors, October 1996
- Galen Hunt and Randal Nelson, Lineal Feature Extraction by Parallel Stick Growing, in Third International Workshop on Parallel Algorithms for Irregularly Structured Problems (IRREGULAR '96), Springer Verlag, August 1996
- Galen C. Hunt, Thomas Roeder, James R. Larus, Manuel Fahndrich, John D. DeTreville, Steven P. Levi, Benjamin Zorn, and Wolfgang Grieskamp, Self-Describing Artifacts and Application Abstractions, 11 November 2008
- Galen Hunt, Aamer Hydrie, Steven Levi, David Stutz, Bassam Tabbara, and Robert Welland, System and Method for Distributed Management of shared Computers, 29 July 2008
- Galen Hunt, Aamer Hydrie, Steven Levi, David Stutz, Bassam Tabbara, and Robert Welland, System and Method for Distributed Management of Shared Computers, 6 May 2008
- Galen Hunt, Gerald Cermak, and Jr. Robert J. Stets, Operating System Application Programming Interfaces and Methods of Using Operating Systems, 19 February 2008
- Galen Hunt and Jeff Simon, Filters to Isolate Untrusted Ports of Switches , 4 December 2007
- Galen Hunt and Jeff Simon, Establishing Computing Trust with a Staging Area, 4 December 2007
- Mathilde Brown, Charlie Chase, Kevin Grealish, Galen Hunt, Aamer Hydrie, David Noble, Geoffrey Outhred, Glenn Peterson, Bassam Tabbara, Alexander Torone, and Robert Welland, Architecture for Distributed Computing System and Automated Design, deployment and Management of Distributed Applications, 3 April 2007
- Galen Hunt, Aamer Hydrie, Steven Levi, David Stutz, Bassam Tabbara, and Robert Welland, System and Method for Distributed Management of Shared Computers, 3 April 2007
- Galen Hunt, Aamer Hydrie, Robert Welland, Bassam Tabbara, Steven Levi, and Jakob Rehof, System and Method for Designing a Logical Model of a Distributed Computer System and Deploying Physical Resources According to the Logical Model, 26 December 2006
- Galen Hunt, Stateless Distributed Computer Architecture with Server-Oriented State-Caching Objects Maintained on Network or Client, 24 October 2006
- Galen Hunt, Aamer Hydrie, Robert Welland, Bassam Tabbara, Steven Levi, and Jakob Rehof, System and Method for Logical Modeling of Distributed Computer Systems, 26 September 2006
- Galen Hunt, Aamer Hydrie, Steven Levi, Bassam Tabbara, Mark VanAntwerp, and Robert Welland, System and Method Providing Automatic Policy Enforcement in a Multi-Computer Service Application, 22 August 2006
- Aamer Hydrie, Galen Hunt, Steven Levi, Bassam Tabbara, and Robert Welland, Using Packet Filters and Network Virtualization to Restrict Network Communications, 15 August 2006
- Matilde Brown, Charlie Chase, Kevin Grealish, Galen Hunt, Aamer Hydrie, David Noble, Geoffrey Outhred, Glenn Peterson, Bassam Tabbara, Alexander Torone, and Robert Welland, Architecture for Distributed Computing System and Automated Design and Deployment and Management of Distributed Applications, 4 July 2006
- Bassam Tabbara, Galen Hunt, Aamer Hydrie, Steven Levi, David Stutz, and Robert Welland, System and Method For Restricting Data Transfers and Managing Software Components of Distributed Computers, 9 May 2006
- Galen Hunt, Tools and Techniques for Instrumenting Interfaces of Units of a Software Program, 2 May 2006
- Bassam Tabbara, Galen Hunt, Aamer Hydrie, Steven Levi, David Stutz, and Robert Welland, System and Method For Restricting Data Transfers and Managing Software Components of Distributed Computers, 21 March 2006
- Galen Hunt, Network Independent Profiling of Applications for Automatic Partitioning and Distribution in a Distributed Computing Environment, 3 January 2006
- Galen Hunt, Heavyweight and lightweight instrumentation, vol. 6988271, January 2006
- Galen Hunt, Dynamic Classification of Sections of Software, 18 October 2005
- Galen Hunt, Aamer Hydrie, Steven Levi, Bassam Tabbara, Mark Van Antwerp, and Robert Welland, System and Method Providing Automatic Policy Enforcement in a Multi-Computer Service Application, 5 July 2005
- Galen Hunt, Aamer Hydrie, Robert Welland, Bassam Tabbara, Steven Levi, and Jakob Rehof, System and method for designing a logical model of a distributed computer system and deploying physical resources according to the logical model, 14 June 2005
- Bassam Tabbara, Galen Hunt, Aamer Hydrie, Steven Levi, David Stutz, and Robert Welland, System and Method for Restricting Data Transfers and Managing Software Components of Distributed Computers, 26 April 2005
- Yi-Min Wang, Galen Hunt, and Alessandro Forin, Accelerating a Distributed Component Architecture Over a Network Using a Direct Marshaling, 30 November 2004
- Galen Hunt, Gerald Cermak, and Jr. Robert J. Stets, Methods of factoring operating system functions, methods of converting operating systems and related apparatus, vol. 6826760, November 2004
- Yi-Min Wang, Galen Hunt, and Alessandro Forin, Accelerating a Distributed Component Architecture Over a Network Using a Modified RPC Communication, 16 March 2004
- Galen Hunt, Interception of unit creation requests by an automatic distributed partitioning system, vol. 6629123, September 2003
- Galen Hunt, Service installation on a base function and provision of a pass function with a service-free base function semantic, vol. 6546553, April 2003
- Galen Hunt, Reversible load-time dynamic linking, vol. 6499137, December 2002
- Galen Hunt, Dynamic classification of sections of software, vol. 6381735,, April 2002
- Galen Hunt, Summarized application profiling and quick network profiling, vol. 6381628, April 2002
- Leonidas Kontothanassis, Michael Scott, Robert Stets, Sandhya Dwarkadas, Nikolaos Hardavellas, and Galen Hunt, Apparatus and method for maintaining data coherence within a cluster of symmetric multiprocessors, vol. 6341339, January 2002
- Galen Hunt, Heavyweight and lightweight instrumentation, vol. 6263491, July 2001
- Galen Hunt, Automatic detection of per-unit location constraints, vol. 6230312, May 2001
- Galen Hunt, Method and system for providing data files that are partitioned by delivery time and data type, vol. 6101546, August 2000
2010
- Jon Howell, galen hunt, david molnar, and Donald E. Porter, Living Dangerously: A Survey of Software Download Practices, no. MSR-TR-2010-51, May 2010
2006
- Galen C. Hunt, Mark Aiken, Paul Barham, Manuel Fahndrich, Chris Hawblitzel, Orion Hodson, James R. Larus, Steven Levi, Nick Murphy, Bjarne Steensgaard, David Tarditi, Ted Wobber, and Brian D. Zill, Sealing OS Processes to Improve Dependability and Security, no. MSR-TR-2006-51, April 2006
- Mark Aiken, Manuel Fähndrich, Chris Hawblitzel, Galen Hunt, and James Larus, Deconstructing Process Isolation, no. MSR-TR-2006-43, April 2006
2005
- Galen Hunt, James R. Larus, Martin Abadi, Mark Aiken, Paul Barham, Manuel Fahndrich, Chris Hawblitzel, Orion Hodson, Steven Levi, Nick Murphy, Bjarne Steensgaard, David Tarditi, Ted Wobber, and Brian D. Zill, An Overview of the Singularity Project, no. MSR-TR-2005-135, October 2005
2004
- Galen C. Hunt and James R. Larus, Singularity Design Motivation, no. MSR-TR-2004-105, November 2004
1998
- Alessandro Forin, Galen Hunt, Li Li, and Yi-Min Wang, High-Performance Distributed Objects over a System Area Network, no. MSR-TR-98-68, December 1998
1997
- Galen Hunt and Michael L. Scott, Coign: Efficient Instrumentation for Inter-Component Communication Analysis, February 1997
1996
- Galen C. Hunt and Michael L. Scott, Using Peer Support to Reduce Fault-Tolerant Overhead in Distributed Shared Memories, June 1996
