Intern spotlight: Eric Munson builds guitars and Unikernel Linux

Apr 22, 2024 | Blog

PhD interns at Red Hat Research’s partner universities play a pivotal role in bringing together the cutting-edge thinking of research institutions with the real-world expertise of industry. The PhD program enables long-term research partnerships that provide greater potential for projects that have a significant impact on the open source ecosystem and improve our engineering solutions.

This month, we highlight the work of Eric Munson, a software engineering research intern and PhD student at Boston University planning to defend his dissertation in mid-2025. His work with Red Hat Research has focused on the Unikernel Linux (UKL) project. The project aims to create a kernel that can be configured different ways for solutions at different points in the spectrum between a general-purpose operating system, amenable to a large class of applications, and a highly optimized, possibly application- and hardware-specialized, unikernel. The UKL team’s most recent progress was published in the proceedings of the Eighteenth European Conference on Computer Systems (EuroSys ‘23). See more in Eric’s GitHub repository.

What does your current research focus on?

My current work builds on our UKL paper and focuses on event handling and latency. I am using an older idea from operating system research—allowing lower layers to call higher ones—to provide a new API for event-driven programs. In the usual approach, an application registers interest in certain events with the kernel and then waits for one or more of these events to occur. At this point, the application must unpack the notifications and run code in response. 

My system adds a description of work that needs to be done in response to an event and, rather than wait on notification, the registered work is scheduled by the OS directly in response to an event. My aim is that this API, which more closely models low-level interrupt handlers, will allow application developers to focus on the concurrency requirements of their application rather than event management and dispatch.

I believe that this interface will be easier to program against, but the main goal is to improve tail latencies, which will come from allowing developers to specify both concurrency and locality requirements when registering event handlers and from giving them fine control of scheduler policies around event handlers.

What makes you interested in open source research?

My first job out of undergrad was working for IBM on Power server enablement with the Linux Technology Center in Beaverton, Oregon. I knew I wanted to work on operating systems, and I was strongly attracted to owning the software running on my hardware instead of licensing it, so the move to working on the Linux kernel was a natural one. Free and open source kernels allow us to experiment with new ideas in a way that is much more difficult on proprietary systems, and the large development community is an excellent forum for refining ideas.

Free and open source kernels allow us to experiment with new ideas in a way that is much more difficult on proprietary systems, and the large development community is an excellent forum for refining ideas.

Why did you decide to come back to a PhD program from industry?

First, I wanted to specialize and indicate my interests to future employers. I have been offered jobs building Java web services and phone apps, and while I appreciate that there are people who like doing that work, it leaves me cold. I see a PhD in operating systems as a strong signal for the type of work I want to do in the future. Second, I spent much of my time as a professional software engineer implementing other people’s ideas on how the software I was working on should be built. While it was very educational and enjoyable work, I want to be generating the ideas on how we design and build systems as well as implementing them.

How has working with both faculty and Red Hat engineers benefited your work?

My advisors, Angela Demke-Brown (University of Toronto) and Orran Krieger (Boston University), have provided excellent guidance and helped me tame the engineer in me that wants to see a fully fleshed-out system design before experimenting. Jonathan Appavoo (Boston University) has provided wisdom and help in the trenches of debugging complex systems interactions. At Red Hat, I’m indebted to (Senior Principal Software Engineer) Richard Jones for his deep knowledge in QEMU and core kernel and his contributions to the Unikernel Linux (UKL) project, to (US Research Director) Heidi Dempsey for support and always knowing the right person to talk to about most any problem, and to Senior Distinguished Engineer Larry Woodman for knowing just about everyone in the kernel community.

Completing a PhD and working as a research intern while parenting must be challenging. What have you learned?

Any two of these three things make time management a useful skill; all three make it a requirement. Spending 12 years in industry before coming back to a PhD really helped with this by giving me a space to learn several project management techniques to help with problem decomposition and task prioritization.

According to my (then) 5-year-old, it is “silly” that I go to school just like she does. My approach to school is certainly different than it would have been if I had continued from undergrad to graduate school. I don’t do the all-nighter like a straight-from-undergrad student might do. I don’t think that method of working is a habit that should be taught, and I think coming back to graduate school after working gave me the knowledge that crunch time is often ineffective and produces code that generally needs to be rewritten later. 

I also feel I got way more out of my classes now than I did in undergrad because I had a more mature approach to learning and a better understanding of the topics I really found interesting. 

Tell us about your union work.

I am a union representative for BUGWU (BU Graduate Workers Union) in computer science. It is a fancy title for someone who talks to coworkers about making our working environment and conditions better. I started doing it because no one else in the department (at the time) was interested and able to do it, but I have come to really love the work and I find it deeply rewarding in a very different way from research.

Another youngest kid story: we all went to last Friday’s family picket day at BU, which meant I had to explain what a union and a strike were all about. After telling her why we were striking she said, “They should pay you like 80 dollars! Or maybe 90.”

I started with building from parts (the black soloist) and as a class (red strat), then went to building kits (orange, green, and cherry sunburst). I am currently working on a from-scratch PRS 22 clone as my first completely DIY instrument.

What else should we know about you?

I love history and listen to several history and politics podcasts. We met our cat when I was about halfway through “The History of Rome” by Mike Duncan, hence her name, Felis Catus Augusta Bostonica Maxima, or Augie for short.

I build guitars. I thought I wanted to learn to play guitars and felt that if I built my own instrument I would have more incentive to practice it. In the process, I learned that while it didn’t encourage more practice, I actually loved the woodworking and care that goes into making an instrument more than playing.

I am also interested in self-hosting services. I am always excited to see the kinds of things being offered by Amazon/Google/Apple, but I don’t like that they are usually vehicles for extracting data about users for marketing or squeezing users once they are committed to using a service (see Cory Doctorow on enshittification). I self-host most of the services I use and have hacked on a few of them. Self-hosting has been a big part of my systems education.

Related Stories

Fedora Linux transition for quantum resistant cryptography

Fedora Linux transition for quantum resistant cryptography

By Dmitry Belyavskiy While numerous robust post-quantum (PQ) standards exist, along with various projects implementing them, widespread adoption for communication and data protection hinges on their integration into mainstream OS distributions. By incorporating these...

Correctness in distributed systems: the case of jgroups-raft

Correctness in distributed systems: the case of jgroups-raft

By José Bolina Building distributed systems is complex work, but strong primitives with well-defined guarantees and an expected behavior can make it easier. With stronger guarantees in primitives come strong safety and correctness verification requirements. In some...

Hackathons power open source technology and innovative research

Hackathons power open source technology and innovative research

By Chris Tate, Principal Software Engineer, Red Hat Christopher Tate is a lead software engineer for logging, metrics, alerts, and AI/ML smart data research projects in the New England Research Cloud (NERC) environment. He is also the creator of the Smart Village...

Intern Spotlight: Christina Xu, Red Hat Research Boston

Intern Spotlight: Christina Xu, Red Hat Research Boston

At Red Hat Research, we hire creative, passionate students ready to work and learn with a global leader in open source solutions. Our interns bring fresh ideas and new connections to challenging problems in the open source community, unlocking their own potential...