Please use this identifier to cite or link to this item: http://repositorio.unicamp.br/jspui/handle/REPOSIP/275570
Type: DISSERTAÇÃO DIGITAL
Degree Level: Mestrado
Title: Suporte para execução de máquinas virtuais nativas
Title Alternative: Support for development of native virtual machines
Author: Carvalho, Alisson Linhares de, 1988-
Advisor: Borin, Edson, 1979-
Abstract: 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

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
Subject: Máquinas virtuais
Programas de computador
Arquitetura de computador
Sistemas operacionais (Computadores)
Editor: [s.n.]
Date Issue: 2015
Appears in Collections:IC - Tese e Dissertação

Files in This Item:
File SizeFormat 
Carvalho_AlissonLinharesde_M.pdf4.02 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.