Sockets con una maquina física a virtual

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 12,59 KB

 

Máquinas Virtuales:


Es un software que emula a una computadora y puede ejecutar programas como si fuese una computadora real.

Carácterísticas:*


Una carácterí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".

Ejecutar sistemas operativos para "probarlos". De esta forma podemos ejecutar un sistema operativo que queramos probar (GNU/Linux, por ejemplo) desde nuestro sistema operativo habitual (Mac OS X por ejemplo) sin necesidad de instalarlo directamente en nuestra computadora y sin miedo a que se desconfigure el sistema operativo primario.

Tipos:


Las máquinas virtuales se pueden clasificar en dos grandes categorías según su funcionalidad y su grado de equivalencia a una verdadera máquina.

Máquinas virtuales de sistema

Las máquinas virtuales de sistema, también llamadas máquinas virtuales de hardware, permiten a la máquina física dividir sus recursos entre varias máquinas virtuales, cada una ejecutando su propio sistema operativo y de esta manera aprovecharlos al máximo.
Usos de las máquinas virtuales de sistema
*

Varios sistemas operativos distintos pueden coexistir sobre la misma computadora, en sólido aislamiento el uno del otro, por ejemplo para probar un sistema operativo nuevo sin necesidad de instalarlo directamente.

La máquina virtual puede proporcionar una arquitectura de instrucciones (ISA) que sea algo distinta de la verdadera máquina. Es decir, podemos simular hardware.

Varias máquinas virtuales pueden ser utilizadas para consolidar servidores. Esto permite que servicios que normalmente se tengan que ejecutar en computadoras distintas para evitar interferencias, se puedan ejecutar en la misma máquina de manera completamente aislada y compartiendo los recursos de una única computadora. La consolidación de servidores a menudo contribuye a reducir el coste total de las instalaciones necesarias para mantener los servicios, dado que permiten ahorrar en hardware.

La virtualización es una excelente opción hoy día, ya que las máquinas actuales (Laptops, desktops, servidores) en la mayoría de los casos están siendo "sub-utilizados" (gran capacidad de disco duro, memoria RAM, etc.), llegando a un uso de entre 30% a 60% de su capacidad.

Máquinas virtuales de proceso

Una máquina virtual de proceso, a veces llamada "máquina virtual de aplicación", se ejecuta como un proceso normal dentro de un sistema operativo y soporta un solo proceso. La máquina se inicia automáticamente cuando se lanza el proceso que se desea ejecutar y se detiene para cuando éste finaliza. Su objetivo es el de proporcionar un entorno de ejecución independiente de la plataforma de hardware y del sistema operativo, que oculte los detalles de la plataforma subyacente y permita que un programa se ejecute siempre de la misma forma sobre cualquier plataforma.
El ejemplo más conocido actualmente de este tipo de máquina virtual es la máquina virtual de Java. Otra máquina virtual muy conocida es la del entorno .Net de Microsoft que se llama "Common Language Runtime".

Ventajas

Ø Rápida incorporación de nuevos recursos para los servidores virtualizados.
Ø Aislamiento de los sistemas operativos (la ejecución de un SO no va a afectar la ejecución de otro).
Ø Reducción de costos.
Ø Instalar sistemas operativos sin que dañen el sistema operativo de la máquina.
Ø Ejecutar aplicaciones antiguas.

Desventajas

Ø Uno de los inconvenientes de las máquinas virtuales es que agregan gran complejidad al sistema en tiempo de ejecución. Esto tiene como efecto la ralentización del sistema, es decir, el programa no alcanzará la misma velocidad de ejecución que si se instalase directamente en el sistema operativo “anfitrión”.
Ø No se pueden instalar aplicaciones que requieran aceleración 3D.
Ø Si se tiene un servidor con varias máquinas virtuales y falla el servidor físico fallarían todas las máquinas virtuales, lo cual no sucedería si cada máquina virtual estuviese en máquinas físicas separadas.
Virtual
Box
Oracle VM VirtualBox es un software de virtualización para arquitecturas x86 (32 bits). Actualmente es desarrollado por Oracle Corporation como parte de su familia de productos de virtualización. Por medio de esta aplicación es posible instalar sistemas operativos adicionales, conocidos como «sistemas invitados», dentro de otro sistema operativo «anfitrión», cada uno con su propio ambiente virtual.

