sistema operativo 'fundamentos

34
UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE Tecnologías de la información y comunicación Área de redes y telecomunicaciones Administración de servidores El administrador de cualquier tipo de servidor debe ser una persona especializada, que conozca lo mejor posible sus equipos, sus aplicaciones y sus usuarios; manteniéndose al día en los avances tecnológicos, en las revisiones y parches de los programas instalados y en las necesidades de su empresa. Ismael vallejo Vázquez 25/05/2012

Upload: izmaelw-wvw

Post on 25-Jul-2015

179 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Sistema Operativo 'Fundamentos

UNIVERSIDAD TECNOLOGICA DE TAMAULIPAS NORTE

Tecnologías de la información y comunicación

Área de redes y telecomunicaciones

Administración de servidores El administrador de cualquier tipo de servidor debe ser una persona especializada, que conozca lo mejor posible sus equipos, sus aplicaciones y sus usuarios; manteniéndose al día en los avances tecnológicos, en las revisiones y parches de los programas instalados y en las necesidades de su empresa. Ismael vallejo Vázquez 25/05/2012

Page 2: Sistema Operativo 'Fundamentos

ÍNDICE UNIDAD 1

FUNDAMENTOS DEL SISTEMA OPERATIVO

Sistema operativo

Que es

SO como maquina virtual

SO como administrador de recursos

Tareas de sistema operativo

Clasificación de sistema operativo

Ejemplos de sistema operativo

Prefijo de sistema internacional SERVIDORES

Servidores

Tipos de servidores

Servidor virtual

Maquina virtual

Tipos de maquinas virtuales

Virtualización

Tipos de virtualización

Ventajas de virtualización

Desventajas de virtualización

Ubuntu S O

Page 3: Sistema Operativo 'Fundamentos

SISTEMA OPERATIVO

Un Sistema Operativo (SO) es el software básico de una computadora que provee una interfaz entre el resto de programas del ordenador, los dispositivos hardware y el usuario.

QUE ES UN SISTEMA OPERATIVO

Un Sistema Operativo es el software encargado de ejercer el control y coordinar el uso del hardware entre diferentes programas de aplicación y los diferentes usuarios. Es un administrador de los recursos de hardware del sistema.

En una definición informal es un sistema que consiste en ofrecer una distribución ordenada y controlada de los procesadores, memorias y dispositivos de E/S entre los diversos programas que compiten por ellos. A pesar de que todos nosotros usamos sistemas operativos casi a diario, es difícil definir qué es un sistema operativo. En parte, esto se debe a que los sistemas operativos realizan dos funciones diferentes.

Proveer una máquina virtual, es decir, un ambiente en el cual el usuario pueda ejecutar programas de manera conveniente, protegiéndolo de los detalles y complejidades del hardware. Administrar eficientemente los recursos del computador

El sistema operativo como máquina virtual

Un computador se compone de uno o más procesadores o CPUs, memoria principal o RAM, memoria secundaria (discos), tarjetas de expansión (tarjetas de red, modems y otros), monitor, teclado, mouse y otros dispositivos. O sea, es un sistema complejo. Escribir programas que hagan uso correcto de todas estas componentes no es una tarea trivial. Peor aún si hablamos de uso óptimo. Si cada programador tuviera que preocuparse de, por ejemplo, como funciona el disco duro del computador, teniendo además siempre presentes todas las posibles cosas que podrían fallar, entonces a la fecha se habría escrito una cantidad bastante reducida de programas.

