CLOUD COMPUTING

VIRTUALIZACIÓN Y CLOUD COMPUTING

Linux es un sistema operativo multiusuario, lo que significa que muchos usuarios diferentes pueden trabajar en el mismo sistema al mismo tiempo y en su mayor parte no pueden hacer cosas para dañar a otros usuarios. Sin embargo, esto tiene limitaciones: los usuarios pueden acaparar el espacio en disco o tomar demasiada memoria o recursos de la CPU y causar que el sistema sea lento para todos. Compartir el sistema en modo multiusuario también requiere que cada uno ejecute en modo de usuarios sin privilegios, por lo que permitir que cada usuario ejecuta su propio servidor web es muy difícil.

La virtualización es un proceso donde un equipo físico, llamado host, ejecuta múltiples copias de un sistema operativo, cada una llamada invitado. El host ejecuta un software llamado hipervisor que cambia el control entre los diferentes invitados, tal como el kernel de Linux funciona para los procesos individuales.

La virtualización funciona porque los servidores pasan la mayor parte de su tiempo inactivo y no necesitan recursos físicos tales como un monitor y un teclado. Ahora puedes tomar una potente CPU y difundirla alrededor de varias máquinas virtuales y mantener una distribución más equitativa entre los invitados de lo que es posible en un sistema de Linux de puro. La principal limitación es por lo general la memoria, con los avances en la tecnología de hipervisor y la CPU es posible poner más máquinas virtuales en un host que nunca.

En un entorno virtualizado un host puede ejecutar docenas de sistemas operativos invitados, y con el apoyo de la CPU, los invitados no saben que se están ejecutando en una máquina virtual. Cada invitado obtiene su propia CPU, RAM y disco virtual y se comunica con la red. Ni siquiera es necesario ejecutar el mismo sistema operativo en todos los invitados, lo que reduce aún más el número de servidores físicos necesarios.

La virtualización ofrece una manera para que una empresa reduzca su consumo de energía y espacio de centro de datos frente a una flota equivalente de servidores físicos. Los invitados ahora sólo son configuraciones de software, así que es fácil proporcionar una nueva máquina para una prueba y destruirla cuando haya pasado su utilidad.

Si es posible ejecutar varias instancias de un sistema operativo en una máquina física y conectarse en la red, entonces la ubicación de la máquina no importa. El Cloud Computing (Cómputo o Informática en la Nube) toma este enfoque y te permite tener una máquina virtual en un centro de datos remoto que no posees y sólo pagas por los recursos que utilizas. Los proveedores de Cloud Computing pueden tomar ventaja de las economías de escala para ofrecer recursos de computación a mejores precios de lo que costaría adquirir tu propio hardware, espacio y enfriamiento.

Los servidores virtuales sólo son una faceta de Cloud Computing. También puedes obtener almacenamiento de archivos, bases de datos o incluso software. La clave en la mayoría de estos productos es que pagas por lo que usas, por ejemplo una cierta cantidad por giga bytes de datos por mes, en lugar de comprar el hardware y el software para darle hospedaje tu mismo. Algunas situaciones son más adecuadas para la nube que otros. Preocupaciones de seguridad y el rendimiento son generalmente los primeros elementos que surgen seguidos por el costo y la funcionalidad.

Linux juega un papel fundamental en el Cloud Computing. La mayoría de los servidores virtuales se basa en algún tipo de kernel de Linux, y Linux se suele utilizar para alojar las aplicaciones detrás de los servicios del Cloud Computing.

LINUX

VSFTPD

Vsftpd significa “Very Secure FTP Daemon” (Demonio FTP muy seguro), y es un servidor FTP para Linux y otros sistemas operativos UNIX. Como el nombre indica, se trata de un servidor de este tipo mucho más seguro que los estándares, además de que ofrece varias opciones interesantes:

  • Configuraciones de IP virtual
  • usuarios virtuales
  • Operaciones autónomas o inetd
  • Potente configuración por usuario
  • Acelerador del ancho de banda
  • Configuración de IP por fuentes
  • Límites de IP por fuentes
  • IPv6
    Soporte a codificación con integración SSL

Y por si eso fuera poco, para más seguridad, un gran número de aplicaciones de software libre y corporaciones de informática están apostando por la estabilidad de vsftpd, poniéndolo a prueba bajo condiciones extremas en las que tienen que transferir enormes cantidades de datos. Aunque parezca mentira, puedes descargarlo totalmente gratis desde su página Web oficial o instalarlo a través de los repositorios de una distribución Linux.

