Back to Programs

Operating systems

The FreeBSD Project

An OS for servers to embedded devices

POSIX shellassemblycgnu makellvm

Participation history

11 GSoC years

2026

11 projects

Official year page

NanoBSD Reimagined

NanoBSD has long provided a reliable framework for building embedded FreeBSD images, but its legacy pipeline remains monolithic and resource...

Add Networking Support to kboot

This project introduces a network abstraction layer to libkboot, enabling boot artifacts to be fetched from remote sources without disrupting the...

Enhancing Arduino and ESP32 Development Ecosystem on FreeBSD

Problems to solve: - Porting and stabilizing Arduino CLI for FreeBSD - Fixing USB and serial communication workflows for reliable device interaction...

Live-patching for the FreeBSD kernel

This project aims to add a livepatch subsystem to dynamically update kernel code. Having a way to patch bugs or security vulnerabilities without...

Netlink Payload Decoding Infrastructure for FreeBSD Tracing Tools

This project improves Netlink support in FreeBSD tracing tools by enabling structured decoding of Netlink message payloads. Currently, truss(1) shows...

Capsicumize fts(3)

fts(3) is the file hierarchy traversal library used by nearly every recursive utility in FreeBSD like find, rm, ls, chflags, du, and others. It...

Bluetooth Support for HID Devices

Currently, Bluetooth HID support in FreeBSD is limited to the bthidd daemon. The daemon, while functional, uses its own custom userspace drivers...

Native MPLS Support for FreeBSD

This proposal lays out plans to bring native MPLS support into the FreeBSD kernel. MPLS—Multi-Protocol Label Switching—is a fast packet-forwarding...

EFI-Backed Persistent Boot Counter for Early-Boot HMAC in FreeBSD

This project introduces a firmware-backed persistent boot counter into the FreeBSD base system to address the early-boot entropy problem. During...

Enhancing Zoned Storage support on FreeBSD

This proposal aims at implementing the following quality-of-life improvements to FreeBSD's Zoned Storage support: NVMe ZNS support; Zone-aware...

Reimplement udmabuf to FreeBSD

This project aims to implement the udmabuf (User DMA Buffer) driver on FreeBSD, a crucial mechanism for zero-copy memory sharing between userspace...

2025

12 projects

Official year page

VMM Accelerator support for QEMU

This project aims to add VMM acceleration support to QEMU on FreeBSD, bridging the gap between QEMU’s userspace emulation and FreeBSD’s kernel-based...

Testing & Development for Rust FreeBSD Device Drivers

The current FreeBSD environment lacks robust automated testing for Rust kernel modules and officially maintained Rust drivers. Past projects for Rust...

Full Disk Administration Tool for FreeBSD

FreeBSD currently lacks a tool to manage partitions and manipulate file systems like GParted does in Linux. The proposed project aims to use sade, a...

Adding QCOW2 compressed image support to mkimg(1)

mkimg(1), a FreeBSD tool used for creating disk images in various formats, currently lacks support for creating compressed QCOW2 images. This project...

Sockstat UI Improvements

Problem Statement: Sockstat is a useful FreeBSD utility for displaying active sockets, but its current output format is rigid and lacks flexibility....

ACPI Initialization in Loader With Lua Bindings

Intel™’s Advanced Configuration and Power Interface (ACPI) is an industry standard specification that revolutionized power management by putting it...

Speed up the FreeBSD boot process

This proposal aims to accelerate FreeBSD’s boot process by using the TSLOG framework to identify and target specific delays. Initial profiling...

WiFi Management UI

This project aims to build a CLI and TUI utility for easy WiFi and network management on the FreeBSD operating system. The base features for...

Implement Journaling for FreeBSD's ext3/4

This project aims to implement Linux-compatible journaling within FreeBSD's ext filesystem, which is a standard feature in Linux's ext3 and ext4...

FreeBSD Power Profiling Tool

FreeBSD previously lacked process-level power profiling, relying only on ACPI whole-system statistics. To address this, I built a FreeBSD-native...

mac_do(4) and mdo(1) improvements

The FreeBSD mac_do(4) and mdo(1) utilities enable controlled transitions of user and group credentials without relying on inherently risky setuid...

Port FreeBSD to QEMU microvm

QEMU microvm is a lightweight virtual machine environment designed to run operating systems quickly with few hardware dependencies. This project...

2024

9 projects

Official year page

Refactor syscall creation script

The current FreeBSD system call creation script was implemented to streamline the introduction of system calls into the FreeBSD kernel. It’s a...

Improving FreeBSD user emulation for various architectures.

The proposal is to improve QEMU's emulation capabilities on FreeBSD to support and fix issues related to architectures such as ARM, RISC-V, and...

Improving Repair Ability of the FreeBSD Installer

The current FreeBSD installer lacks the environment for users to conveniently repair their system or install packages inside the installer. This...

Speeding up the FreeBSD Boot Process

There is always room for improvement, especially the speed at which FreeBSD boots. The aim of this project is to identify any ineffiencies in the...

