Emulación y simulación. (Diferencias que existen entre ambas).

¿Qué es un Emulador?

En términos informáticos, un emulador es un software de programa que permite ejecutar otros programas o videojuegos en una plataforma (ya sea hardware o un sistema operativo) distinto de aquel para el cual fueron escritos originariamente.

Un emulador trata de modelar de forma precisa el dispositivo de manera que funcione como si estuviera siendo usado en el aparato original. Un emulador es un software pensado para ejecutar programas de diversas índoles en una plataforma o sistema operativo diferente al programa que queremos abrir o ejecutar.

Los emuladores son utilizados para poder utilizar juegos antiguos o de plataformas diversas desde nuestro ordenador, empleando para ello un archivo llamado ROM. También son muy útiles para probar software de otros sistemas operativos, como por ejemplo, sistemas Linux y programas Windows y viceversa o también programas Mac en Windows.

¿Qué es Simulación?

 La Simulación es la imitación del funcionamiento de un sistema real durante un intervalo de tiempo. Esta simulación puede realizarse ya sea de forma manual o computacional. La simulación se basa en un modelo de la realidad que cuenta una historia y al observar el comportamiento de esta, nos permite obtener conocimiento acerca del sistema real.El comportamiento de la simulación está determinado por el modelo de simulación o conjunto de supuestos concernientes al Sistema real, estos supuestos se expresan a través de relaciones lógicas y Matemáticas entre las entidades.

Simular (que simula o finge). Aparato o instalación que simula un fenómeno o reproduce el funcionamiento de una máquina, vehículo, etc. Es muy utilizado en adiestramientos. Para comprender mejor la diferencia entre un emulador y un simulador, ejemplifiquemos: en la aviación es muy común que a los pilotos se les entrene en un simulador de vuelo (que simula –valga la redundancia- las condiciones de vuelo que pueden presentarse) con un emulador de la cabina de la aeronave.

Tipos de simulaciones:

 

Virtualizadores

DESCRIPCIÓN DE VARIAS OPCIONES PARA LA VIRTUALIZACIÓN.

VirtualBox

Se trata, probablemente, de la aplicación más utilizada a nivel de escritorio. Resulta sencilla de utilizar y cuenta con una interfaz de configuración fácil de entender y usar, incluso para no expertos.

La compañía que está detrás de VirtualBox es Oracle, una de las mayores compañías de software del mundo. Esta aplicación ofrece soporte tanto para plataforma 32 como 64 bits, tanto en sistema anfitrión como cliente. Encontraremos disponibles para descarga la opción OSE (Open Source Edition) y la opción gratuita, bajo licencia Personal Use and Evaluation License.

Como sistema anfitrión, VirtualBox está disponible para GNU/Linux, Mac OS X y Windows. Como cliente, ofrece soporte para sistemas GNU/Linux, Solaris, Windows, OpenSolaris, DOS, OS/2, *BSD, QNX, Haiku y ReactOS.

Con VB podremos usar los puertos paralelos, serie y usb de nuestro equipo, así como usar imágenes de otras aplicaciones de virtualización como VMware y compartir directorios entre el sistema cliente y servidor. Además, tiene soporte para aceleración 3D.

VMware Player

Otra de las opciones muy utilizadas en este campo. Tanto VMware Player como VMware Server se ofrece para descarga gratuitamente. Ofrece soporte, tanto en SO cliente como servidor, para plataforma 32 y 64 bits. Los sistemas clientes pueden ser GNU/Linux, Windows, Solaris, OpenSolaris, DOS, OS/2, *BSD, QNX, Haiku y ReactOS. Al igual que VirtualBox, pueden usarse los puertos paralelo, usb y serie, tiene soporte para aceleración 3D y puede compartir carpetas con el sistema anfitrión.

QEMU

Se trata de una opción libre que, a diferencia de los anteriores, no dispone de una interfaz gráfica por defecto con las opciones de configuración. Sin embargo, los usuarios de GNU/Linux disponemos de la opción de instalar Quemu launcher para acceder a una interfaz básica del programa.

Ofrece soporte tanto para plataforma x86 como x86-64 y viene con un servidor VNC integrado para control remoto. Al igual que VB, podremos encontrar Qemu vía los repositorios de numerosas distribuciones.

KVM

“Kernel-based Virtual Machine”. Se trata de una aplicación libre y sólo disponible para plataforma Linux (como anfitrión) con la que podremos usar sistemas cliente basados en Linux, sistemas Windows, Solaris, OpenSolaris, DOS, OS/2, *BSD, QNX, Haiku y ReactOS. Al igual que las otras opciones, ofrece soporte para plataformas 32 y 64 bits y podremos usar los puertos usb, paralelo y serial de nuestro equipo.

OpenVZ