descarga.png

https://security.appspot.com/vsftpd.html

LINUX

CARACTERÍSTICAS DE LINUX

El sistema operativo LINUX fue desarrollado buscando la portabilidad de las fuentes: casi todo el software gratuito desarrollado para UNIX se compila en LINUX sin problemas. Y todo lo que se hace para LINUX (código del núcleo, controladores, librerías y programas de usuario) es de libre distribución.

En LINUX también se implementa el control de trabajos POSIX (que se usa en los shells csh y bash) y las pseudoterminales (dispositivos pty). Además, soporta consolas virtuales, lo que permite tener más de una sesión abierta en la consola de texto y conmutar entre ellas fácilmente.

LINUX soporta diversos sistemas de archivos para guardar los datos. Algunos de ellos, como el ext2fs, han sido desarrollados específicamente para LINUX.

LINUX implementa todo lo necesario para trabajar en red con TCP/IP. Desde controladores para las tarjetas de red más populares hasta SLIP/PPP, que permiten acceder a una red TCP/IP por puerto serial. También se implementan PLIP (para comunicarse por el puerto de la impresora) y NFS (para acceso remoto a archivos). Y también soporta los clientes de TCP/IP, como FTP, Telnet, y SMTP.

Con el fin de incrementar la memoria RAM disponible, LINUX implementa la paginación con el disco duro, es decir, puede tener varios megabytes de espacio de intercambio o “swap” con el disco duro. Cuando el sistema necesita más memoria, expulsará páginas inactivas al disco, permitiendo la ejecución de programas más grandes o aumentando el número de usuarios que puede atender a la vez. Sin embargo, el espacio de intercambio no puede suplir totalmente a la memoria RAM, ya que el primero es mucho más lento que ésta.

MULTITAREA

La palabra multitarea describe la capacidad de ejecutar muchos programas al mismo tiempo sin detener la ejecución de cada aplicación.

Se le denomina multitarea prioritaria o preventiva ya que posibilita la ejecución simultánea de varios programas, siempre que las características del host lo permitan, es decir, cada programa tiene garantizada la oportunidad de ejecutarse, y se ejecuta hasta que el sistema operativo da prioridad a otro programa para su ejecución. Así, los programas se ejecutan hasta que permiten voluntariamente que otros programas también lo hagan.

El microprocesador sólo es capaz de hacer una tarea a la vez, pero las realiza en tiempos tan cortos que se escapan a nuestra comprensión, es por eso que en los momentos que no este trabajando para determinada tarea, se dedica a ejecutar otras que se le hayan pedido.

Es fácil ver las ventajas de disponer de multitarea prioritaria. Además de reducir el tiempo muerto (tiempo en el que no puede seguir trabajando en una aplicación

porque un proceso aún no ha finalizado), da la flexibilidad de no tener que cerrar las ventanas de las aplicaciones antes de abrir y trabajar con otras.

LINUX y otros sistemas operativos multitarea prioritaria consiguen el proceso de prioridad supervisando los procesos que esperan para ejecutarse, así como los que se están ejecutando. El sistema programa cada proceso para que dispongan de las mismas oportunidades de acceso al microprocesador. El resultado es que las aplicaciones abiertas parecen estar ejecutándose al mismo tiempo, pero en realidad, hay una demora de billonésimas de segundo entre el momento en que el procesador ejecuta una serie de instrucciones de una aplicación y el momento programado por LINUX para volver a dedicar tiempo a dicho proceso.

MULTIUSUARIO

La idea de que varios usuarios pudieran acceder a las aplicaciones o la capacidad de proceso de un único host era una utopía hace relativamente pocos años.

La capacidad de LINUX para asignar el tiempo de microprocesador simultáneamente a varias aplicaciones ha derivado en la posibilidad de ofrecer servicio a diversos usuarios a la vez, ejecutando cada uno de ellos una o más aplicaciones. La característica que más resalta de LINUX es que un grupo de personas puede trabajar con la misma aplicación al mismo tiempo, desde el mismo terminal o desde terminales distintos.

MULTIPLATAFORMA

Las plataformas de hardware en las que en un principio se puede utilizar LINUX son 386-, 486, Pentium Pro, Pentium II/III/IV. También existen versiones para su utilización en otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC.

CONVIVENCIA CON OTROS SISTEMAS OPERATIVOS

Pueden estar juntos pero no funcionar al mismo tiempo. Cada vez que arrancamos un host, podemos elegir cual de ellos se debe cargar, y a partir de este momento sólo podremos utilizar aplicaciones destinadas al Sistema Operativo que estamos ejecutando.