Zero-cost conditional execution mechanism

It is common for kernel subsystems to conditionally include functionality, based on compile time and runtime configurations which are relatively...

UFS4fuse: support FreeBSD's UFS2 with fusefs

FreeBSD's UFS is arguably the longest standing UNIX file system still under active development. It is well documented and has many interesting...

IPv6 support and cleanup of address family dependency in userland utilities

FreeBSD boasts a plethora of userspace command tools utilizing IPv4 network programming APIs and exhibiting address family dependency. With the...

Port amd64 SIMD libc optimizations to riscv64

The goal of the project is to port the SIMD optimized routines written for amd64 to riscv64. This will be accomplished using SWAR techniques. Because...

Porting amd64 libc SIMD enhancements to arm64 (aarch64)

This Google Summer of Code (GSOC) project aims to improve the performance of the libc string manipulation function of the FreeBSD operating system on...

2023

6 projects

Official year page

LLDB kernel module improvement

Problem statement: LLDB doesn't support module information in kernel space now. So in my proposal, I want to implement full kernel module support for...

Calling the BATMAN: Free Networks on FreeBSD

BATMAN (Better Approach to Mobile Ad-hoc Networking), as developed and used by the Freifunk project, is a routing protocol for (primarily wireless)...

Physical memory anti-fragmentation mechanisms

The use of superpages in modern hardware and operating system yielded important performance benefits. Unfortunately, allocating superpages can often...

Port SquashFuse to the FreeBSD kernel

SquashFS is a read-only filesystem targeted for small embedded environments, where memory and disk space is constrained. Squash-Fuse is a...

CI Test Harness for bootloader

FreeBSD supports multiple architectures, file systems, and disk-partitioning schemes. Currently, there is a script named full-test.sh located in...

Integrate mfsBSD into the release building tools