Es mucho más fácil decir `escriba "Chao" al final del archivo "datos"', que 1-Poner en determinados registros del controlador de disco la dirección que se quiere escribir, el número de bytes que se desea escribir, la posición de memoria donde está la información a escribir, el sentido de la operación (lectura o escritura), amén de otros parámetros; 2-Decir al controlador que efectué la operación. 3-Esperar. Decidir qué hacer si el controlador se demora más de lo esperado (¿cuánto es "lo esperado"?). 4-Interpretar el resultado de la operación (una serie de bits). 5-Reintentar si algo anduvo mal. 6-etc. Además, habría que rescribir el programa si se instala un disco diferente o se desea ejecutar el programa en otra máquina.

Hace muchos años que quedó claro que era necesario encontrar algún medio para aislar a los programadores de las complejidades del hardware. Esa es precisamente una de las tareas del sistema operativo, que puede

Page 4: Sistema Operativo 'Fundamentos

verse como una capa de software que maneja todas las partes del sistema, y hace de intermediario entre el hardware y los programas del usuario. El sistema operativo presenta, de esta manera, una interfaz o máquina virtual que es más fácil de entender y de programar que la máquina "pura". Además, para una misma familia de máquinas, aunque tengan componentes diferentes (por ejemplo, monitores de distinta resolución o discos duros de diversos fabricantes), la máquina virtual puede ser idéntica: el programador ve exactamente la misma interfaz.

El sistema operativo como administrador de recursos

La otra tarea de un sistema operativo consiste en administrar los recursos de un computador cuando hay dos o más programas que ejecutan simultáneamente y requieren usar el mismo recurso (como tiempo de CPU, memoria o impresora).

Además, en un sistema multiusuario, suele ser necesario o conveniente compartir, además de dispositivos físicos, información. Al mismo tiempo, debe tenerse en cuenta consideraciones de seguridad: por ejemplo, la información confidencial sólo debe ser accesada por usuarios autorizados, un usuario cualquiera no debiera ser capaz de sobre escribir áreas críticas del sistema, etc. (En este caso, un usuario puede ser una persona, un programa, u otro computador). En resumen, el sistema operativo debe llevar la cuenta acerca de quién está usando qué recursos; otorgar recursos a quienes los solicitan (siempre que el solicitante tenga derechos adecuados sobre el recurso); y arbitrar en caso de solicitudes conflictivas.

Las tareas que generalmente realiza un Sistema Operativo son las siguientes:

-Realizar el interfaz sistema-usuario. -Compartir los recursos de Hardware entre los usuarios. -Permitir a los usuarios compartir sus datos entre ellos. -Prevenir que las actividades de un usuario no interfieran en las de los demás usuarios. -Calendarizar los recursos de los usuarios. -Facilitar el acceso a los dispositivos de E/S. -Recuperarse de fallas o errores. -Llevar el control sobre el uso de los recursos. -Entre otras. Un sistema operativo está formado por varios programas que en conjunto presentan al usuario una vista integrada del sistema, los componentes principales de un sistema operativo son los siguientes módulos: -Manejo de procesos. -Manejo de E/S. -Manejo de Memoria. -Manejo del Sistema de Archivos. El sistema operativo indica a la computadora la manera de utilizar otros programas de software y administra todo el hardware, tanto el interno como el externo, que está instalado en la computadora. Los sistemas operativos pueden ser basados en caracteres o gráficos. Un sistema operativo basado en caracteres, tal como MS-DOS, le permite escribir comandos en un indicador para controlar la computadora. Un interfaz gráfico del usuario, o GUI, le permite enviar comandos a la computadora al hacer clic en iconos o al seleccionar elementos en los menús. Windows 95 cuenta con un GUI. La mayoría de los sistemas operativos pueden manejar programas de 16 ó 32 bits, o ambos. Microsoft Windows 3.x ejecuta únicamente los programas de 16 bits; Windows 95 de Microsoft puede ejecutar ambos programas de 16 ó 32 bits.

Page 5: Sistema Operativo 'Fundamentos

Clasificación de sistema operativo Podemos realizar una clasificación de los diversos sistemas operativos que existen atendiendo a varios criterios o características de estos. Estos criterios pueden ser atendiendo a las tareas, a la planificación o a la gestión de memoria. Tareas En este punto clasificamos los sistemas operativos atendiendo al número de tareas que puede atender simultáneamente. Tenemos dos tipos:

o

Monotarea: el sistema operativo solamente puede atender una tarea en un momento dado. Un ejemplo de S.O. de este tipo es MS-DOS.

o

Multitarea: el sistema operativo puede atender varias tareas a la vez. A su vez estas tareas pueden provenir de un único usuario o de varios usuarios, lo cual dependerá de las capacidades del sistema operativo. Dentro de los sistemas operativos multitarea, existen los S.O. monousuario (por ejemplo, Windows NT) y multiusuario (por ejemplo, VMS y UNIX), donde el S.O. puede atender a un único usuario o a varios en la misma máquina, respectivamente.

Multiusuario: Permite que dos o más usuarios utilicen sus programas al mismo tiempo. Algunos

sistemas operativos permiten a centenares o millares de usuarios al mismo tiempo.

Multiprocesador: soporta el abrir un mismo programa en más de una CPU.

Multitramo: Permite que diversas partes de un solo programa funcionen al mismo tiempo.

Tiempo Real: Responde a las entradas inmediatamente. Los sistemas operativos como DOS y

UNIX, no funcionan en tiempo real. Planificación La planificación de un S.O. define cómo se reparte el tiempo de CPU entre los diversos procesos. Por supuesto, esto sólo tendrá sentido en S.O. multitarea donde puede ocurrir que en un momento dado varios procesos quieran utilizar el microprocesador y como este es único, debe especificarse la política de acceso. Existen varias formas de realizar esta planificación: • Tiempo compartido (Round-Robbin): se asigna el mismo tiempo para cada uno de los procesos. • Prioridades: cada proceso tiene asignada una prioridad y hasta que no termina un proceso su ejecución, no se cede la CPU al siguiente. Estas prioridades pueden ser a su vez estáticas (fijas, no se modifican) o dinámicas (existen ciertos criterios para cambiarlas implementados en el S.O.). • Mixtas: existe una planificación concreta a base de asignar tiempos en función de prioridades; en el caso de que dos procesos tengan asignada la misma prioridad, se comparte el tiempo entre los dos. Lo habitual es tener planificación mixta, lo cual ocurre en los sistemas operativos VMS y UNIX. En estos

Page 6: Sistema Operativo 'Fundamentos

casos, a aquellos procesos poco activos se les suele dar una prioridad máxima (por ejemplo, un editor de textos) y aquellos que exigen mucho tiempo de computación, una baja prioridad (por ejemplo, una inversión de matrices). Esto tiene sentido porque un proceso poco activo como un editor de textos consume muy pocos recursos de CPU, es decir, dentro de un intervalo de tiempo dado, el tiempo de CPU que va a usar es muy poco ya que desde que el usuario pulsa una tecla hasta que pulsa la siguiente, el ordenador ha tenido tiempo de realizar otras muchísimas tareas. Sin embargo, sería incómodo para el usuario que desde que pulsa una tecla hasta que aparece el resultado en la pantalla, pasara mucho tiempo; esa es la razón para darle máxima prioridad. En el otro extremo están los procesos que requieren mucho tiempo de computación, es decir, mucho tiempo de acceso a la CPU, como una inversión de matrices, una integral numérica, etc. Con el objeto de no saturar la máquina con estos cálculos, y debido a que habitualmente no existe una restricción temporal para acabar los cálculos, se le asigna una prioridad baja. Gestión de memoria Existen dos maneras básicas de gestionar la memoria: • Memoria real • Memoria virtual El S.O. que sólo utiliza memoria real quiere decir que el único lugar donde le es posible cargar el código de un programa es en la memoria física real, es decir, en la RAM. En implementaciones de S.O. que utilizan memoria virtual, es posible hacer uso de espacio de almacenamiento en disco como si fuera memoria adicional de la que dispone el ordenador, es decir, la memoria efectiva puede ser mayor que la real. Ejemplos de sistema operativo

Familia Windows

Windows 95

Windows 98

Windows ME

Windows NT

Windows 2000

Windows 2000 server

Windows XP

Windows Server 2003

Windows CE

Windows Mobile

Windows XP 64 bits

Windows Vista (Longhorn)

Familia Macintosh

Mac OS 7

Mac OS 8

Mac OS 9

Mac OS X

Familia UNIX

Page 7: Sistema Operativo 'Fundamentos

AIX

AMIX

GNU/Linux

GNU / Hurd

HP-UX

Irix

Minix

System V

Solaris

UnixWare

Page 8: Sistema Operativo 'Fundamentos

Prefijos del sistema internacional

Los prefijos del SI para nombrar a los múltiplos y submúltiplos de cualquier unidad del Sistema Internacional (SI), ya sean unidades básicas o derivadas. Estos prefijos se anteponen al nombre de la unidad para indicar el múltiplo o submúltiplo decimal de la misma; del mismo modo, los símbolos de los prefijos se anteponen a los símbolos de las unidades.

Los prefijos pertenecientes al SI los fija oficialmente la Oficina Internacional de Pesos y Medidas (Bureau International des Poids et Mesures), de acuerdo con el cuadro siguiente:

Page 9: Sistema Operativo 'Fundamentos

Servidores

En informática, un servidor es una computadora que, formando parte de una red, provee servicios a otras computadoras denominadas clientes.

También se suele denominar con la palabra servidor a:

Una aplicación informática o programa que realiza algunas tareas en beneficio de otras aplicaciones llamadas clientes. Algunos servicios habituales son los servicios de archivos, que permiten a los usuarios almacenar y acceder a los archivos de una computadora y los servicios de aplicaciones, que realizan tareas en beneficio directo del usuario final. Este es el significado original del término. Es posible que un ordenador cumpla simultáneamente las funciones de cliente y de servidor.

Una computadora en la que se ejecuta un programa que realiza alguna tarea en beneficio de otras aplicaciones llamadas clientes, tanto si se trata de un ordenador central (mainframe), un miniordenador, una computadora personal, una PDA o un sistema embebido; sin embargo, hay computadoras destinadas únicamente a proveer los servicios de estos programas: estos son los servidores por antonomasia.

Un servidor no es necesariamente una máquina de última generación de grandes proporciones, no es necesariamente un superordenador; un servidor puede ser desde una computadora vieja, hasta una máquina sumamente potente (ej.: servidores web, bases de datos grandes, etc. Procesadores especiales y hasta varios terabytes de memoria). Todo esto depende del uso que se le dé al servidor. Si usted lo desea, puede convertir al equipo desde el cual usted está leyendo esto en un servidor instalando un programa que trabaje por la red y a la que los usuarios de su red ingresen a través de un programa de servidor web como Apache.

Por lo cual podemos llegar a la conclusión de que un servidor también puede ser un proceso que entrega información o sirve a otro proceso. El modelo Cliente-servidor no necesariamente implica tener dos ordenadores, ya que un proceso cliente puede solicitar algo como una impresión a un proceso servidor en un mismo ordenador.

Page 10: Sistema Operativo 'Fundamentos

Tipos de servidores

Servidores de Aplicaciones

(Application Servers): Designados a veces como un tipo de middleware (software que conecta dos aplicaciones), los servidores de aplicaciones ocupan una gran parte del territorio entre los servidores de bases de datos y el usuario, y a menudo los conectan.

Servidores de Audio/Video

(Audio/Video Servers): Los servidores de Audio/Video añaden capacidades multimedia a los sitios web permitiéndoles mostrar contenido multimedia en forma de flujo continuo (streaming) desde el servidor.

Servidores de Chat

(Chat Servers): Los servidores de chat permiten intercambiar información a una gran cantidad de usuarios ofreciendo la posibilidad de llevar a cabo discusiones en tiempo real.

Servidores de Fax

(Fax Servers): Un servidor de fax es una solución ideal para organizaciones que tratan de reducir el uso del teléfono pero necesitan enviar documentos por fax.

Servidores FTP

(FTP Servers): Uno de los servicios más antiguos de Internet, File Transfer Protocol permite mover uno o más archivos

Servidores Groupware

(Groupware Servers): Un servidor groupware es un software diseñado para permitir colaborar a los usuarios, sin importar la localización, vía Internet o vía Intranet corporativo y trabajar juntos en una atmósfera virtual.

Servidores IRC

(IRC Servers): Otra opción para usuarios que buscan la discusión en tiempo real, Internet Relay Chat consiste en varias redes de servidores separadas que permiten que los usuarios conecten el uno al otro vía una red IRC.

Page 11: Sistema Operativo 'Fundamentos

Servidores de Listas

(List Servers): Los servidores de listas ofrecen una manera mejor de manejar listas de correo electrónico, bien sean discusiones interactivas abiertas al público o listas unidireccionales de anuncios, boletines de noticias o publicidad.

Servidores de Correo

(Mail Servers): Casi tan ubicuos y cruciales como los servidores web, los servidores de correo mueven y almacenan el correo electrónico a través de las redes corporativas (vía LANs y WANs) y a través de Internet.

Servidores de Noticias

(News Servers): Los servidores de noticias actúan como fuente de distribución y entrega para los millares de grupos de noticias públicos actualmente accesibles a través de la red de noticias USENET.

Servidores Proxy

(Proxy Servers): Los servidores proxy se sitúan entre un programa del cliente (típicamente un navegador) y un servidor externo (típicamente otro servidor web) para filtrar peticiones, mejorar el funcionamiento y compartir conexiones.

Servidores Telnet

(Telnet Servers): Un servidor telnet permite a los usuarios entrar en un ordenador huésped y realizar tareas como si estuviera trabajando directamente en ese ordenador.

Servidores web

o servidor HTTP es un programa informático que procesa una aplicación del lado del servidor realizando conexiones bidireccionales y/o unidireccionales y síncronas o asíncronas con el cliente generando o cediendo una respuesta en cualquier lenguaje o Aplicación del lado del cliente. El código recibido por el cliente suele ser compilado y ejecutado por un navegador web. Para la transmisión de todos estos datos suele utilizarse algún protocolo. Generalmente se utiliza el protocolo HTTP para estas comunicaciones, perteneciente a la capa de aplicación del modelo OSI.

Page 12: Sistema Operativo 'Fundamentos

Servidor virtual

Un servidor virtual es un servidor, generalmente un servidor web, que comparte recursos de computadora con otros servidores virtuales. En otras palabras, un servidor web se virtualiza en dos o más servidores virtuales, compartiendo entre sí los recursos de un único servidor web real. Un servidor web virtual contrasta con un servidor web dedicado, esto último es cuando la computadora se dedica completamente a funcionar como servidor. Los servidores web virtuales son una forma muy popular de reducir el costo del servicio de hosting para una empresa. Esto es porque múltiples servidores pueden residir en la misma computadora. En muchos casos la performance del servidor (y por ende, los servicios que presta, como el acceso a un sitio web) no se ve afectada. De todas maneras, si una computadora es atestada de servidores virtuales, comenzarán a reducirse los recursos de la misma de tal manera, que el rendimiento de los servidores virtuales se verá afectado.

Maquina virtual

En informática una máquina virtual es un software que emula a una computadora y puede ejecutar programas como si fuese una computadora real. Este software en un principio fue definido como "un duplicado eficiente y aislado de una máquina física". La acepción del término actualmente incluye a máquinas virtuales que no tienen ninguna equivalencia directa con ningún hardware real.

Una caracterí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".

Uno de los usos domésticos más extendidos de las máquinas virtuales es 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.

Page 13: Sistema Operativo 'Fundamentos

Tipos de máquinas virtuales

Funcionamiento de la máquina virtual de Java, una de las máquinas virtuales de proceso más populares.

Funcionamiento de VMWare, una de las máquinas virtuales de sistema más populares.

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 (en inglés System Virtual Machine)

Máquinas virtuales de proceso (en inglés Process Virtual Machine)

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 subyacente multiplicarse entre varias máquinas virtuales, cada una ejecutando su propio sistema operativo. A la capa de software que permite la virtualización se la llama monitor de máquina virtual o hypervisor. Un monitor de máquina virtual puede ejecutarse o bien directamente sobre el hardware o bien sobre un sistema operativo ("host operating system").

Aplicaciones 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.

Page 14: Sistema Operativo 'Fundamentos

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 (cada una con su propio sistema operativo llamado sistema operativo "invitado" o "guest"), 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. Al virtualizar, la necesidad de nuevas máquinas en una ya existente permite un ahorro considerable de los costos asociados (energía, mantenimiento, espacio, etc).

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".

Inconvenientes de las máquinas virtuales

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" (host) o directamente sobre la plataforma de hardware. Sin embargo, a menudo la flexibilidad que ofrecen compensa esta pérdida de eficiencia.

Técnicas

Monitor de tipo I.

Page 15: Sistema Operativo 'Fundamentos

Monitor de tipo II.

Emulación del hardware subyacente (ejecución nativa)

Esta técnica se suele llamar virtualización completa (full virtualization) del hardware, y se puede implementar usando un hypervisor de Tipo 1 o de Tipo 2:

el tipo 1 se ejecuta directamente sobre el hardware. el tipo 2 se ejecuta sobre otro sistema operativo.

Cada máquina virtual puede ejecutar cualquier sistema operativo soportado por el hardware subyacente. Así los usuarios pueden ejecutar dos o más sistemas operativos distintos simultáneamente en computadoras "privadas" virtuales.

El sistema pionero que utilizó este concepto fue la CP-40, la primera versión (1967) de la CP/CMS de IBM (1967-1972) y el precursor de la familia VM de IBM (de 1972 en adelante). Con la arquitectura VM, la mayor parte de usuarios controlan un sistema operativo monousuario relativamente simple llamado CMS que se ejecuta en la máquina virtual VM.

Actualmente tanto Intel como AMD han introducido prestaciones a sus procesadores x86 para permitir la virtualización de hardware.

Emulación de un sistema no nativo

Las máquinas virtuales también pueden actuar como emuladores de hardware, permitiendo que aplicaciones y sistemas operativos concebidos para otras arquitecturas de procesador se puedan ejecutar sobre un hardware que en teoría no soportan.

Algunas máquinas virtuales emulan hardware que sólo existe como una especificación. Por ejemplo:

La máquina virtual P-Code que permitía a los programadores de Pascal crear aplicaciones que se ejecutasen sobre cualquier computadora con esta máquina virtual correctamente instalada.

La máquina virtual de Java. La máquina virtual del entorno .NET. Open Firmware

Esta técnica permite que cualquier computadora pueda ejecutar software escrito para la máquina virtual. Sólo la máquina virtual en sí misma debe ser portada a cada una de las plataformas de hardware.

Page 16: Sistema Operativo 'Fundamentos

Virtualización a nivel de sistema operativo

Virtualización

es la técnica empleada sobre las características físicas de algunos recursos computacionales, para ocultarlas de otros sistemas, aplicaciones o usuarios que interactúen con ellos. Esto implica hacer que un recurso físico, como un servidor, un sistema operativo o un dispositivo de almacenamiento, aparezca como si fuera varios recursos lógicos a la vez, o que varios recursos físicos, como servidores o dispositivos de almacenamiento, aparezcan como un único recurso lógico.

Por ejemplo, la virtualización de un sistema operativo es el uso de una aplicación de software para permitir que un mismo sistema operativo maneje varias imágenes de los sistemas operativos a la misma vez.

Esta tecnología permite la separación del hardware y el software, lo cual posibilita a su vez que múltiples sistemas operativos, aplicaciones o plataformas de cómputo se ejecuten simultáneamente en un solo servidor o PC según sea el caso de aplicación.

Page 17: Sistema Operativo 'Fundamentos

Hay varias formas de ver o catalogar la virtualización, pero en general se trata de uno de estos dos casos: virtualización de plataforma o virtualización de recursos.

Virtualización de plataforma: se trata de simular una máquina real (servidor o PC) con todos sus componentes (los cuales no necesariamente son todos los de la máquina física) y prestarle todos los recursos necesarios para su funcionamiento. En general, hay un software anfitrión que es el que controla que las diferentes máquinas virtuales sean atendidas correctamente y que está ubicado entre el hardware y las máquinas virtuales. Dentro de este esquema caben la mayoría de las formas de virtualización más conocidas, incluidas la virtualización de sistemas operativos, la virtualización de aplicaciones y la emulación de sistemas operativos.

Virtualización de recursos: esta permite agrupar varios dispositivos para que sean vistos como uno solo, o al revés, dividir un recurso en múltiples recursos independientes. Generalmente se aplica a medios de almacenamiento. También existe una forma de virtualización de recursos muy popular que no es sino las redes privadas virtuales o VPN, abstracción que permite a un PC conectarse a una red corporativa a través de la Internet como si estuviera en la misma sede física de la compañía.

Page 18: Sistema Operativo 'Fundamentos

Ventajas de la virtualización

Si el otro día tratamos de definir e introducir algunos conceptos de la virtualización hoy vamos a hablar de las ventajas de la virtualización, y por qué ha sido este el año del despegue definitivo de este tipo de tecnología. Aunque ya hacía bastante tiempo que esta tecnología se usaba, este año ha sido el de su implantación definitiva en muchas empresas, sobre todo de gran tamaño.

Y la adopción por gran parte de las empresas se debe sin lugar a dudas a las ventajas que este tipo de tecnología ofrece como puede ser el ahorro de costes, la posibilidad de crear entornos de pruebas, entornos aislados seguros u olvidarnos de los problemas de compatibilidad de los programas cuando no trabajamos con Windows. Vamos a ver un poco más en detalle estos puntos.

Ahorro de costes: es una de las cuestiones por las cuales más se han interesado las empresas en la virtualización, puesto que donde antes necesitaban dos máquinas ahora puede utilizar sólo una. Pero no sólo queda aquí, sino que además podemos ahorrar mucho tiempo gracias a la facilidad de administración o de clonación de los discos duros virtuales, que se realizarán como cualquier otro archivo, con las ventajas que esto tiene asociado.

Entornos de prueba: si sois de los que no pueden esperar a que salga la versión definitiva de un programa y estamos probando versiones beta o instalando programas de software que pensamos que nos serán útiles, tal vez nos interesa virtualizar nuestro propio sistema para realizar todas estas instalaciones en el sistema virtual y dejar nuestro sistema anfitrión “limpio”, instalando sólo aquello que definitivamente vamos a usar.

Page 19: Sistema Operativo 'Fundamentos

Entornos aislados de seguridad: si estáis obsesionados con la seguridad seguro que os interesa crear un sistema aislado donde las únicas conexiones con internet se harán en entornos seguros y la navegación se realizará con mucho más cuidado. Kaspersky ha presentado una solución de este tipo con su última versión de su antivirus para crear este tipo de entornos aislados.

Compatibilidad de programas: cuando utilizas un sistema operativo Linux o Mac a veces no es posible encontrar el programa que necesitamos para estas plataformas, por lo que o tenemos instalado Windows o nos buscamos otra alternativa. Afortunadamente este tipo de cosas cada vez pasan menos, pero continúan pasando, con lo cual tener virtualizado Windows dentro de nuestro Mac o Linux nos puede ahorrar una buena cantidad de problemas y tiempo buscando el equivalente de un programa para estos sistemas.

Page 20: Sistema Operativo 'Fundamentos

Dentro de este último punto un caso especial es el de Windows 7 que nos ofrece virtualizado Windows XP para asegurarnos de esta manera la total compatibilidad de los programas a la hora de realizar una migración al nuevo sistema operativo de Windows. Esta virtualización vendrá en forma de descarga opcional y sólo estará disponible para las versiones profesionales de Windows 7.

Todos estos conceptos y ventajas se verán de forma mucho más clara con distintos ejemplos con los que vamos a ilustrar este especial sobre la virtualización. Veremos como crear máquinas virtuales con distinto software y las ventajas que esto puede suponer dependiendo del entorno en el cual se instale y el objetivo para el cual se utilice.

En el próximo artículo comenzaremos hablando de VirtualBox, la solución de Son Microsystems, para la virtualización. Es una solución que tiene entre sus principales virtudes la facilidad y sencillez para la creación de máquinas virtuales y multiplataforma. Además tiene una versión gratuita para uso personal o de evaluación, totalmente funcional y muy interesante para el usuario doméstico.

Page 21: Sistema Operativo 'Fundamentos

Desventajas de la virtualización

A medida que las máquinas virtuales se propagan por nuestros escritorios y servidores corporativos, se ponen

de manifiesto las limitaciones de esta nueva técnica. He apelado a mi espíritu crítico y en este artículo he

apuntado mi lista de desventajas de la virtualización.

Rendimiento inferior. Un sistema operativo virtualizado nunca alcanzará las mismas cotas de

rendimiento que si estuviera directamente instalado en el hierro. Dado que el hipervisor introduce

una capa intermedia en la gestión del hardware para gestionar las peticiones de acceso y la

concurrencia al mismo, el rendimiento de la máquina virtual se ve afectado irremediablemente. No

todas las soluciones de virtualización obtienen el mismo rendimiento en las mismas operaciones. Un

ejemplo es esta Comparativa de rendimiento máquinas virtuales

No es posible utilizar hardware que no esté gestionado o soportado por el hipervisor. Recientemente

un amigo me pidió virtualizar su viejo Windows 98 que corría sobre Pentium II con una tarjeta de

audio de gama alta. Inmediatamente tuvimos que descartar la idea porque no se puede utilizar

arbitrariamente hardware instalado físicamente en la máquina anfitrión desde el entorno virtual.

Además, el software de virtualización nos impondrá una serie de dispositivos virtuales como tarjetas

de vídeo y red de las que no podremos salir.

Hardware virtual obsoleto. USB 1.0, Firewire 400, Ethernet 100 son algunos de los dispositivos a los

que nos veremos sometidos. Aunque las nuevas versiones de los hipervisor se van renovando,

todavía tenemos que trasladarnos al pasado para usar estas características.

No dispondremos de aceleración de vídeo por hardware, por lo que aplicaciones con efectos 3D

como compiz-fussion y juegos que utilizan las librerías OpenGL o DirectX no funcionarán en la

máquina virtual.

Como excepción, Parallels y VMWare Fusión ofrecen soporte para versiones concretas de OpenGL y

DirectX sobre Mac OS X, pero conviene probar el rendimiento gráfico antes de decidirse por alguna.

Proliferación de máquinas virtuales. Como no hay que comprar ‘hierro’, el número de máquinas y

servidores virtuales se dispara en todos los ámbitos. Los efectos colaterales se perciben después:

aumenta el trabajo de administración, gestión de licencias, riesgos de seguridad…

Desaprovechamiento de recursos. Crear máquinas virtuales innecesarias tiene un coste en

ocupación de recursos, principalmente en espacio en disco, RAM y capacidad de proceso.

La avería del servidor anfitrión de virtualización afecta a todas las máquinas virtuales alojadas en él.

Ahora más que nunca deberemos adoptar soluciones de alta disponibilidad como clustering y

replicación para evitar caídas de servicio de múltiples servidores con una única avería.

La portabilidad entre plataformas está condicionada a la solución de virtualización adoptada. Elegir

GNU/Linux, Mac OS X, Windows o Solaris como anfitrión es una decisión importante en entornos

corporativos. Quizás interesaría migrar en el futuro.

Page 22: Sistema Operativo 'Fundamentos

Disminuye el número de ventas de hardware. Aunque el hardware adquirido para alojar máquinas

virtuales es más potente, el número de máquinas vendidas será inferior ¿nos pondrán los fabricantes

de hardware un Canon por la Virtualización?

El sistema operativo anfitrión se vuelve de rol crítico. Hasta ahora estábamos acostumbrados a

utilizar un sistema para todas nuestras necesidades. Pero, cuando varios servidores o entornos de

producción virtualizados dependen de la estabilidad de su anfitrión, nos pensaremos mucho antes de

aplicar actualizaciones y parches. Será necesario reforzar la seguridad y estabilidad, así que ¿quién

habló de reiniciar?

Page 23: Sistema Operativo 'Fundamentos

Ubuntu sistema operativo

Ubuntu es un sistema operativo3 4 mantenido por Canonical y la comunidad de desarrolladores. Utiliza un núcleo Linux, y su origen está basado en Debian. Ubuntu está orientado al usuario novel y promedio, con un fuerte enfoque en la facilidad de uso y mejorar la experiencia de usuario. Está compuesto de múltiple software normalmente distribuido bajo una licencia libre o de código abierto. Estadísticas web sugieren que el porcentaje de mercado de Ubuntu dentro de "distribuciones Linux" es de aproximadamente 49%,5 6 y con una tendencia a subir como servidor web.7 Y un importante incremento activo de 20 millones de usuarios para fines de 2011.8

Su patrocinador Canonical, es una compañía británica propiedad del empresario sudafricano Mark Shuttleworth ofrece el sistema de manera gratuita y que se financia por medio de servicios vinculados al sistema operativo9 10 y vendiendo soporte técnico.11 Además, al mantenerlo libre y gratuito, la empresa es capaz de aprovechar los desarrolladores de la comunidad para mejorar los componentes de su sistema operativo. Extraoficialmente la comunidad de desarrolladores proporciona soporte para derivaciones de Ubuntu con otros entornos: Kubuntu, Xubuntu, Edubuntu, Ubuntu Studio, Mythbuntu y Lubuntu.12

Canonical además de mantener Ubuntu, también provee de una versión orientada a servidores, Ubuntu Server, una versión para empresas, Ubuntu Business Desktop Remix, una para televisores, Ubuntu TV, y una para usar el escritorio desde smartphones, Ubuntu for Android.13 14 15

Cada seis meses se publica una nueva versión de Ubuntu la cual recibe soporte por parte de Canonical, durante dieciocho meses, por medio de actualizaciones de seguridad, parches para bugs críticos y actualizaciones menores de programas. Las versiones LTS (Long Term Support), que se liberan cada dos años,16 reciben soporte durante cinco años en los sistemas de escritorio y de servidor.17

Interfaz de usuario

Tablero (Dash) que despliega los iconos de las aplicaciones en Ubuntu 12.04

Ubuntu desde su primer lanzamiento utilizó la interfaz de usuario predeterminada del escritorio GNOME, con un panel inferior para listar ventanas y un panel superior para menús e indicadores de sistema, pero desde la versión 11.04 el equipo de Canonical decidió lanzar su propia interfaz de usuario, de esa manera Unity fue diseñado para optimizar el espacio e interacción de la interfaz de Ubuntu.37

Page 24: Sistema Operativo 'Fundamentos

Diseño

La actual interfaz de usuario de Ubuntu está compuesta por tres importantes elementos: un panel superior para indicadores de sistema y menús, un lanzador de aplicaciones al costado izquierdo, y un tablero (dash) que despliega lugares y aplicaciones.

Además de la interfaz Unity, Canonical ha diseñado varios elementos de la interfaz: set de iconos Ubuntu Mono e Humanity, temas visuales Light-themes, tipografía Ubuntu y sus variantes, barras de desplazamiento Overlay scrollbars, indicadores de sistema, notificaciones OSD, pantalla de inicio de sesión Unity Greeter, gestos multitáctil uTouch, temas de sonido de inicio de sesión, y los menús globales de aplicaciones.38 39

Características

Mark Shuttleworth, en la presentación de apertura del Ubuntu Developer Summit 2011, en Budapest.

En su última versión, Ubuntu soporta oficialmente dos arquitecturas de hardware en computadoras personales y servidores: 32-bit y 64-bit40 Sin embargo, extraoficialmente, Ubuntu ha sido portado a dos arquitecturas más: SPARC y IA-64.

A partir de la versión 9.04, se empezó a ofrecer soporte oficial para procesadores ARM,41 comúnmente usados en dispositivos móviles.

Al igual que la mayoría de los sistemas de escritorio basados en Linux, Ubuntu es capaz de actualizar a la vez todas las aplicaciones instaladas en la máquina a través de repositorios.

Ubuntu está siendo traducido a más de 130 idiomas,2 y cada usuario es capaz de colaborar voluntariamente a esta causa, a través de Internet.

Page 25: Sistema Operativo 'Fundamentos

Ubuntu y la comunidad

Los usuarios pueden participar en el desarrollo de Ubuntu, escribiendo código, solucionando bugs, probando versiones inestables del sistema, etc.42 Además, en febrero de 2008 se puso en marcha el sitio Brainstorm43 que permite a los usuarios proponer sus ideas y votar las del resto. También se informa de las ideas propuestas que se están desarrollando o están previstas.

Software incluido

Centro de software de Ubuntu incluido en Ubuntu 12.04

Ubuntu posee una gran gama de aplicaciones para llevar a cabo tareas cotidianas, entretenimiento, desarrollo y aplicaciones para la configuración de todo el sistema. La interfaz predeterminada de Ubuntu es Unity y utiliza en conjunto las aplicaciones de GNOME. Existen otras versiones extraoficiales mantenidas por la comunidad, con diferentes escritorios, y pueden ser instalados independientemente del instalado por defecto en Ubuntu.

Aplicaciones de Ubuntu

Ubuntu es conocido por su facilidad de uso y las aplicaciones orientadas al usuario final. Las principales aplicaciones que trae Ubuntu por defecto son: navegador web Mozilla Firefox, cliente de mensajería instantánea Empathy, cliente de redes sociales Gwibber, cliente de correo Thunderbird, reproductor multimedia Totem, reproductor de música Rhythmbox, gestor y editor de fotos Shotwell, cliente de BitTorrent Transmission, cliente de escritorio remoto Remmina, grabador de discos Brasero, panel de Configuración del sistema, suite ofimática LibreOffice, cliente sincronizador de archivos en linea Ubuntu One, y el instalador central que permite buscar, instalar y eliminar aplicaciones Centro de software de Ubuntu. El Centro de software de Ubuntu permite instalar miles de aplicaciones disponibles.

Page 26: Sistema Operativo 'Fundamentos

Configuración del sistema en Ubuntu 12.04

Seguridad y accesibilidad

El sistema incluye funciones avanzadas de seguridad y entre sus políticas se encuentra el no activar, de forma predeterminada, procesos latentes al momento de instalarse. Por eso mismo, no hay un cortafuegos predeterminado, ya que no existen servicios que puedan atentar a la seguridad del sistema. Para labores o tareas administrativas en la línea de comandos incluye una herramienta llamada sudo (de las siglas en inglés de SuperUser do), con la que se evita el uso del usuario administrador. Posee accesibilidad e internacionalización, de modo que el sistema esté disponible para tanta gente como sea posible. Desde la versión 5.04, se utiliza UTF-8 como codificación de caracteres predeterminado.

Cliente Ubuntu One en Ubuntu 12.04

No sólo se relaciona con Debian por el uso del mismo formato de paquetes .deb. También tiene uniones muy fuertes con esa comunidad, contribuyendo con cualquier cambio directa e inmediatamente, y no sólo anunciándolos. Esto sucede en los tiempos de lanzamiento. Muchos de los desarrolladores de Ubuntu son también responsables de los paquetes importantes dentro de la distribución Debian.

Page 27: Sistema Operativo 'Fundamentos

Organización del software

Ubuntu internamente divide todo el software en cuatro secciones, llamadas «componentes», para mostrar diferencias en licencias y la prioridad con la que se atienden los problemas que informen los usuarios.44 Estos componentes son: main, restricted, universe y multiverse.

Por defecto se instalan paquetes de los componentes main y restricted44 Los paquetes del componente universe de Ubuntu generalmente se basan en los paquetes de la rama inestable (Sid) y en el repositorio experimental de Debian.[cita requerida]

main: contiene solamente los paquetes que cumplen los requisitos de la licencia de Ubuntu, y para los que hay soporte disponible por parte de su equipo. Éste está pensado para que incluya todo lo necesario para la mayoría de los sistemas Linux de uso general. Los paquetes de este componente poseen ayuda técnica garantizada y mejoras de seguridad oportunas.44

restricted: contiene paquetes soportados por los desarrolladores de Ubuntu debido a su importancia, pero que no está disponible bajo ningún tipo de licencia libre para incluir en main. En este lugar se incluyen los paquetes tales como los controladores propietarios de algunas tarjetas gráficas, como por ejemplo, los de ATI y NVIDIA. El nivel de la ayuda es más limitado que para main, puesto que los desarrolladores pueden no tener acceso al código fuente.44

universe: contiene una amplia gama de programas, que pueden o no tener una licencia restringida, pero que no recibe apoyo por parte del equipo de Ubuntu sino por parte de la comunidad. Esto permite que los usuarios instalen toda clase de programas en el sistema guardándolos en un lugar aparte de los paquetes soportados: main y restricted.44

multiverse: contiene los paquetes sin soporte debido a que no cumplen los requisitos de software libre

Page 28: Sistema Operativo 'Fundamentos

Actual: Ubuntu 12.04 LTS

Inicio del "dash", en donde se despliegan aplicaciones y documentos recientes.

Esta versión es la primera con 5 años de soporte extendido en el escritorio.66

Se han hecho varios cambios en la interfaz de usuario. El Dash de inicio fue rediseñado, eliminando los 8 iconos grandes de acceso directo y fueron reemplazados por aplicaciones y archivos de uso más reciente.67 El lanzador de Unity se encuentra siempre visible y ya no se oculta cuando hay una ventana sobre ella.68 Se incluyó un nuevo acceso de video en el Dash para buscar videos en línea y en el sistema.69 Un nuevo menú de búsqueda (HUD) fue implementado en las aplicaciones al presionar al tecla Alt.70 Se agregaron más menús con listas rápidas en el lanzador para varias aplicaciones, tales como el icono de Ubuntu, Nautilus, Totem, Gedit, Rhythmbox, Empathy, Brasero, y Remmina.71 72 73 Se rediseñaron los tooltip de información y algunos de los iconos del lanzador toman el color del fondo de pantalla.74 Las burbujas de notificaciones OSD se adaptan al color de fondo de pantalla.75 La pantalla de inicio de sesión utiliza automáticamente la imagen de fondo de escritorio que cambie el usuario.76 Inicio de sesión tiene un nuevo selector de sesiones entre Ubuntu y Ubuntu 2D.77 La interfaz de las aplicaciones Ubuntu One y 'Comprobación del sistema' fueron rediseñadas.78 79

Nuevo desenfoque de ventana, cuando pierde el foco los elementos se vuelven grises y la ventana se aplana.80 Nuevos botones para subir/bajar numeraciones en las preferencias.81 Gwibber utiliza iconos monocromáticos en la barra de herramientas, y también puede expandir contenido directo desde la vista de tweets.82 83 Se rediseñó la guía de escritorio en Ayuda.84 Los temas Ambiance y Radiance fueron retocados visualmente, además de pequeños cambios en Nautilus.85 El fondo de pantalla predeterminado fue retocado.86

Page 29: Sistema Operativo 'Fundamentos

'Configuración del sistema' permite configurar el lanzador de Unity en 'Apariencia'. Nuevas opciones en 'Monitores', para controlar el uso de varios monitores y facilitar el manejo del lanzador en varios monitores.87 88 Un nuevo control de 'Privacidad' fue agregado, y permite controlar los datos e historiales que guardan las aplicaciones. También se agregó 'Servicio de gestión', el cual administra mediante Landscape varios sistemas con Ubuntu.89 Se eliminaron las secciones 'Cuentas en línea', 'Soportes extraíbles' y 'Orígenes del software'. El panel principal de Configuración del sistema recibió retoques visuales.90 La interfaz de configuración de sonido fue renovada para tener más consistencia.91

Centro de software de Ubuntu mejoró el tiempo de arranque y permite ver múltiples capturas de pantalla y videos de una aplicación.92 La categoría 'Libros y revistas' fue agregada.93 Las aplicaciones que se instalen aparecen automáticamente en el lanzador.94 Se agregaron recomendaciones de software para el usuario.95 Ahora también se aceptan pagos por medio de PayPal.96

Rhythmbox vuelve a ser el reproductor de música, reemplazando a Banshee. Remmina con FreeRDP reemplazan a Vinagre y rdesktop como visor de escritorios remotos.97 Otras aplicaciones que ya no vienen por defecto son Tomboy, la estructura de herramientas Mono y el juego Gbrainy.98 99 El instalador Wubi para instalar Ubuntu dentro de Windows fue removido por problemas con aquel sistema operativo.100

En el ámbito técnico se optimizó la estabilidad del sistema y el consumo de energía en portátiles, además de proporcionar un inicio/apagado/suspendido sin texto con información técnica de fondo.

Escritorio, Servidor, Empresa, TV, Móvil

A partir del núcleo de Ubuntu y su interfaz Unity, Canonical decidió desarrollar versiones enfocadas a diferentes dispositivos, tales como televisores, smartphones y futuras versiones móviles para tablets.103 Estas son las actuales versiones de Ubuntu mantenidas por Canonical en su sitio oficial, las cuales van dirigidas a diferentes ambientes y dispositivos.

Page 30: Sistema Operativo 'Fundamentos

Ubuntu TV.

Ubuntu: Orientado al usuario promedio, con miles de aplicaciones y controladores para todo tipo de computadoras como laptops y escritorios. Utiliza la interfaz Unity y aplicaciones diseñadas por diferentes desarrolladores.104

Ubuntu Server: Orientado exclusivamente a servidores. Permite instalar Ubuntu en una computadora usada como servidor. No instala una interfaz gráfica de usuario por defecto.105

Ubuntu Business Desktop Remix: Orientada al sector empresarial con varias herramientas instaladas por defecto, tales como: Adobe Flash Plugin, VMware View, OpenJDK 6 Java, Canonical Landscape, se han eliminado aplicaciones sociales y juegos. Ofrece soporte para Windows RDP 7.1 y el diagrama Microsoft Visio en LibreOffice Draw.106

Ubuntu TV: Orientado exclusivamente a televisores, y provee de una interfaz simple e intuitiva para organizar contenidos y servicios para TV. Utiliza la interfaz Unity.107

Ubuntu for Android: Orientada a smartphones Android, y permite ejecutar el escritorio de Ubuntu con interfaz Unity directo desde un smartphone Android al conectarse en un monitor por medio de una base. Características como la sincronización de contactos, sincronización de redes sociales, y vista de aplicaciones Android son posibles.108

Un clúster en la Universidad McGill.

Page 31: Sistema Operativo 'Fundamentos

Un ejemplo de clúster en la NASA (EE. UU.), fotografiado artísticamente con un objetivo de gran

angular.

El término cluster (a veces españolizado como clúster) se aplica a los conjuntos o

conglomerados de computadoras construidos mediante la utilización de hardwares comunes

y que se comportan como si fuesen una única computadora.

Hoy en día desempeñan un papel importante en la solución de problemas de las ciencias,

las ingenierías y del comercio moderno.

La tecnología de clústeres ha evolucionado en apoyo de actividades que van desde

aplicaciones de supercómputo y software de misiones críticas, servidores web y comercio

electrónico, hasta bases de datos de alto rendimiento, entre otros usos.

El cómputo con clústeres surge como resultado de la convergencia de varias tendencias

actuales que incluyen la disponibilidad de microprocesadores económicos de alto

rendimiento y redes de alta velocidad, el desarrollo de herramientas de software para

cómputo distribuido de alto rendimiento, así como la creciente necesidad de potencia

computac ional para aplicaciones que la requieran.

Simplemente, un clúster es un grupo de múltiples ordenadores unidos mediante una red de

alta velocidad, de tal forma que el conjunto es visto como un único ordenador, más potente

que los comunes de escritorio.

Los clústeres son usualmente empleados para mejorar el rendimiento y/o la disponibilidad

por encima de la que es provista por un solo computador típicamente siendo más

económico que computadores individuales de rapidez y disponibilidad comparables.

De un clúster se espera que presente combinaciones de los siguientes servicios:

1. Alto rendimiento 2. Alta disponibilidad 3. Balanceo de carga 4. Escalabilidad

Page 32: Sistema Operativo 'Fundamentos

La construcción de los ordenadores del clúster es más fácil y económica debido a su

flexibilidad: pueden tener todos la misma configuración de hardware y sistema operativo

(clúster homogéneo), diferente rendimiento pero con arquitecturas y sistemas operativos

similares (clúster semihomogéneo), o tener diferente hardware y sistema operativo (clúster

heterogéneo), lo que hace más fácil y económica su construcción.

Para que un clúster funcione como tal, no basta solo con conectar entre sí los ordenadores,

sino que es necesario proveer un sistema de manejo del clúster, el cual se encargue de

interactuar con el usuario y los procesos que corren en él para optimizar el funcionamiento.

Pila (informática)

Una pila (stack en inglés) es una lista ordinal o estructura de datos en la que el modo de

acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar,

primero en salir) que permite almacenar y recuperar datos. Esta estructura se aplica en

multitud de ocasiones en el área de informática debido a su simplicidad y ordenación

implícita de la propia estructura.

Para el manejo de los datos se cuenta con dos operaciones básicas: apilar (push), que

coloca un objeto en la pila, y su operación inversa, retirar (o desapilar, pop), que retira el

último elemento apilado.

En cada momento sólo se tiene acceso a la parte superior de la pila, es decir, al último

objeto apilado (denominado TOS, Top of Stack en inglés). La operación retirar permite la

obtención de este elemento, que es retirado de la pila permitiendo el acceso al siguiente

(apilado con anterioridad), que pasa a ser el nuevo TOS.

Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un plato

sobre una pila de platos, y una operación retirar a retirarlo.

Page 33: Sistema Operativo 'Fundamentos

Las pilas suelen emplearse en los siguientes contextos:

Evaluación de expresiones en notación postfija (notación polaca inversa). Reconocedores sintácticos de lenguajes independientes del contexto Implementación de recursividad.

En la arquitectura computacional, RISC (del inglés reduced instruction set computer,

Computación de Set de Instrucciones Reducidas) es un tipo de microprocesador con las

siguientes características fundamentales:

1. Instrucciones de tamaño fijo y presentadas en un reducido número de formatos. 2. Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos.

Además estos procesadores suelen disponer de muchos registros de propósito general.

El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y el

paralelismo en la ejecución de instrucciones y reducir los accesos a memoria. Las máquinas

RISC protagonizan la tendencia actual de construcción de microprocesadores. PowerPC,

DEC Alpha, MIPS, ARM, SPARC... son ejemplos de algunos de ellos.

RISC es una filosofía de diseño de CPU para computadora que está a favor de conjuntos de

instrucciones pequeñas y simples que toman menor tiempo para ejecutarse. El tipo de

procesador más comúnmente utilizado en equipos de escritorio, el x86, está basado en

CISC en lugar de RISC, aunque las versiones más nuevas traducen instrucciones basadas en

CISC x86 a instrucciones más simples basadas en RISC para uso interno antes de su

ejecución.

La idea fue inspirada por el hecho de que muchas de las características que eran incluidas

en los diseños tradicionales de CPU para aumentar la velocidad estaban siendo ignoradas

por los programas que eran ejecutados en ellas. Además, la velocidad del procesador en

relación con la memoria de la computadora que accedía era cada vez más alta. Esto

conllevó la aparición de numerosas técnicas para reducir el procesamiento dentro del CPU,

así como de reducir el número total de accesos a memoria.

Page 34: Sistema Operativo 'Fundamentos

Moodle es un Sistema de Gestión de Cursos de Código Abierto (Open Source Course

Management System, CMS), conocido también como Sistema de Gestión del Aprendizaje (Learning Management System, LMS) o como Entorno de Aprendizaje Virtual (Virtual Learning Environment, VLE). Es una aplicación web gratuita que los educadores pueden utilizar para crear sitios de aprendizaje efectivo en línea.

Un arreglo es un conjunto de datos o una estructura de datos homogéneos que se encuentran

ubicados en forma consecutiva en la memoria RAM (sirve para almacenar datos en forma temporal).