В мире виртуальных машин существует много различных гипервизоров, каждый со своими функциональным возможностями, интерфейсами и нюансами. Для унификации этих интерфейсов был разработан проект с открытым исходным кодом libvirt — API, демон и набор утилит. Основная цель проекта — избавить пользователя от непосредственного управления гипервизором. В том или ином виде поддерживаются KVM/QEMU, LXC, Xen, VirtualBox, Hyper-V и другие.
Важной частью виртуализации является "прокидывание" (passthrough) физических устройств, в частности, PCI устройств, в виртуальную машину. Почти все гипервизоры поддерживают эту технологию. Libvirt также предоставляет пользователю соответствующий API для управления passthrough. Ранее (2009 год) libvirt поддерживал управление passthrough для Xen, однако с течением времени эта функциональность была упразднена. Данная задача заключается в восстановлении этой функциональности на современном уровне.
Поскольку работа будет проводиться в Libvirt, требования к технологиям и архитектуре полностью диктуются проектом Libvirt. Лицензия — GNU LGPL 2.1 или выше (как у Libvirt)
Пуллреквест с реализацией PCI passthrough для XEN в Libvirt. Прохождение ревью кода специалистами YADRO.
Еженедельные звонки (30 минут) с представителями YADRO для демонстрации результатов; Коммуникация в Telegram; Инструкция по правильному написанию вопросов: http://tinyurl.com/stack-hints
Оценка A ставится за сделанный пуллреквест и одобрение кода специалистом компании YADRO. Оценка F — если задача не выполнена.
Владение C/C++, большим плюсом будет знакомство с гипервизором Xen
3 курс, Бакалаврская ВКР, Магистерская ВКР
Смирнов Кирилл Константинович
YADRO