VirtIO infrastructure for a static partition hypervisor: VirtIO-Net

Detalhes bibliográficos
Autor(a) principal: Costa, João Rodrigo Lima
Data de Publicação: 2023
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: https://hdl.handle.net/1822/88717
Resumo: Dissertação de mestrado em Engenharia Eletrónica Industrial e Computadores
id RCAP_17abc4a0e2f3aadea40257ecc54b7816
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/88717
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling VirtIO infrastructure for a static partition hypervisor: VirtIO-NetEngenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaDissertação de mestrado em Engenharia Eletrónica Industrial e ComputadoresO uso de sistemas embebidos tem crescido exponencialmente em indústrias como a automóvel ou aeronáutica. Isto tem levado a um aumento na complexidade dos sistemas, onde é necessário consolidar várias camadas de software com diferentes níveis de criticidade numa única plataforma de hardware. Para aumentar a segurança destes sistemas, a indústria tem-se focado na tecnologia de virtualização, uma vez que a mesma permite a integração e o isolamento dos vários subsistemas. Recorrendo a um hipervisor é possível partilhar os recursos de hardware entre múltiplas máquinas virtuais (VMs). No entanto, os hipervisores tradicionais não foram desenhados para garantir os requisitos de tempo-real e de segurança. Por este motivo, hipervisores de particionamento estático, como o Jailhouse, que alocam os recursos de hardware estaticamente para as VMs em tempo de design, têm ganho cada vez mais protagonismo. Porém, o Jailhouse depende do Linux para iniciar e gerir as VMs, criando alguns problemas de tempo-real e segurança. Assim sendo, o nosso grupo de investigação focou-se em desenvolver o hipervisor Bao. O Bao implementa uma camada minimalista de software e não tem qualquer dependência de bibliotecas externas. A implementação atual do Bao dá acesso pass-through aos periféricos, não sendo possível a partilha de dispositivos. O trabalho desenvolvido nesta dissertação consiste no desenvolvimento de uma infraestrutura que permite a partilha de dispositivos utilizando VirtIO. Esta infraestrutura deve ser genérica e deve ser com patível com as front-ends já existentes. A infraestrutura do VirtIO é implementada numa máquina virtual dedicada (service guest), cuja função é gerir as múltiplas virtqueues que permitem transmitir e receber dados de outras VMs que utilizam VirtIO. Ao contrário das soluções existentes, nesta dissertação, as back ends do VirtIO são implementadas não no hipervisor, mas numa VM, resultando numa TCB reduzida para o sistema. A segunda parte da dissertação foca-se em implementar duas drivers back-end, i.e., uma para o VirtIO-console e outra para o VirtIO-net. A primeira driver é uma driver simples e é utilizada essencial mente para garantir a validação adequada da interface implementada. A segunda é mais complexa, mas é essencial para qualquer hipervisor moderno.The use of embedded systems has grown exponentially in industries such as the automotive or aero nautics. This led to an increase in the complexity of systems where it is necessary to consolidate several layers of software with different levels of criticality onto a single hardware platform. To enhance the security of these systems, industry has been shifting towards virtualization, as the technology enables the safe integration and isolation of the various sub-systems. By leveraging a hypervisor it is possible to share hardware resources between multiple Virtual Machines (Virtual Machine (VM)s). However, traditional hypervisors were not designed to meet real-time and security requirements. For this reason, static partitioning hypervisors, such as Jailhouse, that statically allocate hardware resources to VMs at design time, have gained increasing attraction. However, Jailhouse depends on Linux to boot and manage VMs, which creates some issues for real-time, safety, and security. Under this light, our research group has designed and implemented Bao. Bao is a very thin layer of self-contained software, not having any external dependency. Bao’s current implementation gives pass-through access to peripherals and device sharing is not possible. The work developed in this dissertation is the implementation of an infrastructure that allows device sharing using Virtual Input Output (VirtIO). This infrastructure is generic and must be compatible with the existing front-ends. VirtIO’s infrastructure is implemented in a dedicated virtual machine (service guest), whose aim is to manage the multiple virtqueues that allow transmitting and receiving data from the other VMs that use VirtIO. Unlike existing solutions, in our case, the VirtIO’s back-ends are not implemented in the hypervisor but in a VM, resulting in a reduced Trusted Computing Base (TCB) for the overall system. The second part of the dissertation focuses on implementing two back-end drivers, i.e., one for VirtIO console and another for VirtIO-net. The first driver is a simple driver, so it is used essentially to guarantee the proper validation of the implemented interface. The second one is more complex but is essential to any modern hypervisor.Pinto, SandroUniversidade do MinhoCosta, João Rodrigo Lima2023-01-092023-01-09T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://hdl.handle.net/1822/88717eng203513959info:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2024-02-10T01:19:42Zoai:repositorium.sdum.uminho.pt:1822/88717Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T02:37:07.031500Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv VirtIO infrastructure for a static partition hypervisor: VirtIO-Net
title VirtIO infrastructure for a static partition hypervisor: VirtIO-Net
spellingShingle VirtIO infrastructure for a static partition hypervisor: VirtIO-Net
Costa, João Rodrigo Lima
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short VirtIO infrastructure for a static partition hypervisor: VirtIO-Net
title_full VirtIO infrastructure for a static partition hypervisor: VirtIO-Net
title_fullStr VirtIO infrastructure for a static partition hypervisor: VirtIO-Net
title_full_unstemmed VirtIO infrastructure for a static partition hypervisor: VirtIO-Net
title_sort VirtIO infrastructure for a static partition hypervisor: VirtIO-Net
author Costa, João Rodrigo Lima
author_facet Costa, João Rodrigo Lima
author_role author
dc.contributor.none.fl_str_mv Pinto, Sandro
Universidade do Minho
dc.contributor.author.fl_str_mv Costa, João Rodrigo Lima
dc.subject.por.fl_str_mv Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description Dissertação de mestrado em Engenharia Eletrónica Industrial e Computadores
publishDate 2023
dc.date.none.fl_str_mv 2023-01-09
2023-01-09T00:00:00Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://hdl.handle.net/1822/88717
url https://hdl.handle.net/1822/88717
dc.language.iso.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv 203513959
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799137422079950848