# Semana 2: Virtualização e instalação do Debian > **Importante!** Este material foi elaborado para ser lido em terminais e > acompanhado (e praticado) em dispositivos de desktop! ## Perguntas-chave - Como estudar o GNU/Linux sem migrar para uma distribuição? - O que são máquinas virtuais? - E se eu não tiver recursos suficientes para uma virtualização? ## Como estudar GNU/Linux? Instalar e utilizar uma distribuição GNU/Linux é a melhor forma de aprender! ### Alternativas - A segunda mellhor forma é a virtualização. - WSL é uma opção para quem usa Windows. - Docker é uma opção igualmente limitada. - Git Bash é uma opção limitadíssima. - Terminais e containeres GNU/Linux online. ### O que eu quero dizer com "opção limitada"? - Funciona muito bem para estudar o shell (Bash/POSIX). - Git Bash não reflete o sistema de arquivos do GNU/Linux. - Docker requer a virtualização do Kernel Linux de qualquer forma. - No Windows, o Docker requer o WSL para funcionar. - WSL2 também virtualiza o kernel e executa as distribuições em containeres. ## O que são máquinas virtuais? Programas que reproduzem o comportamento de um ambiente de *hardware* capaz de executar sistemas operacionais e programas como se fosse uma máquina física real. > **Nota:** Para mais detalhes, assista à [aula 30 do Curso GNU](https://www.youtube.com/watch?v=s6PclxFX3as), do Prof. Kretcheu. ## Hypervisor (hipervisor) A virtualização é feita com um programa que se apresenta como um hardware, mas que, de fato, opera o compartilhamento dos recursos da máquina *hospedeira* com o sistema *convidado*: este programa é o *hypervisor*. ### Hipervisor tipo 1 (bare metal) ``` +----------+ +----------------------------------+ | HARDWARE |←--→| HYPERVISOR | +----------+ | +------+ +------+ +--------+ | | | VM 1 | | VM 2 | ··· | VM (n) | | | |------| |------| |--------| | | | OS | | OS | | OS | | | +------+ +------+ +--------+ | +----------------------------------+ ``` - Hipervisor instalado diretamente sobre o hardware. - Tem contato direto com o hardware. - Requer processador com capacidades de virtualização. > **Importante!** Pode ser necessário habilitar nas opções do BIOS. Exemplos: - VMWare vShpere ESXi - Microsoft Hyper-V - Oracle VirtualBox - KVM (incluso no kernel Linux) Requisitos: - **Intel:** VT-x (flag `vmx` em `/proc/cpuinfo`) - **AMD:** AMD-V (flag `svm` em `/proc/cpuinfo`) ### Hipervisor tipo 2 (hosted) ``` +----------+ +----------------------------------+ | HARDWARE | | HYPERVISOR | +----------+ | +------+ +------+ +--------+ | ↕ | | VM 1 | | VM 2 | ··· | VM (n) | | +---------+ | |------| |------| |--------| | | OS HOST |←---→| | OS | | OS | | OS | | +---------+ | +------+ +------+ +--------+ | +----------------------------------+ ``` - O hipervisor é instalado em um sistema operacional hospedeiro. - Não tem contato direto com o hardware. Exemplos: - VMWare Workstation - Oracle VirtualBox - Parallels (macOS) ### O que é virtualizado? - Processador - BIOS/UEFI - Memória - Unidades de armazenamento - Redes - Outros dispositivos (USB, vídeo, etc) > **Nota:** Para mais detalhes, assista à [aula 31 do Curso GNU](https://www.youtube.com/watch?v=5mxT7Oitfc8), do Prof. Kretcheu. ### O que eu utilizo no Debian - KVM: por ser livre e embutido no kernel (é um **módulo** do kernel). - QEMU: para construir o hardware virtual. - Libvirt: biblioteca para gerenciamento de máquinas virtuais (API). - Virsh: interface de linha de comando. - Virtual Machine Manager (`virt-manager`): interface gráfica. ### O que utilizar em outros sistemas operacionais? O [Oracle VirtualBox](https://www.virtualbox.org/wiki/Downloads) tem versões para Windows e macOS. ## Instalação do Debian numa VM > A demonstração será feita utilizando o gerenciador de máquinas virtuais virt-manager. ### Requisitos - Gerenciador de máquinas virtuais instalado. - Imagem de instalação do Debian. - Configuaração de nova VM no gerenciador. ### Versão - Debian Sid (*unstable*) - Não possui instalador! - Alterações após a instalação da versão *testing*. - Imagem *"netinst"* (~670MB). ### Por que o Debian? - Sistema operacional universal. - Vasto repositório de softwares livres. - Base do Ububtu, largamente utilizado em servidores/*cloud*. ### Por que a versão Sid? - Programas com versões mais recentes. - Independência dos ciclos de versionamento do Debian. - Basta verificar atualizações e aplicá-las. - Não há preocupação com eventuais problemas em atualizações. ### Passos da instalação #### Baixar a imagem de instalação - Link: - Download direto da imagem [debian-testing-amd64-netinst.iso](https://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-cd/debian-testing-amd64-netinst.iso) #### Criar uma nova máquina virtual - 2 CPUs e 2048MB de RAM são mais que suficientes! - 15GB de disco alocados progressivamente com o uso. #### Iniciar a máquina virtual com a mídia de instalação #### Ler e decidir segundo as instruções do instalador #### Reiniciar a máquina virtual