This project integrates mfsBSD into the FreeBSD release tool set, creating an additional target of mfsBSD images (.img for disc and .iso for optical...

2022

7 projects

Official year page

Add sta, hostap and adhoc mode to wtap wlan simulator

Wtap is a dummy wifi driver, which can be used to test wireless protocol stack and userland applications. Wtap introduces the following things: - A...

FreeBSD Bootloader quality of life improvements

The FreeBSD bootloader prompt currently doesn't support editing keys, history, or any kind of command/file/directory completion (and any attempt to...

Rewrite PJDFSTest suite

This project aims to rewrite the PJDFSTest suite. Today, the tests are written in a mix of shell script and C. This approach has provided some...

Engineer a Feature Complete Port of Intel’s igt-gpu-tools for FreeBSD

Intel’s igt-gpu-tools serves as a generic testing suite for drm drivers on Linux. The igt-gpu-tools suite is seperated into tests and tools where...

Linuxulator on powerpc64

This project aims to implement the functionalities to run Linux binaries on FreeBSD on powerpc64 architecture. This has already been achieved for...

Instruction-Level Dynamic Tracing

The objective of this project is to implement a new DTrace provider for dynamically tracing all instructions in a given function. FBT (Function...

bhyve debug server enhancements

Bhyve is a modern type 2 hypervisor originally written for FreeBSD. The goal of this project is to enhance the functionality of its debugging server....

2021

5 projects

Official year page

Input method in FreeBSD virtual terminal

Currently, the FreeBSD virtual terminal driver vt(4) does not support inputting CJK characters directly in the virtual terminal, so our project idea...

Netlink proposal

Netlink proposal - motivation, work done

XFS FUSE FreeBSD Port

In this project I aim to port a read-only implementation of the XFS filesystem to FreeBSD. The implementation should be done in userland through the...

Syzkaller improvements

Project's goal is to enhance syzkaller support for FreeBSD. The project involves adding syscalls and ioctl calls to improve coverage, testing...

Sound mixer improvements

FreeBSD's default mixer utilities are not the best; mixer(8) is very basic and outdated, end users have to tweak sysctl(8) values to do simple...

2020

6 projects

Official year page

NetFPGA SUME FreeBSD device driver

NetFPGA is an open-source project aimed to foster networking hardware prototyping. Their latest and de-facto standard development board is NetFPGA...

Add audit(4) support to NFS

Security event auditing permits the selective and fine-grained configurable logging of security-relevant system events for the purpose of post-mortem...

eBPF XDP Hooks

The eBPF eXpress Data Path (XDP) allows eBPF programs to be run to filter received packets as early as possible, avoiding unnecessary processing...

Network Configuration Libraries

FreeBSD has high quality tools for the management of the network, which includes tools to configure and manage interfaces, the firewalls and more....

Kernel Dump Regression Testing

Testing is an integral and important part of any software development cycle, open or closed. Given a fully automated test system, we can run a broad...

Capsicumization of the base system

A sandbox is a protection framework in computer security for separating running programs, typically in an attempt to prevent system failures or...

2019

6 projects

Official year page

MAC policy on IP addresses for FreeBSD Jail

With the introduction of VNET(9) in FreeBSD, Jails are free to set their IP addresses. However, this privilege may need to be limited by the host as...

Kernel sanitizers

FreeBSD includes support for the kernel coverage sanitizer and undefined behaviour sanitizer, however support for the other sanitizers is missing....

Separation of Ports Build Process from Local Installation

This project aims to provide the capability of the FreeBSD ports infrastructure to safely and cleanly build ports and all their dependencies without...

Dual-stack ping command

Ping has been one of the basic most used utilities for network diagnostic. Because of this the major aspect concerning it is ensuring its long term...

Virtual memory compression

Virtual memory compression is a memory management technique implemented by multiple operating systems ranging from Windows to Darwin. Depending on...

Firewall Test Suite

A framework is to be built, which would be able to run a given test on all the firewalls (pf, ipfw, ipf) since there are a lot of commonalities in...

2018

8 projects

Official year page

Import the Xen grant-table bus_dma(9) handlers from OpenBSD

Xen uses the grant table interface to grant foreign domains access to page frames and to do ownership transfer. Each domain maintains its own grant...

eBPF Implementation for FreeBSD

This project proposes eBPF implementation for FreeBSD. It will have very basic functionality such as maps, interpreter, JIT compiler for x86-64 and...

Convert all PCI drivers attachments to be table driven and mark with PNP_INFO

This project is being undertaken under the mentorship of FreeBSD organization. The goal of the project is to convert all the PCI drivers attachments...

Extensions to the netmap framework

The project has 3 major goals: Extend VALE switches to support the IEEE 802.1Q standard Extend netmap to support buffer offsets Write a testing...

Implementation of a user space interface for GPIO interrupts

FreeBSD already has support for interrupts implemented in the GPIO controller drivers of several SoCs, but there are no interfaces to take advantage...

Oblivious Sandboxing with Capsicum

Security is of paramount importance. Capsicum sticks to it principles, but is finite, this project aims on making it more widely applicable....

Porting Microsoft's CoreCLR, CoreFX, and PowerShell to FreeBSD

PowerShell is a widely used administration tool in Windows Server workloads. This project aims at porting it to FreeBSD in order to make it easier...

Regression Test Suite for Audit Framework

FreeBSD has an audit subsystem which is responsible for monitoring a variety of security-relevant system events, such as user-logins, configuration...

2017

5 projects

Official year page

NVMe controller emulator for bhyve

This project is implementation of disk controller emulator for bhyve. I'l implement is NVMe controller. NVMe is defined by Non-Volatile Memory Host...

A better Mergesort for FreeBSD

The FreeBSD implementation of mergesort is fundamentally flawed in that it cannot sort data smaller than half of the size of a pointer. I aim to...

A New ZFS Boot Environment Management Library & Tool For FreeBSD

The purpose of this project is to build a convenient framework for managing ZFS boot environments in FreeBSD. Currently, boot environments are...

Add support for usbdump file-format to wireshark

The usbdump program is an useful tool for capturing USB traffics, but its output is not very convenient for further researching. Wireshark has a...

Smoke testing of all base utilities

Smoke testing is a set of light tests which are done for checking basic functionalities of a software to ascertain if the crucial functions work...

2016

12 projects

Official year page

TCP/IP Regression Test Suite

Regression testing is one of the most critical elements of the test artifacts and proves to be one of the most preventive measures for testing a...

Support bhyve as a Vagrant VM backend

Vagrant is a tool to create and manage virutal environment, which can be used to for creating and configure lightweight, reproducible, and portable...

Adding SCSI passthrough to CTL

The purpose of this project is to export physical SCSI devices with all their features over iSCSI through CTL as an actual SCSI target.

Ethernet Ring Protection Switching

Ethernet Ring Protection Switching (ERPS) provide sub-50ms protection and recovery switching for Ethernet traffic in a ring topology and at the same...

libnv improvements

The libnv library allows to easily manage name value pairs as well as send and receive them over sockets. You are able to add bools, strings,...

Grant-Table User-Space Device

A grant-table user-space device will allow user-space applications to map and share grants (Xen way to share memory) among Xen domains.

Non-BSM to BSM Conversion Tools

Let's imagine a FreeBSD server which collects audit records from machines that are not necessarily using BSM as the format of their audit records....

High-performance P4 software switch using netmap

High-performance P4 software switch using netmap Software switches are a key component of any cloud infrastructure, and even proposal focused on...

HD Audio device model in userspace for bhyve

The bhyve hypervisor does not have any sound card emulation at the moment. This project is proposed by Peter Grehan and aims to implement the High...

Improving libvirt support for bhyve

The primary aim of this project would be to improve libvirt support for bhyve. Missing API functions in the libvirt bhyve driver shall be implemented...

High-performance TCP/IP networking for bhyve VMs using netmap passthrough

Modern cloud computing technologies require powerful virtualization tools. The bhyve hypervisor is currently missing an high performance Virtual...

Add SCSI passthrough to CTL

CTL is the FreeBSD SCSI target layer. There are various SCSI commands, but it's usually used for block-level access. This projects focuses on making...