OpenVZ se mueve sólo entre sistemas GNU/Linux, es decir, no podremos usarlo para tener como sistema cliente sistemas Windows, por ejemplo. Sin embargo, la virtualización en el nivel de sistema operativo de OpenVZ proporciona mejor rendimiento, escabilidad, densidad, administración de recursos dinámicos, y facilidad de administración que las alternativas.

Tanto para la creación como para el manejo de los sistemas instaladors vía OpenVZ y de los parámetros de esta aplicación, podremos echar mano de las órdenes en terminal o usar una interfaz gráfica como EasyVZ, una solución libre que puede facilitar el trabajo a los no habituados a la línea de comandos.

Linux-VServer

Al igual que la opción anterior, se trata de una aplicación libre y con soporte únicamente de sistemas basados en Linux. No debemos confundir esta aplicación con Linux Virtual Server, solución para gestionar balance de carga en sistemas Linux. Puede usarse también sobre plataformas 64 bits (como anfitrión).

Xen

Es una aplicación libre para virtualización de sistemas basados en Linux, Solaris, Windows, OpenSolaris, DOS, OS/2, BSD, QNX, Haiku o ReactOS, usando un sistema GNU/Linux como anfitrión.

Como la anterior opción, puede ser usada en un sistema anfitrión de 64 bits y también puede correr sistemas clientes de la misma plataforma. También podremos usar los puertos usb, serie y parelelo del equipo. Xen también ofrece soporte de aceleración 3D.

No se trata de una aplicación sencilla de configurar para los no entendidos pero es la opción elegida por muchos administradores por su buen rendimiento gracias a la técnica de la paravirtualización usada por Xen. Como nota característica de Xen, encontramos que usa la paravirtualización para ofrecer un buen rendimiento con baja penalización.

 

 

Crear un puente (Bridge)

Como crear un puente en fedora 28

Crearemos un puente o bridge para poder utilizar KVW.

Entramos a la dirección /etc/sysconfig/network-scripts

Después agregaremos lo siguiente al documento ifcfg-eth0 (en unos casos puede ser ifcfg-ens5 o diferente numero, pero en este caso sera ifcfg-eth0):

DEVICE=eth0
ONBOOT=yes
BRIDGE=br0

Luego, se debe crear el archivo de configuración para la interfaz br0:

#vi ifcfg-br0
o
#vi /etc/sysconfig/network-scripts/ifcfg-br0

Después agregaremos lo siguiente al documento ifcfg-br0:

DEVICE=br0
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=dhcp
DELAY="0"

Para crear un nuevo bridge usaremos este comando

$ ip link add br0 type bridge

Como ya lo aviamos creado nos  mencionara en un mensaje.

En este punto, ip link nos mostrara que la interfaz de red existe, pero aparece como down state, y no tiene interfaces conectadas.

 3: br0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
  link/ether 12:bb:3a:9c:02:33 brd ff:ff:ff:ff:ff:ff

En unos casos solo aparecerá que la interfaz de red ya existe

Después agregas las interfaces de redes físicas que necesites al bridge.

$ ip link set eth0 master br0

Si tu quieres la configuración del bridge utiliza este comando:

$ brctl show br0

y aparecerá lo siguiente:

bridge name bridge id STP enabled interfaces
br0 8000.5254004bc595 no eth0

entramos a la siguiente dirección

/sys/class/net/br0/bridge/stp_state

y borramos el 0 y ponemos 1 para activarlo

Después volvemos a verificar y aparecerá de esta forma

$ brctl show br0
bridge name bridge id STP enabled interfaces
br0 8000.5254004bc595 yes eth0

y al final activamos el br0 con la siguiente linea

ifup br0 

Con esto ya tendríamos nuestro puente hecho.

Configurar una Interfaz Bridge en CentOS 7

Manual para crear un bridge ethernet a partir de una simple interfaz eth0.

                 |‾‾‾‾‾‾|       |‾‾‾‾‾|
        LAN ===> | eth0 | <===> | br0 | ===> Máquinas virtuales KVM
                 |______|       |_____|

Antes de agregar la interfaz bridge es necesario desactivar el servicio “NetworkManager”, ya que el mismo no funciona correctamente con este modo. Para esto vamos a corres los siguientes comandos:

       # chkconfig NetworkManager off
       # chkconfig network on
       # service NetworkManager stop

Ahora tendremos que configurar las interfases de red utilizando los archivos del directorio siguiente:

       #cd /etc/sysconfig/network-scripts/

Una vez deshabilitado el servicio, es necesario configurar la interfaz eth0 como se muestra a continuación:

       #vi ifcfg-eth0
       o
       #vi /etc/sysconfig/network-scripts/ifcfg-eth0

Después agregaremos lo siguiente al documento ifcfg-eth0:

       DEVICE=eth0
       ONBOOT=yes
       BRIDGE=br0

