Maquinasvirtuales.Pdf
Total Page:16
File Type:pdf, Size:1020Kb
Máquinas Virtuales Antonio Carrillo Ledesma y Karla Ivonne González Rosas Facultad de Ciencias, UNAM http://academicos.fciencias.unam.mx/antoniocarrillo Una copia de este trabajo se puede descargar de la página: https://sites.google.com/ciencias.unam.mx/acl/en-desarrollo Con…namiento 2020-2021, Versión 1.0 1 1El presente trabajo está licenciado bajo un esquema Creative Commons Atribución CompartirIgual (CC-BY-SA) 4.0 Internacional. Los textos que compo- nen el presente trabajo se publican bajo formas de licenciamiento que permiten la copia, la redistribución y la realización de obras derivadas siempre y cuando éstas se distribuyan bajo las mismas licencias libres y se cite la fuente. ¡Copiaeste libro! ... Compartir no es delito. Máquinas Virtuales Índice 1 Máquinas Virtuales 4 1.1 Tipos de Máquinas Virtuales ................... 5 1.2 Técnicas de Virtualización .................... 6 1.3 Otras Formas de Virtualización ................. 7 1.4 Aplicaciones de las Máquinas Virtuales de Sistema ....... 9 1.5 Ventajas y Desventajas ...................... 11 1.5.1 Ventajas .......................... 12 1.5.2 Desventajas ........................ 14 1.5.3 Consideraciones Técnicas y Legales de la Virtualización 15 1.6 Máquinas Virtuales en la Educación, Ciencias e Ingeniería .. 16 1.7 ¿Qué Necesito para Crear y Usar una Máquina Virtual? .... 18 1.8 ¿Cómo Funciona una Máquina Virtual? ............. 21 1.9 Aplicaciones y Paquetes Disponibles ............... 22 1.10 Acceso a Datos Desde una Máquina Virtual .......... 28 1.11 Desde la Nube ........................... 29 2 Creación, Uso y Optimización de Máquinas Virtuales Usando QEMU/KVM 32 2.1 Tipo de Virtualización Soportado por la Máquina Huésped .. 35 2.2 Salida Grá…ca de la Virtualización Usando VNC ........ 39 2.3 Usando un Sistema Operativo Live como una Máquina Virtual 41 2.4 Usando un Archivo ISO como una Máquina Virtual ...... 42 2.5 Creación de Máquinas Virtuales ................. 43 2.6 Uso de Virtualización Dentro de Otra Virtualización ...... 46 2.7 Manipulación del Estado de la Máquina Virtual ........ 47 2.8 Optimización de Imágenes .................... 47 2.8.1 Trabajar con una Imagen Virtual sin que se Altere .. 48 2.8.2 Aumento de Desempeño ................. 49 2.9 Uso de Máquinas Virtuales de VirtualBox en KVM/QEMU .. 52 2.10 Conversión de Máquinas Virtuales a KVM/QEMU ...... 54 2.11 Comunicación de las Máquinas Virtuales con el Sistema An- …trión e internet .......................... 58 2.12 Signi…cado de las Banderas de /proc/cpuinfo .......... 62 [email protected] 1 Antonio Carrillo Ledesma, Et alii Máquinas Virtuales 3 Contenedores 68 3.1 Contenedores Linux (LXC) .................... 68 3.2 Docker ............................... 73 3.3 Kubernetes ............................ 77 4 Escritorios Remotos y Virtuales 83 4.1 Escritorio Remoto ......................... 87 4.1.1 Escritorio Remoto de Chrome .............. 87 4.1.2 Escritorio Remoto de Windows 10 ............ 90 4.2 Escritorio Virtual ......................... 92 4.2.1 Escritorios y Máquinas Virtuales con VNC ....... 93 4.3 Desde la Nube ........................... 99 5 Cómputo en Instituciones Educativas 102 6 Apéndice A: Software Libre y Propietario 106 6.1 Software Libre ........................... 106 6.1.1 Tipos de Licencias .................... 109 6.2 Software Propietario ....................... 116 6.3 Implicaciones Económico-Políticas del Software Libre ..... 117 6.4 Nuevas Licencias para Responder a Nuevas Necesidades .... 121 6.5 La Nube y el Código Abierto ................... 122 7 Apéndice B: Sistemas Operativos 126 7.1 Windows .............................. 143 7.2 UNIX y BSD ........................... 149 7.3 Mac OS y macOS Big Sur 11 .................. 151 7.4 GNU/Linux ............................ 153 7.5 Android .............................. 162 7.6 Chromebook y Chrome OS .................... 165 7.7 Otros Sistemas Operativos .................... 168 8 Apéndice C: El Sistema Operativo GNU/Linux 173 8.1 Sistema de Archivos y Estructura de Directorios ........ 178 8.2 Interfaz de Usuario ........................ 189 8.2.1 Interfaz Grá…ca de Usuario ................ 190 8.2.2 Línea de Comandos y Órdenes .............. 194 8.3 Trabajando en Línea de Comandos ............... 201 [email protected] 2 Antonio Carrillo Ledesma, Et alii Máquinas Virtuales 8.4 Desde la Nube ........................... 236 9 Apéndice D: Otras Herramientas en Línea de Comandos 240 9.1 Prompt de la Línea de Comandos ................ 240 9.2 Historia de Comandos ...................... 246 9.3 Alias a Comandos ......................... 249 9.4 Ayuda de Comandos y Tipo de Archivos ............ 251 9.5 Redireccionando la Entrada y Salida Estándar ......... 255 9.6 Metacarácter o Shell Globbing .................. 263 9.7 Permisos de Archivos y Directorios ............... 267 9.8 Procesos en Primer y Segundo Plano .............. 278 9.9 GNU Parallel ........................... 282 10 Bibliografía 284 [email protected] 3 Antonio Carrillo Ledesma, Et alii Máquinas Virtuales 1 Máquinas Virtuales Entendamos por una máquina virtual a un programa de cómputo (véase [15], [16], [9] y [8]) que simula a una computadora, en la cual se puede instalar y usar otros sistemas operativos de forma simultánea como si fuese una computadora real sobre nuestro sistema operativo huésped1. Figura 1: Sobre un equipo AMD de gama baja y 4 GB de RAM, usando como sistema operativo huésped un Linux Debian estable, se ejecutan 4 máquinas virtuales (mediante KVM) de Windows XP con diferentes aplicaciones y dentro de cada una de ellas se muestra la RAM asignada, la usada en ese momento, el uso de CPU de cada máquina virtual, entre otros datos. Una característica esencial de las máquinas virtuales es que los procesos que ejecutan están limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no pueden escaparse de esta "computadora virtual". Uno de los usos más extendidos de las máquinas virtuales es ejecutar sistemas operativos nuevos u obsoletos adicionales a nuestro sistema habitual. 1 Tal y como puede verse re‡ejado en la de…nición de máquina virtual, en este texto nos estamos focalizando en las máquinas virtuales de sistema. Existen otro tipo de máquinas virtuales, como por ejemplo las máquinas virtuales de proceso o los emuladores. [email protected] 4 Antonio Carrillo Ledesma, Et alii Máquinas Virtuales De esta forma podemos ejecutar uno o más sistemas operativos -Linux, Mac OS, Windows XP, 7 ó 8- desde nuestro sistema operativo habitual - GNU/Linux, Unix o Windows- sin necesidad de instalarlo directamente en nuestra computadora y sin la preocupación de que se descon…gure el sistema operativo huésped o a las vulnerabilidades del sistema virtualizado, ya que podemos aislarlo para evitar que se dañe. 1.1 Tipos de Máquinas Virtuales Las máquinas virtuales se pueden clasi…car en dos grandes categorías según su funcionalidad y su grado de equivalencia a una verdadera máquina: Máquinas virtuales de sistema (en inglés System Virtual Machine). También llamadas máquinas virtuales de Hardware2, permiten a la má- quina física subyacente compartirse entre varias máquinas virtuales, cada una ejecutando su propio sistema operativo3. A la capa de Soft- ware que permite la virtualización se le llama monitor de máquina vir- tual o Hypervisor. Un monitor de máquina virtual puede ejecutarse o bien directamente sobre el Hardware o bien sobre un sistema operativo ("Host Operating System"). Máquinas virtuales de proceso (en inglés Process Virtual Machine). A veces llamada "máquina virtual de aplicación", se ejecuta como un proceso normal dentro de un sistema operativo y soporta un solo pro- ceso. La máquina se inicia automáticamente cuando se lanza el proceso que se desea ejecutar y se detiene para cuando éste …naliza. Su obje- tivo es el de proporcionar un entorno de ejecución independiente de la plataforma de Hardware y del sistema operativo, que oculte los de- talles de la plataforma subyacente y permita que un programa se ejecute siempre de la misma forma sobre cualquier plataforma. 2 La virtualización puede se por Software o con apoyo mediante el Hardware, en este último caso se obtienen varios ordenes de magnitud de rendimiento que por Software. 3 Que sus componentes sean virtuales no quiere decir necesariamente que no existan, por ejemplo una máquina virtual puede tener unos recursos reservados de 2 GB de RAM y 20 GB de disco que se obtienen del equipo donde este ejecutando la máquina virtual. Otros dispositivos podrían realmente ser inexistentes físicamente como por ejemplo un CD-ROM que en verdad es el contenido de una imagen ISO en vez de un lector de CD de verdad. [email protected] 5 Antonio Carrillo Ledesma, Et alii Máquinas Virtuales 1.2 Técnicas de Virtualización Las Máquinas Virtuales ya tienen más de 60 años de vida su origen en los primeros días de la informática en la década de 1960, cuando el tiempo compartido para los usuarios de la computadora central era un medio de separar el Software de un sistema an…trión físico. La máquina virtual se de…nió a principios de los 70 como "un duplicado e…ciente y aislado de una máquina de computación real". Las máquinas virtuales tal como las conocemos hoy en día han cobrado fuerza en los últimos 20 años a medida que las empresas adoptaron la vir- tualización de servidores para utilizar la potencia de computación de sus servidores físicos de manera más e…ciente, reduciendo la necesidad de servi- dores físicos