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

Intern Spotlight: Isaiah Stapleton, Red Hat Research Boston

Intern Spotlight: Isaiah Stapleton, Red Hat Research Boston

At Red Hat Research, we hire creative, passionate students who are 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...

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.

Technical Report: Benchmarking tunnel and encryption methodologies in cloud environments

Technical Report: Benchmarking tunnel and encryption methodologies in cloud environments

In this report, we benchmark the performance of various tunneling technologies to provide directions on their use in multi-cloud deployments. Based on the various experiments conducted on three different testbeds, we present quantifiable data which can be leveraged by operators and providers tasked with design and development decisions of multi-cloud providers and orchestrators.”

Beyond Cyber 01 course with The Academic College of Tel Aviv-Yaffo

Beyond Cyber 01 course with The Academic College of Tel Aviv-Yaffo

Red Hat Project Security engineers Haim Krasniker, Or Asaf, and Luiza Nacshon have completed the first Red Hat Beyond-Cyber-01 course with MTA (The Academic College of Tel Aviv-Yaffo). The course took place in the Ra’anana Red Hat Office, which allowed teachers and students the opportunity to collaborate face to face.

Encouraging mentees to thrive: How to be a good mentor

Encouraging mentees to thrive: How to be a good mentor

An internship is a great opportunity for a company to evaluate candidates in a time-limited job role, but it is also a chance for interns to learn, gain work experience, and evaluate that company as a potential future employer; this is an equally important part of the position.