Jonathan Cameron: Getting Started on Linux Kernel

Jul 9, 2020 | Blog, Internship

Jonathan Cameron is a rising senior at Boston University studying Computer Engineering. He spoke with the Red Hat Research (RHR) team about his internship project and why this project is important for future interns working on the Linux kernel. 

RHR: Jonathan, how did you come across Red Hat? 

Jonathan Cameron:

I was in the operating systems class at Boston University with Professor Manuel Egele. Larry Woodman from Red Hat was a guest lecturer and would offer his expertise on the subject matter. So, we got to know him through that. At the end of the semester, Larry stood up and said, “Hey, if you want an internship or you’re interested in operating systems, send me an email with your resume and I’ll get back to you.” So I went ahead and did that. And then a few weeks later, I got an email back saying, “Hey, if you’re still interested,” which I was, “we’ll move forward and get you signed up for the internship.” I was really interested in the operating systems class and the opportunity to actually work on a real project rather than the model scenario from class was exciting.

RHR: Congratulations! Most people have not done a virtual internship before so I’d be curious to know what the experience has been like for you so far?

Jonathan Cameron:

I think it’s quite good. It gives a bit of freedom to it. I’m currently in the UK and it’s not an inconvenience working Boston hours. It works out actually quite well. I can exercise in the morning and then work later into the evening. 

RHR: Have you had a chance to interact with the other interns?

Jonathan Cameron:

Yes. I’m on the Red Hat intern chat group. Even though I’m the only intern working on the kernel project, there is some great interaction on the chat and I’ve made a couple of friends. 

RHR: Okay. That’s great. I think that’s a good segue to talk about the project you’re working on.

Jonathan Cameron:

During the first month of my internship, I put together a guide for future interns to provide base knowledge of what to expect when working on the kernel. It’s like a kernel workshop that we did in the operating systems class. And then I’ve compiled it with some other things to create an exercise that will help interns become familiar with building and installing their own Linux kernel. And then also adding loadable modules, system calls, and editing the/proc file system with counters on the page-cache hits and misses.

RHR: Why is this important? 

Jonathan Cameron:

Well, I think if I was thrown straight into the actual project that I’m working on, I would be in quite deep water. So this exercise is very useful for anyone to familiarize themselves with the environment they’ll be working with. Like I said, classes are good but it’s not like the real world. For instance, this was the first time I’d seen the system call table. I’d never implemented my own in the past. And as primitive as it is in the workshop, this exercise walks users through the steps they’d need to perform to get a new syscall into the kernel. If I hadn’t had that, I wouldn’t know what I was doing. That’s what makes it useful and what makes it important.

My project specifically focuses on debugging. If there’s an error returned in the kernel, it could occur in all sorts of places. So what I’m going to be adding is an option to show the stack, like dump the stack out on the kernel to show where the error occurred. This will make it easier to debug things.

RHR: What’s the most exciting part of this project?

Jonathan Cameron:

I’m enjoying getting my hands dirty with the source code, looking through source code files, and rebuilding and reinstalling my kernel. This exposure is great.

RHR: Based on your experience, what advice would you share with students who are seeking internships?

Jonathan Cameron:

In my case, having Larry lecture in the operating systems class was really good. This happens every now and again with me as I’ll just stumble across something because someone will say, “Hey, if you want to check this out, send me an email and we’ll get you included on it.” And so I go and give my name and email address. And sometimes there’s positive feedback. So, I’d say, if there’s an opportunity, go and take it…You miss a hundred percent of the shots you don’t take, 

RHR:That’s very good advice Jonathan. Thank you.

To get started on Linux kernel programming and debugging, Jonathan’s mini course labs can be found here.

Related Stories

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...

Intern Spotlight: Jake Correnti, Red Hat Research Boston

Intern Spotlight: Jake Correnti, 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...

Getting started with data science and machine learning

Getting started with data science and machine learning

Data science has exploded in popularity (and sometimes, hype) in recent years. This has led to an increased interest in learning the subject. With so many possible directions, it can be hard to know where to start. This blog post is here to help.

The (open) source of cutting-edge innovation

The (open) source of cutting-edge innovation

by Gordon Haff, technology advocate at Red Hat Where do people come together to make cutting-edge invention and innovation happen? One possible answer is the corporate research lab. More long-term focused than most company product development efforts, corporate labs...