LINUX

KERNEL O NÚCLEO DE GNU/LINUX

El kernel del sistema GNU/LINUX (al que habitualmente se le denomina LINUX) es el corazón del sistema: se encarga de arrancar el sistema, para que sea utilizable por las aplicaciones y los usuarios. Gestiona los recursos del host para la gestión de la memoria, sistema de archivos, entrada/salida, procesos e intercomunicación de procesos.

El núcleo o kernel es la parte básica de cualquier sistema operativo, y en él descansa el código de los servicios fundamentales para controlar el sistema entero. Básicamente, su estructura se puede separar en:

  • Gestión de procesos: qué tareas se van a ejecutar y en qué orden y prioridad. Un aspecto importante es la planificación de CPU(Unidad Central de Procesamiento), cómo se optimiza el tiempo de la CPU para ejecutar las tareas con el mayor rendimiento o interactividad posible con los usuarios.
  • Intercomunicación de procesos y sincronización: cómo se comunican tareas entre sí, con qué diferentes mecanismos y cómo pueden sincronizarse grupos de tareas.
  • Gestión entrada/salida (E/S): control de periféricos y gestión de recursos asociados.
  • Gestión de memoria: optimización del uso de la memoria, sistema de paginación y memoria virtual.
  • Gestión de archivos: cómo el sistema controla y organiza los archivos presentes en el sistema y el acceso a los mismos.
DERECHO INFORMÁTICO, LINUX

SOFTWARE LIBRE Y OPEN SOURCE

Desde su origen LINUX se desarrolló bajo licencia pública GNU, lo que implica que se distribuye de manera gratuita y junto al código fuente de las aplicaciones incluidas, se puede copiar y distribuir libremente, o modificar el código fuente para mejorarlo o adaptarlo a nuestras necesidades, pero sin dejar de mencionar el autor original y de mantenerlo bajo la misma licencia.

Por otra parte, la Fundación de Software Libre FSF (Free Software Foundation), mediante su proyecto GNU, produce software (desde 1984) que puede ser utilizado libremente. En este modelo, el negocio no está en la ocultación del código, sino en el software complementario añadido, en la adecuación del software a los clientes y en los servicios agregados, como el mantenimiento y la formación de usuarios.

Frente a un código de tipo propietario, en el cual un fabricante (empresa de software) encierra su código, ocultándolo y restringiéndose los derechos a sí misma, sin dar posibilidad de realizar ninguna adaptación ni cambios que no haya realizado previamente la empresa fabricante.

Los programas con código abierto ofrecen las siguientes consideraciones:

  • Acceso al código fuente, ya sea para estudiarlo o modificarlo, para corregir errores, adaptarlo o añadir más prestaciones.
  • Gratuidad: normalmente, el software, ya sea en forma binaria o en la forma de código fuente, puede obtenerse libremente o por una módica cantidad en concepto de gastos de empaquetamiento, distribución y valores añadidos.
  • Evitar monopolios de software propietario: no depender de una única opción o único fabricante del software. Esto es más importante cuando se trata de una gran organización, ya sea una empresa o estado, los cuales no pueden (o no deberían) ponerse en manos de una determinada única solución y pasar a depender exclusivamente de ella.
  • Un modelo de avance, no basado en la ocultación de información, sino en la compartición del conocimiento, para lograr progresos de forma más rápida, con mejor calidad, ya que las elecciones tomadas están basadas en el consenso de la comunidad.
LINUX

GNU/LINUX

GNU/LINUX se ha desarrollado según las normas POSIX (Portable Operating System Interface) y en base al sistema UNIX; es capaz de ejecutar aplicaciones en modo gráfico, aplicaciones TCP/IP, edición de texto, transferencia de archivos entre sistemas Unix, software de correo, etc.

Cabe mencionar que el sistema gráfico de GNU/LINUX no es tan potente como el de texto pero puede ofrecer un ambiente más simple y cómodo para el usuario.

GNU/LINUX es un sistema operativo compatible UNIX. Se caracteriza porque es libre lo que implica que no hay que pagar ningún tipo de licencia para su uso, y por ser un sistema abierto, lo que significa que su código es público. El sistema está conformado por el núcleo o kernel y una serie de programas y bibliotecas que hacen posible su utilización. GNU/LINUX y gran parte de sus aplicaciones, bibliotecas y programas son distribuidos bajo la licencia GPL(Licencia Pública GNU).