Mars Research Group#
Mars Research is a systems research group at University of Utah. Primarily we work in the areas of operating systems and security.
Projects#
Atmostphere verified operating system: atmo
Redleaf operating system: redleaf
Safe Persistent Memory Systems in Rust: rustpm
Fine-grained isolation for the Linux kernel: kernel-isolation
High-performance hash table: DRAMHiT
Rust for linux study: rfl
People#
Anton Burtsev (Faculty, lead)
Vikram Narayanan (PhD, 2023 expected)
Zhaofeng Li (PhD, 2025 expected)
Xiandong Chen (PhD, 2026 expected)
Alumni#
Dan Appel (BS 2021, now at Apple)
Tianjiao Huang (MS 2022)
Michael Lusher (BS 2021, now at Splunk)
Daman M Kumar (MS 2020, now at Amazon)
Vincent Whizin (BS, 2022)
Ed Younis (BS 2018, now at Berkeley Lab)
Connor Zwick (BS, 2022)
Tirth Jain (Summer Intern, 2022)
David Detweiler (BS 2023, now at Atlassian)
Posts#
As a systems research team, we build operating systems, low-level software, hack kernels and yet hardware programming always remained on the todo-list of “cool, but haven’t tried yet”. When Cloudlab started introducing FPGA accelerators to their testbed, we got excited and finally decided to give it a try.
Cloudlab is one of the publicly available testbeds for research. In all of our projects, we carry out the whole development process on Cloudlab infrastructure....
In our previous projects, we always did all development on real hardware. For example, LXDs and LVDs required baremetal speed of the cache-coherence protocol and support for nested virtualization (both systems use hardware-supported virtualization). So development under QEMU looked unrealistic. Well, maybe we need to explore more. KVM supports nested virtualization, but we needed support for features like extended page table (EPT) switching with VMFUNC. In the end, we were reluctant to take this approach....
If you plan to start working on a new operating system kernel things get hard fast—there is a ton of low-level hardware details you have to understand and a number of design decisions you have to make (after all, why would you build yet another kernel—you have to invent something new, right?). Complexity is intimidating. Nevertheless, if you take it step by step, the basics are simple. And it’s worth trying....