Historia y Evolución.
A sus inicios (en 1959), la virtualización era conocida como 'time sharing' gracias
al profesor Christopher Strachey, un catedrático de la Universidad de Oxford y líder del
Grupo de Investigación en Programación. A Strachey, esta técnica le permitía escribir el
código fuente de un programa mientras otro programador compila otro programa.
Dos años más tarde, se desarrolla uno de los primeros sistemas operativos de tiempo
compartido, el CTSS ('Compatible Time-Sharing System'). El CTSS es considerado el
abuelo de los sistemas operativos de tiempo compartido ya que influye en el
desarrollo, entre otros, de:
• IBM M44/44X.
• MULTICS, que influye fuertemente en la família UNIX (Linux).
• CP/M, que influye fuertemente en 86-DOS, el cual deriva en Microsoft Windows. A
su paso por el año 1962, La Universidad de Manchester desarrolla una de las
primeras supercomputadoras mundiales, 'The Atlas Computer', la más rápida de su
tiempo. Este equipo cuenta importantes avances tecnológicos de su era, como los
conceptos de time sharing, multiprogramming, virtual memory y control compartido
de periféricos. Ya en el año de 1964 fue el Centro Científico de Cambridge de IBM
quienes desarrollaron el CP-40, un sistema operativo que implementa la herramienta
full virtualization, permitiendo simular 14 'pseudo machines', más tarde llamadas
máquinas virtuales.
Durante 1965, el Centro de Investigación Thomas J. Watson de IBM implementa la IBM
M44/44X, basada en el IBM 7044 (M44) y con varias máquinas 7044 virtuales (44Xs)
simuladas, usando hardware, software, paginación, memoria virtual y
multiprogramación.
IBM anuncia System/360 Model 67 (S/360-67) y el sistema operativo de tiempo
compartido 'TSS/360', el cual implementa 'virtual memory' y 'virtual machines' pero es
cancelado en 1971 por sus problemas de rendimiento, fiabilidad e incompatibilidad
con el sistema operativo de proceso de lotes 'OS/360'.
Para 1966, el Centro Científico de Cambridge de IBM empieza la conversión del CP-40 y
el CMS para ejecutarlos en el S/360-67. El CP-67 es una significativa re implementación
del CP-40 y es la primera implementación ampliamente disponible de la arquitectura
de 'virtual machine'.
Durante 1968, se da a conocer National CSS (NCSS), una compañía que explora la idea
de ofrecer servicios de tiempo compartido, aprovecha la disponibilidad de CP/CMS
para iniciar la implementación de VP/CSS ya que el rendimiento de CP/CMS no es
rentable para sus planes de comerciales.
Al llegar los años 70, IBM empieza a desarrollar 'CP-370/CMS', una completa re
implantación del 'CP-67/CMS' para su nueva serie 'System/370' (S/370).
Posteriormente, IBM anuncia el primer sistema operativo de máquina virtual de la
familia VM (VM/CMS), el 'VM/370' (basado en 'CP-370/CMS') y destinado para
'System/370' con hardware de memoria virtual. El 'VM/370' se basa en dos
componentes; CP (Control Program) y CMS (ahora llamado Conversational Monitor
System). La función más importante del nuevo CP es la habilidad de ejecutar una VM
dentro de otra VM. Todo esto fue desarrollado durante 1972.
Paralelamente la National CSS (NCSS), aporta VP/CSS a la serie 'System/370'.
VP/CSS mejora el rendimiento del CSS utilizando paravirtualization, a través de
llamadas directas al hypervisor con la instrucción no virtualizada DIAG, en lugar de
simular las operaciones de bajo de nivel de los comandos de E/S.
Durante los años de 1976 y 1987, periodo donde surge la revolución de los
ordenadores personales como: Apple II, Atari 400/800, Commodore VIC-20, IBM PC, ZX
Spectrum, Commodore 64, Apple Macintosh, Atari ST, Commodore Amiga; provoca
que la industria
pierda interés en los sistemas operativos súper optimizados para 'mainframes'. Sin
embargo, IBM sigue el desarrollo de su família VM.
Ya para la década de los 80 y con la llegada de las relativamente económicas maquinas
x86, comenzó una nueva era de micro computadoras, aplicaciones cliente-servidor; en
donde los enormes y potentes “mainframes” con mil y una tareas y utilidades en una
sola caja gigantesca se comenzaron a cambiar por relativamente pequeños servidores
y computadoras personales de arquitectura x86, lo que se convirtió rápidamente en el
estándar de la industria.
Debido a esto, una vez más, el tema de la virtualización vuelve a quedar prácticamente
en el olvido, y no es hasta finales de la década de los 90 que gracias al alto desarrollo
del hardware volvemos a caer en un predicamento similar al que estábamos en los
años 60: el hardware existente es altamente eficiente, y utilizar cada equipo para una
sola aplicación seria un desperdicio de recursos, espacio, energía y dinero; y tampoco
es conveniente asignarle múltiples usos o instalar varias aplicaciones en un solo
servidor convencional, por más de una razón. Es por esto que vuelve a resurgir la idea
de dividir el hardware, de manera tal que funcione como múltiples servidores
independientes pero compartiendo los recursos de un mismo servidor físico. Y es de
aquí que nace lo que hoy todos conocemos como “Virtualización”.
En el año de 1988, la compañía Insignia Solutions, desarrolla el emulador de x86
“SoftPC” que permite ejecutar 'MS-DOS' sobre UNIX y Mac OS.
Actualmente existen diferentes compañías que se dedican al desarrollo de aplicaciones
y soluciones de virtualización. Para la década de los noventa, la empresa VMware
inventó la virtualización para la plataforma x86 para abordar los problemas de
infrautilización y de otra índole, a lo largo de un proceso que obligó a superar gran
cantidad de desafíos. En la actualidad, VMware es líder mundial en virtualización para
x86, con más de 190,000 clientes.
Una vez conocida el hecho histórico de esta tecnología se aprecia el hecho de que la
virtualización empezó a implementarse de la mano de IBM, como una manera lógica
de particionar ordenadores mainframe en máquinas virtuales independientes. Estas
particiones permitían a los mainframes realizar múltiples tareas: ejecutar varias
aplicaciones y procesos al mismo tiempo. Dado que en aquella época los mainframes
eran recursos caros, se diseñaron para particionar como un método de aprovechar al
máximo la inversión.
Aunque este es un tema el cual se ha ampliado grandemente en estos últimos años,
el termino Virtualización se ha convertido en uno de los conceptos más usados
últimamente
entre la comunidad de usuarios domésticos que quieren disponer de varios
sistemas operativos en un solo ordenador. Básicamente virtualización es una
tecnología que permite instalar y configurar múltiples computadoras y/o servidores
completamente independientes (conocidas como virtual machines o maquinas
virtuales) en un solo equipo, ya sea una computadora o servidor.
La principal ventaja de la virtualización es que permite tener varios ordenadores
virtuales funcionando simultáneamente bajo un mismo hardware, y eso se consigue
gracias a que un sistema operativo actúa como anfitrión, dotando parte de sus
recursos a un sistema invitado, que es básicamente, el sistema operativo que se va a
virtualizar.
Al final obtenemos una implementación que será:
• Más económica.– Requiere menos hardware, menos electricidad,
menos enfriamiento, menos espacio, menos infraestructura, y menos tiempo de
administración. Todo esto al final se traduce en ahorro de dinero.
• Menos compleja.– Por las mismas razones mencionadas en el punto anterior,
ya que existen menos cantidades de elementos pero se cumple con la misma
demanda. • Consume menos energía y espacio.– Ya que ayuda a la protección del
medio
ambiente ahorrando energía y espacio.
• Más segura.– Con los niveles de seguridad adecuados, una red virtual cuenta
con menos puntos de ataque físicos, lo que la hace más segura. La virtualización es una
excelente estrategia de seguridad al momento de elaborar un plan de backup o
recovery.
• Más fácil de administrar.– Con el conocimiento de virtualización y dejando de lado
el famoso “temor al cambio”, administrar una red virtual debe ser más sencillo que
administrar una red regular.