Suporte para execução de máquinas virtuais nativas [recurso eletrônico]
Alisson Linhares de Carvalho
DISSERTAÇÃO
T/UNICAMP C253s
[Support for development of native virtual machines]
Campinas, SP : [s.n.], 2015.
1 recurso online ( 90 p.) : il., digital, arquivo PDF.
Orientador: Edson Borin
Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação
Resumo: Uma máquina virtual é um programa de computador que emula uma interface para execução de outros programas. Esta tecnologia está presente em diversos sistemas computacionais e é utilizada desde o suporte a linguagens de programação de alto nível, como na máquina virtual Java, até a...
Ver mais
Resumo: Uma máquina virtual é um programa de computador que emula uma interface para execução de outros programas. Esta tecnologia está presente em diversos sistemas computacionais e é utilizada desde o suporte a linguagens de programação de alto nível, como na máquina virtual Java, até a implementação de processadores com projeto integrado de hardware e software, como é o caso do processador Efficeon da Transmeta. Na tentativa de elevar o desempenho, alguns tipos específicos de máquinas virtuais podem requerer um acesso privilegiado a recursos administrados pelo sistema operacional. Consequentemente, em virtude dessa necessidade de obter um maior privilégio de execução, alguns projetos de máquinas virtuais optam por soluções nativas, removendo completamente a dependência de um sistema operacional. Essa solução, apesar da complexidade, possibilita a redução de grande parte da pilha de software existente entre a máquina virtual e o hardware, eliminando diversas restrições de acesso a dispositivos e a concorrência pela utilização de recursos. Apesar da flexibilidade proporcionada pela adoção de uma arquitetura nativa, existe um preço a ser pago na escolha dessa abordagem. Desenvolver um programa que executa sem o auxílio das abstrações fornecidas por um sistema operacional é uma atividade complexa, suscetível a erros e pode prejudicar gravemente a portabilidade. Dessa forma, conjecturamos que uma infraestrutura mínima, capaz de abstrair somente o essencial do hardware, fornecendo uma interface POSIX, simplificaria o projeto de novas máquinas virtuais nativas. Neste trabalho apresentamos o Native Kit, uma infraestrutura modular, compatível com o padrão POSIX e que foi construído para dar suporte à implementação e execução de máquinas virtuais nativas. Todos os módulos foram projetados de forma a eliminar dependências, tornando esta infraestrutura simples, flexível e capaz de se adaptar a diversos requisitos de aplicações nativas. Além disso, para validar e demonstrar como a nossa infraestrutura pode ser utilizada na prática, implementamos dois estudos de caso capazes de serem executados diretamente sobre o hardware, sem o auxílio de um sistema operacional. Esses estudos de caso poderão ser utilizados como ponto de partida para construção de novas máquinas virtuais nativas, contribuindo para o desenvolvimento de diversas pesquisas relacionadas
Ver menos
Abstract: A virtual machine is a computer program that emulates an interface to another application. This technology is present in many computer systems and has been used from the support of high-level programming languages, such as the Java virtual machine, to the implementation of processor with...
Ver mais
Abstract: A virtual machine is a computer program that emulates an interface to another application. This technology is present in many computer systems and has been used from the support of high-level programming languages, such as the Java virtual machine, to the implementation of processor with integrated hardware and software design, such as the Transmeta's Efficeon processor. In an attempt to improve the overall performance, some specific types of virtual machines may need privileged access to resources managed by the operating system. Consequently, because of this need for greater privileged access, some virtual machines rely on a native design, running directly on the hardware. This approach, despite the complexity, enables a reduction of the software stack, present between the virtual machine and the hardware. Moreover, this solution eliminates the restrictions on the device access and the competition for resource utilization. Despite the flexibility afforded by a native architecture, there is a price to pay when we choose this kind of solution. Implementing an application without the abstraction provided by an operating system is a complex task, susceptible to errors and can seriously impair portability. Therefore, we believe that a minimum infrastructure, capable of abstracting the essential hardware and providing a POSIX interface, could simplify the design of new native virtual machines. In this work we present the Native Kit, a modular infrastructure, compatible with the POSIX standard and built to support the implementation and execution of native virtual machines. All modules were designed to avoid dependencies, making this infrastructure simple, flexible and able to adapt to different design requirements of native virtual machines. In addition, to confirm and to show how our infrastructure works in practice, we present two test applications that can run directly on bare-metal, without an operating system. These applications can be used as a starting point to build new native virtual machines, contributing to develop of several related research
Ver menos
Requisitos do sistema: Software para leitura de arquivo em PDF
Suporte para execução de máquinas virtuais nativas [recurso eletrônico]
Alisson Linhares de Carvalho
Suporte para execução de máquinas virtuais nativas [recurso eletrônico]
Alisson Linhares de Carvalho