Luego, se debe crear el archivo de configuración para la interfaz br0:

       #vi ifcfg-br0
       o
       #vi /etc/sysconfig/network-scripts/ifcfg-br0

Después agregaremos lo siguiente al documento ifcfg-br0:

      DEVICE=br0
      ONBOOT=yes
      TYPE=Bridge
      BOOTPROTO=dhcp
      DELAY="0"

Una vez finalizado se reinicia el servicio de networking:

      # systemctl restart network

Máquinas Virtuales

Una máquina virtual no es más que un software capaz de cargar en su interior otro sistema operativo haciéndole creer que es un PC de verdad. Tal y como su nombre indica, el concepto es tan sencillo como crear una máquina (PC, consola, móvil o lo que sea) que en vez de ser física es virtual o emulada.

Una máquina virtual no es realmente ninguna máquina llena de engranajes con un casco de realidad virtual, sino un software. Lo primero que debes saber es que hay dos tipos de máquinas virtuales diferenciadas por su funcionalidad: las de sistema y las de proceso, si bien la gran mayoría de las veces que oigas hablar de una máquina virtual casi seguro que se estarán refiriendo a las de sistema.

¿Cómo se usa una máquina virtual?

Para usar una máquina virtual lo primero que necesitas es instalar una aplicación en tu PC capaz de crearla o al menos reproducirla. Hay varias aplicaciones muy conocidas capaz de hacer esto, aunque las más famosas son VMWare, VirtualBox, QEMU y Parallels.

¿Para qué se usan las máquinas virtuales?

Estos son los principales usos:

  • Para poder probar otros sistemas operativos. Instalar un sistema operativo en tu PC es un proceso largo, aburrido y difícil de revertir si no estás satisfecho con los resultados. Así, cuando hay una nueva versión de Windows es más fácil y seguro probarla instalándola en una máquina virtual que en tu disco duro. Si algo va mal, la borras y se acabó, sin arriesgarte a perder mucho tiempo o tus datos.
  • Para ejecutar programas antiguos. ¿Qué pasa cuando tu negocio depende de un software que no se actualiza desde hace 20 años? Si no puedes modernizar el software no te queda otra que seguir cargándolo en un sistema operativo de su época. Con una máquina virtual este sistema antiguo puede funcionar en hardware actual en vez de en una chatarra de PC. Lo mismo se puede aplicar a juegos antiguos que han dejado de funcionar en hardware o software moderno.
  • Para usar aplicaciones disponibles para otros sistemas. También es posible que necesites una máquina virtual para ejecutar aplicaciones que han sido desarrolladas para otro sistema operativo distinto al que estás usando. Por ejemplo, para usar una aplicación para Linux desde Windows, o vice versa.
  • Para probar una aplicación en distintos sistemas. Como desarrollador de una aplicación te interesa que funcione correctamente en la mayor cantidad de configuraciones posibles, y eso incluye distintas versiones de sistemas operativos. Una opción es tener media docena de PC instalados con distintas versiones de Windows… o simplemente uno con máquinas virtuales de cada versión.
  • Como seguridad adicional. Al estar aislada del resto, una máquina virtual te proporciona una seguridad adicional en tareas precisas en las que quieres estar seguro de que una aplicación no tendrá acceso al resto de tus datos. Es por eso que se suelen usar para hacer cosas tan peligrosas como instalar virus y malware para estudiarlos.
  • Para aprovechar su gran dinamismo. Por su naturaleza las máquinas virtuales son muy útiles en ocasiones donde necesitas un extremo dinamismo en el sistema. Puedes guardar estados (copias exactas de sus datos), ampliarlas, moverlas a un hardware totalmente distinto y seguirán funcionando sin problemas. Por esto son imprescindibles por ejemplo en empresas con servidores web que hospedan multitud de máquinas con las páginas web de sus clientes.

Como crear un LAMP

Infraestructura LAMP

Instalación de sistema de infraestructura de internet LAMP.

LAMP es el acrónimo usado para describir un sistema de infraestructura de internet que usa las siguientes herramientas:

  • Linux, el sistema operativo; En algunos casos también se refiere a LDAP.
  • Apache, el servidor web.
  • MySQL/MariaDB, el gestor de bases de datos.
  • Perl, PHP, o Python, los lenguajes de programación.

Apache

Para poder instalar Apache seguiremos estos pasos:

# yum install httpd

Configurar para que el servicio arranque al inicio del equipo

# chkconfig httpd on           (CentOS 6)
# systemctl enable httpd       (CentOS 7)

Iniciar el servicio de httpd

# service httpd start          (CentOS 6)
# systemctl start httpd        (CentOS 7)

MySQL (C6) o MariaDB (C7)

Instalación del servicio mysql:

# yum install mysql-server     (Centos 6)
# yum install mariadb-server   (Centos 7)