SO donde puede instalarse

Linux, Mac OS X, OS/2 Warp, Microsoft Windows, y Solaris/OpenSolaris,

SO soportados

FreeBSD, Linux, OpenBSD, OS/2 Warp, Windows, Solaris, MS-DOS y muchos otros.

Carácterísticas

Ø Se puede configurar una máquina virtual que se adapte a la necesidad de la persona.
Ø Se pueden crear varias máquinas virtuales.
Ø Tiene un paquete de controladores que permiten aceleración en 3D, pantalla completa, hasta 4 placas de red Gigabit, integración con teclado y mouse. (Trae los drivers requeridos por el SO).
Ø Los discos duros son almacenados en archivos dentro del sistema operativo huésped.
Ø Otra de las funciones que presenta es la de montar imágenes ISO como unidades virtuales ópticas de CD o DVD, o como un disquete.
Virtual PC
Windows Virtual PC es un software gestor de virtualización desarrollado por Connectix y comprado por Microsoft para crear equipos virtuales. Es decir, su función es emular mediante virtualización, un hardware sobre el que funcione un determinado sistema operativo. Con esto se puede conseguir ejecutar varios sistemas operativos en la misma máquina a la vez y hacer que se comuniquen entre ellos.

Desventajas


Ø No soporta USB.
Ø No presenta soporte para todos los programas, debido a que pueden existir fallos debido a errores en la sincronización de las operaciones.
Ø La emulación en Macintosh es de recompilación dinámica para traducir código x86 a código de un Mac con procesador PowerPC. En los Mac con procesador Intel no existe una versión de VirtualPC con lo que hay que acudir a otro tipo de soluciones.
Ø La emulación en Windows también es de recopilación dinámica, pero solo traduce el modo de kernel y el modo real x86 a código de usuario x86, mientras el usuario original corre en forma nativa o verdadera.

Ventajas

Ø Un mejor Rendimiento en el sistema operativo huésped.
Ø Integración con el ratón
Ø Controlador de vídeo optimizado
Ø Resolución de la pantalla dinámica (Se puede Cambiar fácilmente la resolución de la pantalla del huésped solo redimensionando la ventana de la Máquina Virtual)
Ø Sincronización de tiempo con el anfitrión
Ø Sincronización del portapapeles
Ø Capacidades de Arrastrar archivos entre la ventana del SO huésped y el anfitrión
Ø Carpetas Compartidas

Sistemas operativos Soportados

Windows 7, Vista, Server 2003 y 2008, XP, Me, NT, 95, 3.1, 1.0, OS/2, MS-DOS, Linux.

Requisitos del Virtual PC

Ø Procesador AMD Athlon Dual Core X2 a 1.50Ghz o Intel Celeron
Ø 2GB De Memoria RAM
Ø Hardware de Virtualización Activado
Ø Tarjeta de video con por lo menos 64MB de VRam
Ø Resolución de pantalla 800x600
Ø Conexión a Internet de Banda Ancha
Ø 48.5 MB Libres En el Disco Duro (Se Recomienda 2 GB para La instalación de Sistemas Virtuales)

Socket

Es un método para la comunicación entre un programa del cliente y un programa del servidor en una red. Un socket se define como el punto final en una conexión. Los sockets se crean y se utilizan con un sistema de peticiones o de llamadas de función a veces llamados interfaz de programación de aplicación de sockets (API, application programming interface).
Los sockets permiten implementar una arquitectura cliente-servidor o peer-to-peer. La comunicación debe ser iniciada por uno de los programas que se denomina programa "cliente". El segundo programa espera a que otro inicie la comunicación, por este motivo se denomina programa "servidor".
Un socket es un proceso o hilo existente en la máquina cliente y en la máquina servidora, que sirve en última instancia para que el programa servidor y el cliente lean y escriban la información. Esta información será la transmitida por las diferentes capas de red.

