Fetching the latest programs, projects, and workspace data.

Open source machine emulator and virtualizer
Showing 5 of 45 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: Tanish Desai
COCONUT-SVSM is a Secure Virtual Machine Service Module running at a privileged level inside Confidential VMs to provide trusted services (e.g., virtual TPM) independent of the host hypervisor. Currently, the SVSM kernel performs full TLB flushes on every context switch, discarding all TLB entries indiscriminately and causing significant runtime TLB miss overhead. This project enhances COCONUT-SVSM to leverage the x86 PCID (Process Context Identifiers) hardware feature to tag TLB entries per task, preserving them across context switches and enabling selective TLB invalidation. The work is structured in three phases: Phase 1 builds a code-generated Rust crate (x86-cpuid) from the authoritative x86-cpuid-db v2.4 XML database, replacing all scattered, magic-bit-position CPUID checks across the codebase with a type-safe cpu_has(leaf_0x1::ecx::Pcid) API unified across SNP, TDX, and native platforms via a CpuidReader trait. Phase 2 designs and implements a PCID assignment strategy for all virtual pages in the COCONUT kernel, enabling the CPU to tag TLB entries per task(same for all threads of task) and preserve them across context switches. Phase 3 converts global TLB flush operations in into selective, PCID-aware invalidations: using AMD's INVLPGB broadcast instruction to flush a specific PCID across all cores without IPIs. Key Deliverables are x86-cpuid Rust crate with code generator consuming x86-cpuid-db XML, refactored COCONUT-SVSM codebase with all open-coded CPUID checks replaced with new code generated by x86-cpuid Rust crate, PCID allocator, applying the PCIDs in the COCONUT page-tables and selective TLB flush functions (flush_tlb_pcid, flush_tlb_range_pcid) with AMD INVLPGB.
Mentors: Student: n-ramacciotti
A guest operating system (OS), running inside a Confidential Virtual Machine (CVM), does not know the state information, such as log data or memory usage, of the secure module COCONUT-SVSM, which is responsible for managing the CVM. This information can be useful for the guest OS to understand the environment it is running in. A new protocol has been defined to enable the retrieval of this information. This project implements this observability protocol. The work is divided into several steps, which are also the deliverables: the implementation of a SVSM-side handler for the protocol, a guest-side handler, which is a Linux device driver, and a user-space tool, which uses the Linux device driver to retrieve and save the information.
Mentors: Student: Aadesehveer Singh
QEMU's current snapshot load blocks until all guest RAM is loaded before starting execution. This project implements on-demand snapshot loading using userfaultfd - loading only device state upfront, then serving guest page faults on-demand while a background thread prefetches remaining pages. The design builds on existing postcopy migration and mapped-ram infrastructure. Deliverables include a working fast snapshot load implementation, unit tests in migration-test.c, and complete documentation.
Mentors: Student: uchouT
Implement MS-RDPEUSB protocol (client & server) in IronRDP with libusb backend and qemu-rdp integration. The goal of this project is to add USB device redirection support to IronRDP, the Rust implementation of the Remote Desktop Protocol. This enables client-attached USB devices (webcams, scanners, security keys, etc.) to be transparently accessed by applications running on the remote server. MS-RDPEUSB is a Dynamic Virtual Channel (DVC) extension that provides low-level USB packet redirection. Unlike high-level device redirection (like file system or audio), USB redirection transfers raw USB packets, allowing any USB device to work remotely without device-specific driver support on the client.
Mentors: Student: Soumyajyotii Ssarkar
This project aims to enhance QEMU's HP PA-RISC emulation by implementing LASI Network Card and NCR 710 SCSI Controller device models. LASI Network Card: Debug, test and complete the current Intel 82596 based implementation to provide full functionality NCR 710 SCSI Controller: Develop a new, accurate QEMU device model based on documentations present. Deliverables: Fully functional LASI Network Card and NCR 710 SCSI Controller models.