Configuración para que el servicio arranque al inicio del equipo:

# chkconfig mysqld on          (CentOS 6)
# systemctl enable mariadb     (CentOS 7)

Configuración para que el servicio arranque al inicio del equipo:

# service mysqld start         (CentOS 6)
# systemctl start mariadb      (CentOS 7)

Se Realiza una instalacion segura de MySQL:

# mysql_secure_installation
Enter current password for root (enter for none): <-- ENTER (Al tratarse de una configuracion nueva el pass esta en blanco)
Set root password? [Y/n] <-- Y
New password: <-- fill in your desired MySQL root password
Re-enter new password: <-- confirm that password
Remove anonymous users? [Y/n] <-- Y
Disallow root login remotely? [Y/n] <-- Y
Remove test database and access to it? [Y/n] <-- Y
Reload privilege tables now? [Y/n] <-- Y

Para probar la terminal de mysql, ingresaremos el siguiente comando:

# mysql -u root -p

Instalación de PHP

Modulo de PHP en apache

# yum install php

Instalación del soporte de MySQL y PHP:

# yum install -y php-mysql php-gd php-imap php-ldap php-mbstring php-odbc php-pear php-xml php-xmlrpc php-ldap

Reiniciar el servicio de Apache para que se vea reflejado:

# service httpd restart     (Centos6)
# systemctl restart httpd   (Centos7)

Cortafuegos

Iptables (Centos6)

Editar el archivo de las IPTABLES para poder visualizar la pagina

 # vi /etc/sysconfig/iptables

Agregar la siguiente linea

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEP
Sugerencia: ponerla debajo de la que abre el puerto 22

De este modo:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Por ultimo reiniciar el servicio de las IPTABLES:

# service iptables restart

Firewall (Centos7)

Agregar el servicio http

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --reload

Y ya hemos creado nuestro LAMP.

Ahora para poder ver PHP en nuestro servidor debemos de hacer los siguiente:

Creamos un nuevo archivo

sudo nano /var/www/html/info.php

y agregamos lo siguiente

<?php
phpinfo();
?>

guardamos y salimos y reiniciamos nuestro servidor para que se vean los cambios

sudo service httpd restart

ahora accedemos a http://12.34.56.789/info.php (la ip depende de tu equipo asi que asegura cambiarla) y nos mostrara la pagina con las caracteristicas de php

¿Qué es la virtualización?

La virtualización es el proceso de crear una representación basada en software (o virtual), en lugar de una física. La virtualización se puede aplicar a servidores, aplicaciones, almacenamiento y redes, y es la manera más eficaz de reducir los costos de TI y aumentar la eficiencia y la agilidad de los negocios de cualquier tamaño.

Funcionamiento de la virtualización.

Gracias a la virtualización, se utiliza el software para simular la existencia de hardware y crear un sistema informático virtual. Esto permite que las empresas ejecuten más de un sistema virtual, además de múltiples sistemas operativos y aplicaciones, en un único servidor. De esta manera, se pueden ofrecer economías de escala y una mayor eficiencia.

Tipos de virtualización.

  • Virtualización de servidores:

La mayoría de los servidores funcionan a menos del 15 % de su capacidad, lo que causa la expansión de servidores y aumenta la complejidad. Gracias a la virtualización de servidores, se abordan estas ineficiencias mediante la ejecución de varios sistemas operativos como máquinas virtuales en un único servidor físico. Cada una de las máquinas virtuales tiene acceso a los recursos de procesamiento del servidor subyacente.

El paso siguiente es agregar un clúster de servidores a un recurso único y consolidado, gracias a lo cual se aumenta la eficiencia general y se reducen los costos. La virtualización de servidores también permite una implementación de cargas de trabajo más rápida, un aumento del rendimiento de las aplicaciones y una disponibilidad superior. Pruebe el Hands-on Lab Introducción a la virtualización.

  • Virtualización de redes

La virtualización de redes es la reproducción completa de una red física en software. Las aplicaciones se ejecutan en la red virtual exactamente igual que en una red física. La virtualización de redes brinda dispositivos y servicios de red lógicos (es decir, puertos lógicos, switches, enrutadores, firewalls, balanceadores de carga, redes privadas virtuales [VPN, Virtual Private Network] y mucho más) a las cargas de trabajo conectadas. Las redes virtuales ofrecen las mismas funciones y garantías que una red física, junto con las ventajas operacionales y la independencia de hardware propias de la virtualización.

  • Virtualización de escritorios

La implementación de escritorios como un servicio administrado le permite responder con mayor rapidez a las necesidades y las oportunidades cambiantes. Puede reducir costos y aumentar el servicio mediante el suministro rápido y sencillo de escritorios y aplicaciones virtualizados a las sucursales, a los empleados en el extranjero y tercerizados, y a los empleados móviles con tabletas iPad y Android.