Introducing students to FreeBSD continues to be a high priority for the Foundation. This year, in addition to our participation in Google Summer of Code and the University of Waterloo Co-Op program, the Foundation hired Jake Freeland, a previous GSoC student, to intern with us for the summer. We sat down with Jake to learn more about him and the work he has been doing to support FreeBSD.
Name: Jake Freeland
Q: Tell us a little bit about yourself and where you are in your education journey.
I have been interested in computer hardware for as long as I can remember. This characteristic naturally led me into operating systems, the software that gets closest to the hardware. I am currently a student at the University of Minnesota – Twin Cities that is graduating with a B.S. in Computer Science in December 2023.
Q: How many internships have you held?
I have worked with the FreeBSD Foundation once before, in 2022, on behalf of the Google Summer of Code initiative.
Q: Why did you want to work for the FreeBSD Foundation?
FreeBSD immediately came to mind when I started seeking internships. I had prior experience as a system administrator and FreeBSD was one of my favorite operating systems to work with. I knew their community was knowledgeable and I figured that contributing to the project would be an excellent way to transition into kernel development.
Q: What are you hoping to learn from this internship?
My experience with FreeBSD has taught me how to work with large codebases. I feel comfortable traversing their src tree and I have become accustomed to formatting my code changes into reviewable commits/patches. Working with the Capsicum security sandbox has also taught me to think with security in mind. I feel I have gained enough intuition to detect and audit code for major security issues.
Q: What are you currently working on?
I started the internship by extending capability violation tracing in FreeBSD’s ktrace facility. With my changes, developers can trace and collect verbose capability violation diagnostics when a program is not in capability mode.
Next, I isolated FreeBSD’s system logging utility, syslogd, in a Capsicum security sandbox. The syslogd daemon runs with root privileges, so it is a high profile target for security attacks. Putting syslogd into a sandboxed environment should prevent detrimental effects in the case of a syslogd security vulnerability. With this experience, I created a how-to guide on sandboxing programs using Capsicum: https://cdaemon.com/posts/capsicum.
Q: How has the FreeBSD experience been so far?
I enjoyed working with the FreeBSD Foundation and plan to continue contributing to the project. I was particularly pleased to see that the Foundation is acknowledging the need for more young developers; I will be working with them to pilot a new program to introduce college students to FreeBSD.