Fetching the latest programs, projects, and workspace data.

An OS for servers to embedded devices
Showing 5 of 56 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: Deepan Sai
Problems to solve: - Porting and stabilizing Arduino CLI for FreeBSD - Fixing USB and serial communication workflows for reliable device interaction - Developing a unified CLI-based workflow for building, flashing, and monitoring devices Standardize device detection and access using FreeBSD’s /dev interfaces and devd. Address permission and driver issues, implement reliable serial port identification, and ensure stable communication for flashing and monitoring through tested configurations. Build a wrapper CLI that integrates Arduino CLI, ESP32 tooling, and serial monitoring into a single interface. Automate common tasks (build, flash, monitor), reduce manual setup, and provide a consistent developer experience with clear commands and documentation.
Mentors: Student: fedang
This project aims to add a livepatch subsystem to dynamically update kernel code. Having a way to patch bugs or security vulnerabilities without restarting the whole machine would be very useful, especially on servers, which make up the majority of FreeBSD usage. Patches will be delivered via kernel modules, utilizing ELF headers and CTF/DWARF metadata to accurately resolve internal symbols. The patching mechanism will redirect control flow by inserting trampolines at the prologue of target functions. To ensure system stability, patches will be safely applied using a stop-the-world consistency model via smp_rendezvous, with safeguards to prevent the modification of critical routines like the SYSINIT routines. Stack trace analysis will also be explored to more accurately detect function quiescence.
Mentors: Student: Majed Alkhaleefah
Currently, Bluetooth HID support in FreeBSD is limited to the bthidd daemon. The daemon, while functional, uses its own custom userspace drivers rather than the existing HID drivers in the kernel. Of these userspace drivers, only keyboards and mice are supported. This project proposes a more integrated design via a new Netgraph node type: ng_bthid. This node will hook to ng_l2cap and function as a virtual transport layer that interfaces directly with hidbus. The aim is to make HID support more transport-agnostic, moving away from the previous approach of maintaining separate, redundant drivers for devices over Bluetooth.
Mentors: Student: Angshuman Sengupta
NanoBSD has long provided a reliable framework for building embedded FreeBSD images, but its legacy pipeline remains monolithic and resource intensive, source based workflow. This project modernizes the NanoBSD image creation process by allowing decoupling of the build and assemble phases using pkgbase which is a package-driven assembly model. Furthermore by using tools like makefs, mtree, and mkimg, the new pipeline will enable fast, reproducible, and cross-architecture image generation without requiring root access. The key deliverables will include - PkgBase Integration into the current NanoBSD image creation pipeline, modernize the Boot support by implementing GPT layouts and UEFI booting for both x86 and aarch64 (ARM). The project will also focus on providing tier 1 support for Aarch64 devices. Also if time allows the support for ZFS filesystem will be added in the NanoBSD image with various eMMC storage optimizations to increase the life of those class of storages. Along with the support for automated first boot configuration will also be implemented using nuageinit.
Mentors: Student: Aryan Arora
This project introduces a network abstraction layer to libkboot, enabling boot artifacts to be fetched from remote sources without disrupting the existing loading flow. On top of this abstraction, it implements a minimal, bootloader-focused HTTP/1.1 client and HTTPS support via a TLS-backed transport. This allows kboot to support network-based boot workflows through a clean, maintainable, and extensible interface for future network features.