BSDCan2019 - 1.8

BSDCan 2019
The Technical BSD Conference

Mihai Carabas

My name is Mihai Carabas and I finished the PhD at University POLITEHNICA of Bucharest in the domain of virtualization in 2017. Right now I'm an Assist. Prof. at the university. I've contributed over the last five years in FreeBSD and DragonFlyBSD virtualization code and also I'm been coordinating various projects in FreeBSD having colaborations with FreeBSDFoundation, iXSystems and individuals passionate for virtualization in FreeBSD.

My name is Mihai Carabas and I finished the PhD at University POLITEHNICA of Bucharest in the domain of virtualization. I've contributed over the last four years in FreeBSD and DragonFlyBSD virtualization code.

I've started working on BSD systems four years ago, on DragonFly BSD, tweaking its scheduler to be SMT (or HT) aware. In the next year I've implemented hardware nested page table support (EPT for Intel) for the DragonFly BSD vkernels eliminating the need of shadow page tables.

In 2014 I've worked on a bhyve project where I've tried to minimize the impact of instruction emulation by caching the emulated instructions. Thus, at further usage, we use the hot cache instead of fetch-and-decode the faulted instruction again (the work has been presented during AsiaBSDCon 2015).

In 2015 I've started working on porting the bhyve hypervisor on ARM-based platforms. I had to write from scratch the low-level context switch code and adapt it to a Type-2 hypervisor: ARM, by its design, ensures support for Type-1 hypervisors (a hypervisor that runs without a host OS). bhyve is written to be part of the FreeBSD and use its management features and thus its a Type-2 hypervisor. Another problem was to fork the current bhyve code base and reuse it with minor modifications for ARM (basically to preserve the same API - in the near future to be able to create a generic code-base for bhyve and only the context switch code to reside in the machine-dependant code). Until now I've manage to run a virtual machine on top of the bhyve hypervisor using FastModels simulation platform. There is work in progress at the virtualization of the interrupts to have a fully functional GuestOS.

In 2014 and 2015 in parallel with the work at bhyve I've promoted bhyve in my university and coordinated students to do bhyve-related projects. One of the succesfull ones is the bhyve-ATA-emulation.

From 2016 I've been coordinating different FreeBSD/bhyve main projects: - save/restore feature for x8664 bhyve - migration feature for x8664 - porting bhyve-ARM to ARM64

In 2018 I've been the organizer for EuroBSDCon2018 in Bucharest, Romania.

Besides the *BSD hacking, I worked on my PhD thesis which has the same study subject (virtualization in embedded systems).