\documentclass[12pt,a4paper]{article} \usepackage[spanish]{babel} \title{Ejercicio II: Ventajas de la Virtualización} \author{Nicolás A. Ortega Froysa} \begin{document} \maketitle \pagebreak \tableofcontents \pagebreak \section{Hoja De Control Del Documento} \begin{table}[h!] \begin{center} \caption{Documento/Archivo} \label{tab:document} \begin{tabular}{|l|c|l|c|} \hline {\bf Fecha Última Modificación} & \the\day/\the\month/\the\year & {\bf Versión/Revisión} & v01r01 \\ \hline {\bf Fecha Creación} & 16/11/2021 & \hfill & \hfill \\ \hline {\bf Fecha Finalización} & \the\day/\the\month/\the\year & \hfill & \hfill \\ \hline \end{tabular} \end{center} \end{table} \begin{table}[h!] \begin{center} \caption{Registro De Cambios} \label{tab:registro-cambios} \begin{tabular}{|c|c|c|} \hline {\bf Versión/Revisión} & {\bf Página(s)} & {\bf Descripción} \\ \hline v01r01 & Todas & Creación y elaboración del documento. \\ \hline \end{tabular} \end{center} \end{table} \begin{table}[h!] \begin{center} \caption{Autores Del Documento} \label{tab:autores} \begin{tabular}{|c|c|} \hline {\bf Apellidos, Nombre} & {\bf Curso} \\ \hline Ortega Froysa, Nicolás Andrés & 1 \\ \hline \end{tabular} \end{center} \end{table} \begin{table}[h!] \begin{center} \begin{tabular}{|p{4cm}|p{4cm}|p{4cm}|} \hline {\bf Preparado} & {\bf Revisado} & {\bf Aprobado} \\ \hline Ortega Froysa, Nicolás Andrés & \hfill & \hfill \\ \hline \end{tabular} \end{center} \end{table} \pagebreak \section{¿Qué es la Virtualización?} La {\em virtualización} es una técnica que se usa para crear una máquina o sistema virtual sobre el sistema real. Esto contribuye a uno de los objetivos de los sistemas operativos que es la abstracción. Estas virtualizaciones se pueden hacer de varias maneras: \begin{itemize} \item Creando toda una máquina virtual entera, simulando todo el {\em hardware} de una máquina para poder correr un sistema por encima. Como generalmente se usa para la virtualización {\em no-nativa}, referiremos a esto como tal. \item Un sistema que funciona a base del {\em hardware} real de la máquina, pero corriendo un sistema operativo distinto. Lo que nosotros llamaremos la virtualización {\em nativa}. \item Hay algunos casos donde lo único que se hace es crear un ambiente virtual para poder correr un único programa, que lo denominaremos virtualización {\em de programa}. \item Existen unas virtualizaciones que son algo entre los dos anteriores, que serían los contenedores. Éstos Pueden correr varios servicios, pero son mínimos, y corren, en cierto modo, sobre el hardware real de la máquina, no un hardware virtual. \end{itemize} Todos éstos tienen sus ventajas y desventajas, y se han de aplicar dependiendo de cuáles son los objetivos o las tareas a mano; y por supuesto, tienen sus ventajas y desventajas sobre la {\em no-virtualización} (que es decir correr de forma nativa). \section{Virtualización No-Nativa} Al crear hasta un {\em hardware} virtual, este tipo de virtualización simula todo lo que sería un ordenador. Esto nos provee varias ventajas y también desventajas: \begin{itemize} \item Ventajas: \begin{itemize} \item Se pueden correr programas compiladas para arquitecturas distintas a la de la máquina anfitrión. \item Se pueden correr programas con seguridad de que no afectará ni infectará el {\em hardware} de la máquina. \item En algunos casos se pueden simular otros tipos de dispositivos periféricos. \end{itemize} \item Desventajas: \begin{itemize} \item Al simular toda una máquina, es más lento que otros tipos de virtualización. \item No puede aprovecharse del {\em hardware} real para virtualizar, salvo si la CPU provee interfaces para esta tarea. \end{itemize} \end{itemize} \section{Virtualización Nativa} Al ser nativa, este tipo de virtualización permite aprovecharse más de la máquina física anfitrión, ya que la máquina huésped usa el mismo {\em hardware} que el anfitrión, o al menos la misma arquitectura. Esto aporta lo siguiente: \begin{itemize} \item Ventajas: \begin{itemize} \item Se puede aprovechar del hardware de la máquina sin necesidad de virtualizarlo. \item Permite probar otros sistemas operativos en una misma máquina con más rendimiento. \end{itemize} \item Desventajas: \begin{itemize} \item Está más limitado al {\em hardware} de la máquina (en cuanto a su arquitectura). \end{itemize} \end{itemize} \section{Virtualización de Programa} Para este tipo de virtualización podemos pensar en la máquina virtual de Java. Consta de una máquina virtual que corre un solo programa. Tienen las siguientes ventajas: \begin{itemize} \item Ventajas: \begin{itemize} \item Un mismo binario se puede correr cualquier máquina que tenga la máquina virtual. \item Al no tener que virtualizar todo un sistema operativo, rinde mejor que las virtualizaciones nativas y no-nativas. \end{itemize} \item Desventajas: \begin{itemize} \item Es más lento que correr una aplicación nativa (en binario para esa arquitectura). \end{itemize} \end{itemize} \section{Contenedores} Los contenedores son algo raro entre la virtualización de tipo 2 y la virtualización de programa. Crea su propio sistema aislado para correr las aplicaciones, pero se basa en el sistema anfitrión. Es algo que es muy útil para correr servicios en servidores y crear ambientes limpios. Aporta lo siguiente: \begin{itemize} \item Ventajas: \begin{itemize} \item Crea un ambiente limpio de desarrollo y trabajo. \item Facilita adelantar puertos para proveer servicios red. \end{itemize} \item Desventajas: \begin{itemize} \item Por lo visto no puedes usarlo para aplicaciones gráficas. \item Está limitado a la misma arquitectura que la máquina anfitrión. \end{itemize} \end{itemize} \section{Conclusión} La virtualización en general es útil para casos donde queremos trabajar en un sistema aislado o probar un sistema/arquitectura distinta. Siempre habrá un coste en cuanto a rendimiento (de más o menos dependiendo del tipo de virtualización). \pagebreak \section{Derechos de Autor y Licencia} Copyright \copyright\ \the\year\ Nicolás A. Ortega Froysa \\ Este documento se distribuye bajo los términos y condiciones de la licencia Creative Commons Attribution No Derivatives 4.0 International. \end{document}