ceu-notes/1/ISO/assignments/virtualizacion/virtualizacion.tex

192 lines
6.4 KiB
TeX

\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 <nicolas@ortegas.org>
\\
Este documento se distribuye bajo los términos y condiciones de la licencia
Creative Commons Attribution No Derivatives 4.0 International.
\end{document}