Interfaz Socket

La Interface de sockets es una API para redes TCP/IP que se compone de funciones o rutinas. Originalmente se construyó a principios de los 80 para el sistema operativo UNIX , aunque hoy en día también la utilizan otros sistemas operativos como Microsoft Windows, Mac, OS2, etc.
Tipos de Socket
Sockets Stream (TCP) Orientados a Conexión
Se debe realizar una comunicación entre el emisor y el receptor antes de comenzar a enviar los datos, de lo contrario no se podrán enviar los datos.
El protocolo de comunicaciones con streams es un protocolo orientado a conexión, ya que para establecer una comunicación utilizando el protocolo TCP, hay que establecer en primer lugar una conexión entre un par de sockets. Mientras uno de los sockets atiende peticiones de conexión (servidor), el otro solicita una conexión (cliente). Una vez que los dos sockets estén conectados, se pueden utilizar para transmitir datos en ambas direcciones.
Son un servicio orientado a conexión, donde los datos se transfieren sin encuadrarlos en registros o bloques. Si se rompe la conexión entre los procesos, éstos serán informados de tal suceso para que tomen las medidas oportunas.

Sockets Datagrama (UDP) No Orientados a Conexión

Son un servicio de transporte sin conexión. Son más eficientes que TCP, pero en su utilización no está garantizada la fiabilidad. Los datos se envían y reciben en paquetes, cuya entrega no está garantizada. Los paquetes pueden ser duplicados, perdidos o llegar en un orden diferente al que se envió.
El protocolo de comunicaciones con datagramas es un protocolo sin conexión, es decir, cada vez que se envíen datagramas es necesario enviar el descriptor del socket local y la dirección del socket que debe recibir el datagrama. Como se puede ver, hay que enviar datos adicionales cada vez que se realice una comunicación, aunque tiene la ventaja de que se pueden indicar direcciones globales y el mismo mensaje llegará a muchas máquinas a la vez.

Sockets Raw

Son sockets que dan acceso directo a la capa de software de red subyacente o a protocolos de más bajo nivel. Se utilizan sobre todo para la depuración del código de los protocolos.

Dominio de un Socket

Agrupa todos aquellos sockets que comparten carácterísticas comunes. Especifica el formato de las direcciones que se podrán dar al socket y los diferentes protocolos soportados por las comunicaciones vía los sockets de este dominio.

Primitivas de un Socket

Todos los sockets proporcionan una serie de primitivas, las cuales están orientadas a ser utilizadas por sus usuarios, de forma que se pueda establecer una comunicación determinada, y marcar unas pautas dentro de la misma.
Cada socket puede ser usado de múltiples formas y por diferentes usuarios, lo que invita a que para su mayor comprensión, sea prácticamente indispensable estudiar el conjunto de primitivas que ofrece.

Socket:


Cree un descriptor para que sea usado en la comunicación.

Connect:


Conexión con un cliente remoto.

Write:


Envía datos a través de una conexión.

Read:


Lee los datos entrantes de una conexión.

Close:


Termina la conexión y elimina el descriptor.

Accept:


Acepta la conexión entrante.

Send:


Envía un datagrama.

Modelo Cliente-Servidor

El modelo cliente/servidor, es el modelo de ejecución que siguen todas las aplicaciones de red. Un servidor es un proceso que se está ejecutando en un nodo de la red, y su función es gestionar el acceso a un determinado recurso. Un cliente es un proceso que se ejecuta en el mismo nodo, o en uno diferente, y que realiza peticiones al servidor. Las peticiones están originadas por la necesidad de acceder al recurso que gestiona el servidor.

Entradas relacionadas: