For the past 40 years or so, I’ve been doing systems research in the general areas of operating systems and distributed systems, with occasional excursions into security, end-user applications, and one physical gadget (the PJB). For historical details, see the personal details and publication list pages on my personal web site (which also contains a large pile of other stuff, mostly only distantly related to computer science).
My current research is on the (in)security of the X.509 PKI, as used by systems like the HTTPS protocol or various code-signing schemes. We have a large database of X.509 certificates, some results from analyzing them, and some proposals for improving the situation. We report some preliminary results in our forthcoming paper at HotOS 2013.
Previously, I was working on the Beehive project. Beehive is a multi-core computer, implemented on an FPGA. It is designed to enable research and teaching at the boundary of computer architecture and low-level systems programming. Beehive users have access to the raw hardware design (in Verilog), a collection of low-level software libraries (in C), and a toolchain with a C compiler. They can modify any or all of these, exploring "what-if" questions by experiment on a 13-core 100 MHz computer. We have made Beehive available to several universities, including MIT and ETH Zurich, with full source and an open license. Beehive is available only to those who have signed our license agreement.
Other work at Microsoft, since coming here in 2001, has included Automatic Mutual Exclusion, Dryad, Singularity security, Desktop on a Keychain, LBOW (unpublished) and Penny Black.
My work email is b@m, where b=birrell and m=microsoft.com; my personal email is a@b.org, where a=andrew and b=birrell.
- Roxana Geambasu, Andrew Birrell, and John MacCormick, Experiences with Formal Specification of Fault-tolerant File Systems, in Proceedings of the 38th Annual International Conference on Dependable Systems and Networks, Anchorage, Alaska, June 2008
- Martin Abadi, Andrew Birrell, Tim Harris, Johnson Hsieh, and Michael Isard, Dynamic Separation for Transactional Memory, no. TR-2008-43, March 2008
- Martín Abadi, Andrew Birrell, Tim Harris, and Michael Isard, Semantics of Transactional Memory and Automatic Mutual Exclusion, in Proceedings of the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, ACM, San Francisco, California, USA, January 2008
- Michael Isard and Andrew Birrell, Automatic Mutual Exclusion, in Proceedings of the Eleventh Workshop on Hot Topics in Operating Systems, San Diego, CA, May 2007
- Andrew Birrell, Michael Isard, Chuck Thacker, and Ted Wobber, A Design for High-Performance Flash Disks, in Operating Systems Review, vol. 41, no. 2, pp. 88-93, Association for Computing Machinery, Inc., April 2007
- Michael Isard, Mihai Budiu, Yuan Yu, Andrew Birrell, and Dennis Fetterly, Dryad: Distributed Data-parallel Programs from Sequential Building Blocks, in Proceedings of the 2007 Eurosys Conference, Association for Computing Machinery, Inc., Lisbon, Portugal, March 2007
- Ted Wobber, Aydan Yumerefendi, Martín Abadi, Andrew Birrell, and Daniel R. Simon, Authorizing Applications in Singularity, in Proceedings of the 2007 Eurosys Conference, Association for Computing Machinery, Inc., Lisbon, Portugal, March 2007
- Muthukarrupan Annamalai, Andrew Birrell, Dennis Fetterly, and Ted Wobber, Implementing Portable Desktops: a New Option and Comparisons, no. TR-2006-151, October 2006
- Martín Abadi, Andrew Birrell, and Ted Wobber, Access Control in a World of Software Diversity, in Proceedings of the Tenth Workshop on Hot Topics in Operating Systems, USENIX, Santa Fe, NM, June 2005
- Andrew Birrell, An Introduction to Programming with C# Threads, no. TR-2005-68, May 2005
- Andrew Birrell, Implementing Condition Variables with Semaphores, in Computer systems: theory, technology, and applications, pp. 29-37, Springer-Verlag, December 2004
- Martín Abadi, Andrew D. Birrell, Mike Burrows, Frank Dabek, and Ted Wobber, Bankable Postage for Network Services, in Proceedings of the 8th Asian Computing Science Conference, Springer-Verlag, Mumbai, India, December 2003
