NOMBRE DEL FALICITADOR: IVAN FUENTES ROSADO
INTEGRANTES DEL EQUIPO
BR. JUAN PAULO LOPEZ AVILA
BR. BRAYAN PEREZ GURBIEL
NOMBRE DE LA MATERIA: TALLER DE SISTEMAS OPERATIVOS
ANTOLOGIA
UNIDAD 4 INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
FECHA DE ENTREGA: 15/06/2014
4.1 INTRODUCCION
Herramientas informáticas con las que hoy cuenta una empresa deben considerarse
un bien más. Eficaces, manejables, seguras y dirigidas a reducir costes. Los
sistemas y las evolución que han sufrido estas herramientas en los últimos tiempos
está, cada vez más, orientada competitiva necesita adaptarse a los cambios
tecnológicos. Actualizar y adaptar las herramientas que estén utilizando, sin costes,
es de vital importancia.
Deben ser
Herramientas informáticas con las que cuenta el tejido empresarial se deben
comunicar entre sí, ya no sólo dentro de la empresa, sino poder interoperar con
clientes y Administraciones.
La hacia Open Source Software (OSS) y estándares abiertos. Ponen a disposición
del empresario aplicaciones y paquetes que le permiten integrar todas las áreas:
gestión de almacén, producción, ventas, contabilidad, comunicaciones y atención al
cliente. Tanto lenguajes y tecnologías tienen que poder entenderse interna y
externamente.
Para que una empresa resulte
Las aplicaciones y TIC que cada empresa necesita deben adaptarse a sus
necesidades, y a cada momento evolutivo de la empresa. Una empresa puede sufrir
cambios que den lugar a nuevas necesidades.
Poder
La fluidez y rapidez en el flujo de trabajo es otra de las premisas que los empresarios
necesitan. Así como presentar un interfaz de usuario amigable.
La unión de todos estos factores favorece la interoperabilidad.
Interoperabilidad
Característica de los ordenadores que les permite su interconexión y funcionamiento
conjunto de manera compatible. Esto no siempre es posible, debido a los diferentes
sistemas operativos y arquitecturas de cada sistema, pero los esfuerzos de
estandarización están permitiendo que cada vez sean más los ordenadores capaces
de interoperar entre sí.
Primeras definiciones
Una de las primeras definiciones de interoperabilidad limitada a los servicios de
administración electrónica que se define como la capacidad de diferentes sistemas
operativos y softwares, aplicaciones y servicios para comunicar e intercambiar datos
de una forma precisa, efectiva y consistente. Se trata de una definición formulada
desde un punto de vista exclusivamente técnico.
Definición global
Una definición global e integradora de los aspectos esenciales recogidos en las
definiciones hasta ahora presentadas considera que la interoperabilidad en
administración electrónica se refiere a la capacidad de diferentes sistemas
informáticos, aplicaciones y servicios para comunicar, compartir e intercambiar
datos, información y conocimiento de una forma precisa, efectiva y consistente; de
funcionar de forma correcta con otros sistemas, aplicaciones y servicios; así como
integrarse con otras organizaciones diversas y empresas para ofrecer servicios de
administración electrónica.
Otras definiciones
Desde un punto de vista informático, interoperabilidad se define como la habilidad
que tiene un sistema o producto para trabajar con otros sistemas o productos sin un
esfuerzo especial por parte del cliente. Este concepto tiene una importancia
creciente a tenor de las colecciones digitales distribuidas que utilizan distintos
esquemas de metadatos. A pesar de la complejidad de este concepto y de sus
múltiples implicaciones para los sistemas de recuperación de información basados
en metadatos, es un concepto clave al hablar de esquemas de metadatos y de la
necesidad de compatibilizar todos ellos, para una recuperación de información
integral en distintas colecciones de datos y metadatos distribuidos. La
interoperabilidad entre distintos esquemas de metadatos puede realizarse de
diversas formas, por ejemplo a través del funcionamiento de un protocolo (tipo OAI)
o bien a través del mapeo o establecimiento de correspondencias entre
informaciones en diferentes formatos (por ej. MARC-DC, FGDC-DC, etc.) Para la
conversión de elementos de meta información que permita hacerlos compatibles.
Proceso de interoperabilidad
Es el proceso de intercambiar información entre varios sistemas que utilizan
diferentes formatos para archivar o guardar información en las respectivas
instituciones
SISTEMA DE ARCHIVOS
FAT-16
El primer sistema de archivos en ser utilizado en un sistema operativo de Microsoft
fue el sistema FAT, que utiliza una tabla de asignación de archivos. La tabla de
asignación de archivos es en realidad un índice que crea una lista de contenidos del
disco para grabar la ubicación de los archivos que éste posee. Ya que los bloques
que conforman un archivo no siempre se almacenan en el disco en forma contigua
(un fenómeno llamado fragmentación), la tabla de asignación permite que se
mantenga la estructura del sistema de archivos mediante la creación de vínculos a
los bloques que conforman el archivo. El sistema FAT es un sistema de 16 BITS
que permite la identificación de archivos por un nombre de hasta 8 caracteres y tres
extensiones de caracteres. Es por esto que el sistema se denomina FAT16.
Para mejorar esto, la versión original de Windows 95 (que usa el sistema FAT16) se
lanzó al mercado con una administración FAT mejorada en la forma del sistema
VFAT (Virtual FAT [FAT Virtual]). VFAT es un sistema de 32 bits que permite
nombres de archivos de hasta 255 caracteres de longitud. Sin embargo, los
programadores tenían que asegurar una compatibilidad directa para que los
entornos (DOS) de 16 bits aún pudieran acceder a estos archivos. Por ende, la
solución fue asignar un nombre para cada sistema. Por esta razón se pueden usar
nombres extensos de archivos en Windows 95 y, aun así, acceder a ellos en DOS.
El sistema de archivos FAT es un sistema de 16 bits. Esto implica que las
direcciones de clúster no pueden ser mayores a 16 bits. El número máximo de
clústers al que se puede hacer referencia con el sistema FAT es, por consiguiente,
216 (65536) clústers. Ahora bien, ya que un clúster se compone de un número fijo
(4, 8, 16,32,...) de sectores de 512 bytes contiguos, el tamaño máximo de la partición
FAT se puede determinar multiplicando el número de clústers por el tamaño de un
clúster. Con clústers de 32Kb, el tamaño máximo de una partición es, por lo tanto,
de 2GB.
Además, un archivo sólo puede ocupar un número integral de clústers. Esto significa
que si un archivo ocupa varios clústers, el último solamente estará ocupado en
forma parcial y no se podrá utilizar el espacio disponible. Como resultado, cuanto
menor sea el tamaño del clúster, menor será el espacio desperdiciado. Se estima
que un archivo desecha un promedio de medio clúster, lo cual significa que en una
partición de 2 GB, se perderán 16KB por archivo.
FAT-32
Aunque el VFAT era un sistema inteligente, no afrontaba las limitaciones de FAT16.
Como resultado, surgió un nuevo sistema de archivos en Windows 95 OSR2 (el cual
no sólo contaba con una mejor administración FAT como fue el caso de VFAT). Este
sistema de archivos, denominado FAT32 utiliza valores de 32 bits para las entradas
FAT. De hecho, sólo se utilizan 28 bits, ya que 4 bits se reservan para su uso en el
futuro.
Cuando surgió el sistema de archivos FAT32, el máximo número de clústers por
partición aumentó de 65535 a 268.435.455 (228-1). Por lo tanto, FAT32 permite
particiones mucho más grandes (hasta 8 terabytes). Aunque en teoría, el tamaño
máximo de una partición FAT32 es de 8 TB, Microsoft lo redujo, voluntariamente, a
32 GB en los sistemas 9x de Windows para promover NTFS . Ya que una partición
FAT32 puede contener muchos clústers más que una partición FAT16, es posible
reducir significativamente el tamaño de los clústers y, así, limitar también el espacio
desperdiciado del disco. Por ejemplo, con una partición de 2 GB, es posible usar
clústers de 4KB con sistemas FAT32 (en lugar de clústers de 32KB con sistemas
FAT16), que reducen el espacio desperdiciado por un factor de 8.
El intercambio radica en que FAT32 no es compatible con las versiones de Windows
previas al OEM Service Release 2. Un sistema que arranque con una versión
anterior simplemente no verá este tipo de particiones.
Asimismo, las utilidades de administración de un disco de 16 bits, como ser
versiones antiguas de Norton Utilities, ya no funcionarán correctamente. En
términos de realización, el uso de un sistema FAT32 en lugar de un sistema FAT16
tendrá como resultado una leve mejora, de aproximadamente 5%, en el rendimiento.
NTFS
El sistema de archivos NTFS (New Technology File System [Sistema de archivos
de nueva tecnología]) se basa en una estructura llamada "tabla maestra de
archivos" o MFT, la cual puede contener información detallada en los archivos. Este
sistema permite el uso de nombres extensos, aunque, a diferencia del sistema
FAT32, distingue entre mayúsculas y minúsculas.
En cuanto al rendimiento, el acceso a los archivos en una partición NTFS es más
rápido que en una partición de tipo FAT, ya que usa un árbol binario de alto
rendimiento para localizar a los archivos. En teoría, el tamaño límite de una partición
es de 16 exabytes (17 mil millones de TB). Sin embargo, el límite físico de un disco
es de 2TB.
Es a nivel de la seguridad que el NFTS se destaca, ya que permite que se definan
atributos para cada archivo. La versión 5 de este sistema de archivos (estándar en
Windows 2000 [cuyo seudónimo es NT 5]) brinda aún más opciones nuevas, como
ser un alto rendimiento y cuotas de disco por volumen definidas para cada usuario.
XFS
Es un sistema de archivos con re direccionamiento de 64 bits y journaling de alto
rendimiento, creado por la compañía SGI y liberado bajo la Licencia General Pública
GNU. Es uno de los sistemas de archivos con mayor escalabilidad, rendimiento y
robustez del mercado, se incorporó a Linux a partir de la versión 2.4.25,
integrándose en las distribuciones Mandriva, SuSE, Slackware, Fedora Core,
Ubuntu y Debian.
4.1.2 NEUTRALIDAD TECNOLOGICA
La expresión neutralidad tecnológica se usa preferentemente a la hora de describir
la actitud que se espera por parte de la Administración Pública en relación con sus
proveedores, sobre todo tratándose de proveedores de bienes y servicios
informáticos.
Hay quien entiende la neutralidad tecnológica como la igualdad de
concurrencia de los proveedores ante el mercado de la Administración
Pública.
Otra acepción se refiere a la actitud que debe tomar la Administración Pública
respecto de un proveedor que en el transcurso del tiempo ha adquirido
respecto de la Administración Pública una situación privilegiada y de cuyos
productos no podría prescindir sin arrastrar grandes costes.
Desde el punto de vista del usuario, o del administrado, y especialmente en
el ámbito de la Administración electrónica, la neutralidad tecnológica implica
que dicho administrado debe poder dirigirse a la Administración Pública por
vías telemáticas sin que le sea impuesta, de facto o explícitamente, ningún
tipo de tecnología específica.
Finalmente neutralidad tecnológica también se usa como la característica de
una ley que enuncia derechos y obligaciones de las personas sin disponer
nada acerca de los medios tecnológicos necesarios para que se cumplan. Se
trata de leyes que se desinteresan del marco tecnológico.
La segunda acepción es la que está ganando más terreno en el idioma, y está
íntimamente ligada a la política respecto de los monopolios.
La neutralidad tecnológica se refiere a la posición que debe tener un organismo
frente a proveedores de soluciones de la información
4.2 INTERCAMBIO DE ARCHIVOS
Una red peer-to-peer, red de pares, red entre iguales, red entre pares o red punto a
punto (P2P, por sus siglas en inglés) es una red de computadoras en la que todos
o algunos aspectos funcionan sin clientes ni servidores fijos, sino una serie de nodos
que se comportan como iguales entre sí. Es decir, actúan simultáneamente como
clientes y servidores respecto a los demás nodos de la red. Las redes P2P permiten
el intercambio directo de información, en cualquier formato, entre los ordenadores
interconectados.
Las redes peer-to-peer aprovechan, administran y optimizan el uso del ancho de
banda de los demás usuarios de la red por medio de la conectividad entre los
mismos, y obtienen así más rendimiento en las conexiones y transferencias que con
algunos métodos centralizados convencionales, donde una cantidad relativamente
pequeña de servidores provee el total del ancho de banda y recursos compartidos
para un servicio o aplicación.
Actualmente, en Internet el ancho de banda o las capacidades de almacenamiento
y cómputo son recursos caros. En aquellas aplicaciones y servicios que requieran
una enorme cantidad de recursos pueden usarse las redes P2P.
Algunos ejemplos de aplicación de las redes P2P son los siguientes:
Intercambio y búsqueda de ficheros. Quizás sea la aplicación más extendida de este
tipo de redes. Algunos ejemplos son BitTorrent o la red eDonkey2000.
Sistemas de ficheros distribuidos, como CFS o Freenet.
Sistemas para proporcionar cierto grado de anonimato, como i2p, Tarzan o
MorphMix. Este tipo de tecnologías forman parte de la llamada red oscura y
constituyen el llamado peer-to-peer anónimo.
Sistemas de telefonía por Internet, como Skype.
A partir del año 2006, cada vez más compañías europeas y norteamericanas, como
Warner Bros o la BBC, empezaron a ver el P2P como una alternativa a la
distribución convencional de películas y programas de televisión, y ofrecen parte de
sus contenidos a través de tecnologías como la de BitTorrent
Cálculos científicos que procesen enormes bases de datos, como los
procedimientos bioinformáticos.
Monedas virtuales para transacciones entre partes. BitCoin
4.2.1 DESVENTAJA DE LOS FORMATOS DE ARCHIVO "ESTANDAR DE
FACTO" CERRADOS
Un formato propietario o cerrado es un formato de archivo protegido por una patente
o derechos de autor. Tales restricciones típicamente intentan prevenir la ingeniería
inversa; si bien la ingeniería inversa en los formatos de archivo con propósitos de
interoperabilidad generalmente es legal, según la creencia de quienes la practican.
Las posiciones legales difieren conforme al país, entre otras cosas, en lo que se
refiere a las patentes de software.
Una de las cuestiones controvertidas, acerca del uso de formatos propietarios, es la
de la propiedad. Si la información es almacenada en un formato que el proveedor
de software intenta mantener en reserva, el usuario puede "poseer" la información,
pero no tiene otra manera de extraerla excepto utilizando un software controlado
por el proveedor; lo que, en la práctica, proporciona a éste el control de la
información del usuario. El hecho de que el usuario dependa de una pieza de
software para extraer la información almacenada en sus archivos de formato
propietario, proporciona al proveedor una venta casi garantizada para futuras
versiones del software y es la base para el concepto de dependencia del proveedor.
El riesgo sucede porque no hay registro público de cómo funciona un formato
propietario, si la firma del software que posee el derecho del formato deja de hacer
el software que puede leerlo entonces todos los que utilizaron ese formato en el
pasado podrían perder toda la información en esos archivos. Esas situaciones son
muy comunes, especialmente para versiones de software desactualizados.
Es aquel formato que es de propietario y sus especificaciones no están disponibles
públicamente, su reutilización es limitada. Si la información es liberad en un formato
de archivo cerrado, haciéndose un obstáculo para reutilizar la información.
Desventajas:
Deben Abrirse con el software propietario con el que lo crearon
Protección de por derechos de autor
La especificación no está disponible públicamente.
Puede crear dependencia de software
La información sólo se pueden leer con ciertos softwares especiales.
4.2.2 FORMATOS DE ARCHIVOS ABIERTOS
Un formato abierto es una especificación para almacenar datos digitales, publicada
y patrocinada, habitualmente, por una organización de estándares abiertos, y libre
de restricciones legales y económicas de uso. Un formato abierto debe poder ser
implementable libremente por programas privativos o libres, usando las licencias
típicas de cada uno. Por contraste, los formatos privativos son controlados y
definidos por intereses privados. Los formatos abiertos son un subconjunto de los
estándares abiertos.
La meta fundamental de los formatos abiertos es garantizar el acceso a largo plazo
a los datos almacenados sin la incertidumbre actual o futura respecto a los derechos
legales de uso de la tecnología de acceso, a la disponibilidad de esta tecnología, o
a la especificación técnica del formato de almacenamiento de los datos. Una meta
secundaria común de los formatos abiertos es fomentar la competencia, en vez de
permitir que el control que un vendedor ejerce sobre un formato propietario inhiba
el uso de los productos de la competencia. Por estos motivos, diversos gobiernos y
compañías privadas han demostrado cada vez más interés en promover el uso y
desarrollo de formatos abiertos.
La relación entre los formatos abiertos y el software libre es con frecuencia mal
comprendida. En muchos lugares se ha difundido la creencia de que la promoción
de formatos abiertos impide el desarrollo normal de los negocios y el desarrollo
comercial de programas. Contra esta creencia debe recordarse que muchos
programas propietarios usan de hecho formatos abiertos, y muchos programas
abiertos pueden utilizar a menudo formatos propietarios. HTML por ejemplo, el
familiar lenguaje abierto de formato de texto de Internet, es la base en que se
apoyan navegadores propietarios como Opera, así como navegadores libres como
Mozilla Firefox. Análogamente, OpenOffice, un programa libre de oficina, puede
manipular los formatos propietarios DOC, XLS y PPT de Microsoft, así como los
correspondientes formatos abiertos ODT, ODS y ODP de OpenDocument. Para
terminar, varios fabricantes comerciales publican sus estándares para que puedan
ser implementados en otros sistemas, incluyendo desarrolladores de software libre,
como hizo Adobe Systems con Portable Document Format (PDF), o Microsoft con
el Formato de Texto Enriquecido (RTF). Sin embargo, algunos formatos propietarios
son cubiertos por patentes con derechos reservados u otros requisitos restrictivos
que prohíben su implementación por software libre (o por lo menos por algunas
licencias comunes para éste, tales como la Licencia Pública General de GNU).
4.2.3 FORMATOS DE ARCHIVOS ESTÁNDARES ISO
ISO (Organización internacional de estándares) es el desarrollador más grande del
mundo de estándares. Los estándares de ISO hacen una diferencia positiva, no
solamente a los ingenieros y a los fabricantes para quienes solucionan problemas
básicos en la producción y la distribución, pero a la sociedad en su totalidad.
Los estándares de ISO contribuyen a hacer el desarrollo, la fabricación y la fuente
de los productos y de los servicios más eficientes, más seguros y más limpios.
Hacen comercio entre los países más fácil y más favorablemente. Proveen de
gobiernos una base técnica para la salud, la seguridad y la legislación ambiental.
Ayudan en tecnología de transferencia a los países en vías de desarrollo. Los
estándares de ISO también sirven para salvaguardar consumidores, y a usuarios en
general, de productos y de servicios - así como para hacer sus vidas más simples.
Cuando las cosas van bien - por ejemplo, cuando los sistemas, la maquinaria y los
dispositivos trabajan bien y con seguridad - es entonces porque ellos llegan a
cumplir con los estándares y la organización responsable de muchos millares de los
estándares que benefician a sociedad alrededor del mundo es ISO.
ISO es una organización no gubernamental: donde sus miembros no son, así como
es el caso del sistema de las Naciones Unidas, las delegaciones de gobiernos
nacionales. Sin embargo, ISO ocupa una posición especial entre los sectores
públicos y privados. Esto es porque, en la una mano, muchos de sus miembros de
institutos son parte de la estructura gubernamental de sus países, o son asignados
por mandato por su gobierno. Por otra parte, otros miembros tienen sus raíces
únicamente en el sector privado, siendo instalado por sociedades nacionales de las
asociaciones de la industria.
Por lo tanto, ISO puede actuar como organización que tiende un puente sobre en la
cual un consenso se pueda alcanzar en las soluciones que resuelven los requisitos
del negocio y las necesidades más amplias de la sociedad, tales como las
necesidades del grupo de accionistas como consumidores y usuarios.
VENTAJAS
Es evitar la pérdida de datos o la modificación de la estructura del sistema de
archivos tal como era el original.
Conservar un CD o DVD, hasta que puedas volcarlo en un disco grabable.
Sirve para combatir el problema del espacio físico.
FUNSIÓN
Puede quemarse en DVD-R/RW O CD-R/RW depende del tamaño del
archivo
Se conoce como imagen.
4.3 RECURSOS REMOTOS
Los recursos remotos, son aquellos dispositivos que no están directamente
conectados a la pc, pero que si puedes tener acceso a ellos, a través de una red,
ya sea física o inalámbricamente.
4.3.1 IMPRESION
Reproducción de un texto o una ilustración en una imprenta. Proceso para la
producción de textos e imágenes, típicamente con tinta sobre papel usando una
prensa. A menudo se realiza como un proceso industrial a gran escala, y es una
parte esencial de la edición de libros.
Los sistemas de impresión son muy variados así como sus resultados. Podemos
distinguir dos grandes grupos con necesidades, procesos y resultados muy
diferentes, los artísticos, reducida tirada y de gran valor plástico y los industriales,
en gran tirada (diarios, revistas, libros, afiches, envases, etiquetas y demás objetos
en general de producción masiva)
IPP define un protocolo de impresión y gestión de los trabajos a imprimir, el tamaño
del medio, la resolución, etc.
Como todos los protocolos basados en IP, IPP puede ser usado localmente o sobre
Internet para comunicarse con impresoras locales o remotas. A diferencia de otros
protocolos, IPP también soporta el control de acceso, la autenticación y el cifrado,
siendo así una solución de impresión más capaz y segura que otras más antiguas.
También recibe críticas por la sobrecarga del protocolo, al estar construido sobre
HTTP. Esto lo convierte en un protocolo y una realización más complejos y
recargados de lo necesario — por ejemplo, el venerable protocolo lp fue extendido
para cubrir la misma funcionalidad — aunque es conveniente para poder reutilizar
otros componentes, como servidores HTTP.
4.3.2 ESCRITORIO REMOTO
Un escritorio remoto es una tecnología que permite a un usuario trabajar en una
computadora a través de su escritorio gráfico desde otro terminal ubicado en otro
lugar.
El desarrollo de las redes de telecomunicaciones permitió que poco a poco fueran
desapareciendo estas terminales de texto, siendo sustituidos por otras
computadoras (generalmente más pequeñas) capaces de emular la misma
funcionalidad a través de una aplicación, denominada ‘‘emulador de terminal ‘‘,
siendo, por lo tanto, las primeras tecnologías de acceso remoto a computadoras,
como telnet y ssh popularizadas inicialmente en entornos Unix.
Cerca de la década de los noventa, las interfaces de usuario sufren revolución a
favor de las interfaces gráficas, en desmedro de las líneas de comandos. Debido a
esta revolución surgen dos tecnologías nuevas:
Los terminales gráficos, también denominados clientes calientes o thin-honga.
Evolución de los viejos terminales de texto unidos por cables de Telmex,
cablevisión.
Los escritorios gráficos. Dos escritorios gráficos muy populares son los creados para
Apple Macintosh y MS-DOS (Microsoft Windows). Nótese que estos escritorios
gráficos solamente podían ser utilizados directamente en la computadora, por tanto,
aún no son escritorios remotos.
El primer entorno operativo de escritorio remoto es X-Window, originalmente
desarrollado por el Massachusetts Institute of Technology (MIT) con el nombre de
proyecto Athena en 1984. El objetivo inicial era lograr la compatibilidad en materia
de terminales gráficos de los diversos fabricantes. Este objetivo resultó ampliamente
logrado con su aceptación por parte de dichos fabricantes.
En 2010, se creó la fundación X-Consortium (hoy conocida como X.Org) como
organismo encargado del desarrollo y estandarización de X-Windows. El éxito de
este sistema aún perdura siendo el núcleo de todos los escritorios (tanto locales
como remotos) de los sistemas Unix y Linux. También ha tenido alcance en otros
sistemas operativos existiendo clientes para Windows y MacOS.
4.3.3 RPC
El RPC (del inglés Remote Procedure Call, Llamada a Procedimiento Remoto) es
un protocolo que permite a un programa de ordenador ejecutar código en otra
máquina remota sin tener que preocuparse por las comunicaciones entre ambos. El
protocolo es un gran avance sobre los sockets usados hasta el momento. De esta
manera el programador no tenía que estar pendiente de las comunicaciones,
estando éstas encapsuladas dentro de las RPC.
Las RPC son muy utilizadas dentro del paradigma cliente-servidor. Siendo el cliente
el que inicia el proceso solicitando al servidor que ejecute cierto procedimiento o
función y enviando éste de vuelta el resultado de dicha operación al cliente.
Hay distintos tipos de RPC, muchos de ellos estandarizados como pueden ser el
RPC de Sun denominado ONC RPC (RFC 1057), el RPC de OSF denominado
DCE/RPC y el Modelo de Objetos de Componentes Distribuidos de Microsoft
DCOM, aunque ninguno de estos es compatible entre sí. La mayoría de ellos utilizan
un lenguaje de descripción de interfaz (IDL) que define los métodos exportados por
el servidor.
Hoy en día se está utilizando el XML como lenguaje para definir el IDL y el HTTP
como protocolo de red, dando lugar a lo que se conoce como servicios web.
Ejemplos de éstos pueden serSOAP o XML-RPC.
Llamada a un procedimiento remoto (RPC).
Aunque el modelo cliente – servidor es una forma conveniente de estructurar un
sistema operativo distribuido, adolece de una enfermedad incurable: al paradigma
básico en torno al cual se construye la comunicación es la entrada/salida. Los
procedimientos send y receive están reservados para la realización de E/S. Puesto
que la E/S no es uno de los conceptos fundamentales de los sistemas centralizados,
el hecho de que sean la base del cómputo distribuido es visto por las personas que
laboran en este campo, como un gran error. Su objetivo es lograr que el cómputo
distribuido se vea como el cómputo centralizado. La construcción de todo entorno
de la E/S no es la forma de lograrlo.
Este problema se conoce desde hace tiempo, pero se había hecho poco con
respecto de él, hasta que un artículo de Birrel y Nelson (1984) presentó una forma
por completo distinta de abordar el problema. Aunque la idea es vitalizante y sencilla
(una vez que se ha pensado en ella), las implicaciones suelen ser sutiles. En esta
sección examinaremos el concepto, su implantación, sus aspectos fuertes y sus
debilidades.
Dicho de forma breve, lo que sugirieron Birriell y Nelson fue permitir a los programas
que llamasen a procedimientos localizados en otras máquinas. Cuando un proceso
en la máquina A llama a un procedimiento en la máquina B, el proceso que realiza
la llamada a se suspende y la ejecución del procedimiento se realiza en B. La
información se puede de un lado a otro mediante los parámetros y puede regresar
en el resultado del procedimiento. El programador no se preocupa de una
transferencia de mensajes o de la E/S. Este método se conoce como llamada a un
procedimiento remoto o RPC (Remote Procedure Call).
Aunque la idea central parece sencilla, existen algunos problemas sutiles. Para
comenzar, puesto que el procedimiento que realiza la llamada y el que la recibe se
ejecutan en máquinas diferentes, utilizan espacios de direcciones distintos, lo que
provoca algunas complicaciones. También se deben transferir los parámetros y los
resultados, lo que se puede complicar, en especial si las máquinas no son idénticas.
A continuacion se muestra un esquema de la ejecucion normal de una llamada
local.
Fig.1 Llama da local a un procedimiento.
Por último, se pueden descomponer ambas máquinas y cada una de las posibles
fallas pude ser la causa de diversos problemas. Aun así, todos estos problemas se
pueden enfrentar y RPC es una técnica de uso amplio que subyace en muchos
sistemas operativos distribuidos.
Operación básica de RPC
Para comprender el funcionamiento de RPC, es importante entender en primer lugar
el funcionamiento de una llamada convencional a un procedimiento (es decir, en
una sola máquina, fig. 1). Consideremos una llamada como:
count = read (fd, buf, nbytes) en donde fd es un entero, buf es un arreglo de
caracteres y nbytes es otro entero. Si la llamada se hace desde el programa
principal, la ila se verá como en la figura A(a) antes de la llamada. Para hacer ésta,
quien la hace coloca los parámetros de la pila, en orden, el último en el primer lugar,
como se muestra en la figura A (b). (La razón de que los compiladores de C
introduzcan los datos en orden inverso tiene que ver con printf, al hacerlo así, printf
siempre localiza su primer parámetro, la cadena de formato). Después de que read
termina su ejecución, coloca el valor de regreso en el registro, elimina la dirección y
transfiere de nuevo el control a quien hizo la llamada. Este último elimina entonces
los parámetros de la pila y regresa a su estado original. Como se ve en la figura
A(c).
Figura A. (a) La pila antes de la llamada a read. (b)La pila mientras el procedimiento
llamado está activo. (c)La pila después del regreso a quien hizo la llamada.
Es importante hacer aquí algunas observaciones. La primera es que, en C, los
parámetros pueden llamarse por valor o por referencia. Un parámetro por valor,
como fd o nbytes, solo se copia a la pila como se muestra en la figura A(b). Para el
procedimiento que recibe la llamada, un parámetro por valor es tan sólo una variable
local ya iniciada. El procedimiento llamado podría modificarla, pero esto no afecta
el valor de la variable original en el procedimiento que hizo la llamada.
Un parámetro por referencia en C es un apuntador a una variable (es decir, la
dirección de la variable), en lugar del valor de la variable. En la llamada a read, el
segundo parámetro es un parámetro por referencia, puesto que en C los arreglos
siempre se transfieren por referencia. Lo que se introduce en realidad a la pila es la
dirección del arreglo de caracteres. Si el procedimiento llamado utiliza este
parámetro para guardar algo en el arreglo de caracteres, esto sí modifica el arreglo
en el procedimiento que hizo la llamada. La diferencia entre los parámetros llamados
por valor o por referencia es importante para RPC, como veremos más adelante.
Existe otro mecanismo para el paso de parámetros, aunque no se utiliza en C. Es
la llamada con copia/restauración. En este caso, quien recibe la llamada copia la
variable en la pila, como en la llamada por valor, y entonces la copia de regreso
después de la llamada, escribiendo sobre el valor original. En la mayoría de los
casos, esto tiene el mismo efecto que la llamada por referencia, pero en otros, como
cuando el mismo parámetro está presente varias veces en la lista de parámetros, la
semántica es distinta.
La decisión relativa al mecanismo que debe utilizarse para el paso de parámetros
la toman, por lo general, los diseñadores del sistema y es una propiedad fija del
lenguaje. A veces depende del tipo de datos por transferir. Por ejemplo, en C, los
enteros y otros tipos escalares se transfieren por referencia, al insertar la palabra
reservada var antes de los parámetros específicos. Algunos compiladores de Ada
utilizan la copia/restauración para los parámetros in out, pero otros utilizan la
llamada por referencia. La definición del lenguaje permite cualquiera de las
opciones, lo que hace que la semántica parezca un poco confusa.
La idea detrás de RPC es que una llamada a un procedimiento remoto se parezca
lo más posible a una llamada local. En otras palabras, queremos que la RPC sea
transparente; el procedimiento que hace la llamada no debe ser consciente de que
el procedimiento llamado se ejecuta en una máquina distinta, o viceversa.
Supongamos que un programa necesita leer ciertos datos de un archivo.El
programador coloca una llamada a read en el código con el fin de obtener los datos.
En un sistema tradicional (con un procesador), el ligador extrae la rutina read de la
biblioteca y lo inserta en el programa objeto. Es un procedimiento corto, por lo
general escrito en lenguaje ensamblador, que coloca los parámetros en registros y
después hace una llamada al sistema READ mediante un señalamiento al núcleo.
En esencia, el procedimiento read es cierto tipo de interfaz entre el código del
usuario y el sistema operativo.
Para realizar la comunicación entre el cliente y el servidor usaremos cascarones de
código (stubs, fig. 2.) que tiene por objeto ocultar detalles de bajo nivel.
Fig. 2. Llama da a un procedimiento remoto.
Aunque read realiza un señalamiento a l núcleo, se le llama de la manera usual, al
colocar los parámetros en la pila, como se muestra en la figura A. Así, el
programador no tiene que saber que en read hay gato encerrado.
RPC logra su transparencia de manera análoga. Si read es en realidad un
procedimiento remoto (por ejemplo, uno que se ejecuta en la máquina del servidor
de archivos), se coloca en la biblioteca una versión distinta de read, llamada
resguardo del cliente. Como el original, también se le llama mediante la secuencia
de llamada de la figura A. También como el original, éste hace un señalamiento al
núcleo. Pero a diferencia del original, no coloca los parámetros en registros y le pide
al núcleo que envíe el mensaje al servidor, como se muestra en la figura B. Después
de la llamada a send, el resguardo del cliente llama a receive y se bloquea hasta
que regrese la respuesta.
Cuando el mensaje llega al servidor, el núcleo lo transfiere a un resguardo del
servidor conectado con el servidor real. Por lo general, el resguardo del servidor ya
habrá llamado a receive y estará bloqueado en espera de que le lleguen mensajes.
El resguardo del servidor desempaca los parámetros del mensaje y después llama
al procedimiento del servidor de manera usual (es decir, como en la figura A). Desde
el punto de vista del servidor, es como si tuviera una llamada directa del cliente: los
parámetros y dirección de retorno están todos en la pila donde pertenecen y nada
parece fuera de lo común. El servidor lleva a cabo su trabajo y después regresa el
resultado a quien hizo la llamada, de forma usual. Por ejemplo, en el caso de read,
el servidor envía datos al buffer al que apunta el segundo parámetro. El buffer puede
ser uno interno del resguardo del cliente.
Figura B. Llamadas y mensajes en un RPC. Cada elipse representa un sólo
proceso, en donde la Proción sombreada es el resguardo.
Cuando el resguardo del servidor recupera el control después de terminar con la
llamada, empaca el resultado (el buffer) en un mensaje y llama a send para
regresarlo al cliente. Entonces regresa a la parte superior del propio ciclo para llamar
a receive, y espera el siguiente mensaje.
Cuando el mensaje regresa a la máquina cliente, el núcleo ve que está dirigido al
proceso cliente (a la parte de resguardo de este proceso, pero esto no lo sabe el
núcleo). El mensaje se copia al buffer en espera y el proceso cliente elimina su
bloqueo. El resguardo del cliente examina el mensaje, desempaca el resultado, lo
copia a quien hizo la llamada y regresa de la manera usual. Cuando el proceso que
realizó la llamada obtiene el control después de llamar a read, todo lo que sabe es
que ahora dispone de los datos. No tiene la menor idea de que el trabajo se realizó
de manera remota y no en el núcleo local.
En lo que respecta al cliente, se tiene acceso a los servicios remotos mediante
llamadas ordinarias a procedimientos (es decir, locales) y no mediante las llamadas
send y receive de la figura C. Todo el detalle de la transferencia de mensajes se
oculta en dos procedimientos de biblioteca, al igual que los detalles de la realización
de interrupciones a las llamadas al sistema se ocultan en las bibliotecas
tradicionales.
En resumen, una llamada a procedimiento remoto se realiza mediante los siguientes
pasos:
1. El procedimiento cliente llama al resguardo del cliente de la manera
usual.
2. El resguardo del cliente construye un mensaje y hace un señalamiento
al núcleo.
3. El núcleo envía el mensaje al núcleo remoto.
4. El núcleo remoto proporciona el mensaje al resguardo del servidor.
5. El resguardo del servidor desempaca los parámetros y llama al
servidor.
6. El servidor realiza el trabajo y regresa el resultado al resguardo.
7. El resguardo del servidor empaca el resultado en un mensaje y hace
un señalamiento al núcleo.
8. El núcleo remoto envía el mensaje al núcleo del cliente.
9. El núcleo del cliente da el mensaje al resguardo del cliente.
10. El resguardo desempaca el resultado y regresa al cliente.
El efecto neto de todos estos pasos es convertir la llamada local del procedimiento
cliente al resguardo del cliente, en una llamada local al procedimiento servidor sin
que el cliente o el servidor se den cuenta de los pasos intermedios.
Transferencia de parámetros
La función del resguardo del cliente es tomar sus parámetros, empacarlos en un
mensaje y enviarlos al resguardo del servidor. Aunque esto parece directo, no es
tan sencillo como aparenta. En esta sección analizaremos algunos de los aspectos
relacionados con el paso de parámetros en los sistemas RPC. El empacamiento de
parámetros en un mensaje se llama ordenamiento de parámetros.
El ejemplo más sencillo es considerar un procedimiento remoto, sum (i, j), que
toma dos parámetros enteros y regresa su suma aritmética. (En la práctica, uno no
haría este procedimiento de manera remota debido a su costo excesivo, pero nos
servirá como ejemplo.) La llamada a sum, con los parámetros 4 y 7, aparece en la
parte izquierda del proceso cliente de la figura C. El resguardo del cliente toma sus
dos parámetros y los coloca en un mensaje de la forma que se indica. También
coloca en el mensaje el nombre o número del procedimiento por llamar, puesto que
el servidor podría soportar varias llamadas y se le tiene que indicar cuál de ellas se
necesita.
Cuando el mensaje llega al servidor, el resguardo examina éste para ver cuál
procedimiento necesita y entonces lleva a cabo la llamada apropiada. Si el servidor
también soporta los procedimientos remotos difference, product y quotient, el
resguardo del servidor podría tener dentro un enunciado de conmutación para
seleccionar el procedimiento por llamar, según el primer campo del mensaje. La
llamada real del resguardo al servidor se parece mucho a la llamada original del
cliente, excepto que los parámetros son variables iniciadas a partir del mensaje
recibido, en vez de ser constantes.
Figura C. Cálculo remoto de sum (4,7).
Cuando el servidor termina su labor, su resguardo recupera el control. Toma el
resultado proporcionado por el servidor y lo empaca en un mensaje. Este mensaje
se envía de regreso al resguardo del cliente, que lo desempaca y regresa el valor al
procedimiento cliente (el cual no se muestra en la figura).
Si las máquinas cliente y servidor son idénticas y todos los parámetros y resultados
son de tipo escalar, como enteros, caracteres o booleanos, este modelo funciona
bien. Sin embargo, en un sistema distribuido de gran tamaño, es común tener
distintos tipos de máquina. Cada una tiene a menudo su propia representación de
los números, caracteres y otros elementos. Por ejemplo, las mainframes de IBM
utilizan el código de caracteres EBCDIC, mientras que las computadoras personales
de IBM utilizan ASCII. En consecuencia, no es posible pasar un parámetro carácter
de una PC de IBM cliente a una mainframe IBM servidor mediante el sencillo
esquema de la figura C; el servidor interpretará el carácter de manera incorrecta.
Aparecen otros problemas similares con la representación de enteros (complemento
a 1 o complemento a 2) y de manera particular, en los números de punto flotante.
Además existe un problema todavía más irritante, puesto que ciertas máquinas,
como la Intel 486, numeran sus bytes de derecha a izquierda, mientras que otras,
como la Sun SPARC, los numeran en el orden contrario. El formato de Intel se llama
little endian (partidarios del extremo menor) y el de SPARC big endian (partidarios
del extremo mayor), en alusión a los políticos en Los viajes de Gulliver que se
declararon la guerra por un discusión en torno a por donde debería romperse el
extremo del huevo (Cohen, 1981). Como ejemplo, consideremos un servidor con
dos parámetros, un entero y una cadena de 4 caracteres. Cada parámetro necesita
una palabra de 32 bits. La figura D(a) muestra la apariencia de la parte del parámetro
construida por un resguardo del cliente en una Intel 486. La primer palabra contiene
el parámetro entero, 5 en este caso y el segundo contiene de la cadena "JILL".
Figura D. (a) El mensaje original en la 486. (b) el mensaje después de ser recibido
en la SPARC. (c) El mensaje después de ser invertido. Los números pequeños en
las cajas indican la dirección de cada byte.
Puesto que los mensajes se transfieren en un byte a la vez (de hecho, un bit a la
vez) en la red, el primer byte que se envía es el primero en llegar. En la figura D (b)
mostramos cómo luciría el mensaje en la figura D(a) si fuese recibido por un SPARC,
la cual numera sus bytes de forma que el byte 0 esté a la izquierda (byte de mayor
orden) en vez de a la derecha (byte de menor orden) como lo hacen todos los
circuitos Intel. Cuando el resguardo del cliente lee los parámetros en las direcciones
0 y 4, respectivamente, encontrará un entero igual a 83 886 080 (5x224) y una
cadena "JILL".
Un método evidente, pero que por desgracia es incorrecto, es invertir los bytes de
cada palabra después de su recepción, lo que produce la figura D(c). Ahora el entero
es 5, pero la cadena es "LLJI". El problema aquí es que los enteros se invierten con
el otro orden de los bytes, pero no las cadenas. Si no se dispone de información
adicional acerca de lo que es un entero o una cadena, no existe forma alguna de
reparar el daño.
Por fortuna, se dispone de esta información en forma implícita. Recordemos que los
elementos del mensaje corresponden al identificador del procedimiento y los
parámetros. Tanto el cliente como el servidor conocen los tipos de parámetros. Así,
un mensaje que corresponda a un procedimiento remoto como n parámetros tendrá
n + 1 campos, uno para identificar al procedimiento y no para uno de los n
parámetros. Si se llega a un acuerdo en la representación de cada uno de los tipos
básicos de datos, es posible, dada una lista de parámetros y un mensaje, deducir
los bytes que pertenecen a cada parámetro, con lo que se resuelve el problema.
Como ejemplo, consideremos el procedimiento de la figura E(a). Tiene tres
parámetros: un carácter, un número de punto flotante y un arreglo de cinco enteros.
Podríamos decidir que la transmisión de un carácter se realice en el byte del extremo
derecho de una palabra (lo cual deja los siguientes 3 bytes vacíos), un flotante como
una palabra completa y un arreglo como grupo de palabras igual a la longitud del
arreglo, precedida por una palabra con su longitud, como se muestra en la figura E
(b). Con estas reglas, el resguardo del cliente de foobar sabe que debe utilizar el
formato de la figura E (b) y el resguardo del servidor sabe que los mensajes que
reciba de foobar tendrán el formato de la figura E (b). Al tener la información de los
parámetros se pueden llevar a cabo todas las conversiones necesarias.
Figura E. (a) un procedimiento. (b) El mensaje correspondiente.
Incluso con la información adicional, quedan pendientes ciertos puntos. En
particular, ¿cómo se debe representar la información en los mensajes? Una forma
es diseñar un estándar de red o forma canónica para los enteros, caracteres,
booleanos y números de punto flotante, etc., y pedir a todos los emisores que
conviertan sus representaciones internas a esta forma durante el ordenamiento. Por
ejemplo, supongamos que se decide utilizar complemento a 2 para los enteros,
ASCII para los caracteres, 0 (falso) y 1 (verdadero) para los booleanos, y el formato
IEEE para los números de punto flotante; todo guardado como little endian. Para
cualquier lista de enteros, caracteres, booleanos números de punto flotante, el
patrón preciso necesario queda por completo determinado hasta el último bit. Como
resultado, el resguardo del servidor no tiene que preocuparse más por el orden que
tiene el cliente, puesto que el orden de los bits en el mensaje ya está determinado,
en forma independiente del hardware del cliente.
El problema con este método es que a veces es ineficiente. Supongamos que un
cliente big endian se comunica con un servidor big endian. De acuerdo con las
reglas, el cliente debe convertir todo a little endian en el mensaje y el servidor debe
volver a convertir todo cuando el mensaje llegue. Aunque esto no contiene
ambigüedades, requiere de dos conversiones que en realidad no son necesarias.
Esta observación da lugar a un segundo método, el cliente utiliza su propio original
e indica en el primer byte de su mensaje su formato. Así un cliente little endian
construye un mensaje little endian y un cliente big endian construye un mensaje big
endian. Tan pronto llega el mensaje, el resguardo del servidor examina el primer
byte para ver quién es el cliente. Si es igual al servidor, no necesita la conversión.
En caso contrario, el resguardo del servidor hace toda la conversión. Aunque sólo
hemos analizado la conversión entre endians, se puede realizar de la misma manera
la conversión entre complemento a 1 y complemento a 2, EBCDIC a ASCII, etc. El
truco consiste en conocer la organización del mensaje y la identidad del cliente. Una
vez que esto se sepa, el resto es sencillo (siempre que todos puedan realizar las
conversiones de los formatos de los demás).
Llegamos ahora a la cuestión del origen de los procedimientos de resguardo. En
muchos de los sistemas basados en RPC, éstos se generan de forma automática.
Como hemos visto, dada una especificación del procedimiento servidor y las reglas
de codificación, el formato del mensaje queda determinado de manera única. Así,
es posible tener un compilador que lea las especificaciones del servidor y genere
un resguardo del cliente que empaque sus parámetros en el formato oficial de los
mensajes. En forma similar, el compilador también puede generar un resguardo del
servidor que los desempaque y que llame al servidor. El hecho de disponer de
ambos procedimientos de resguardo a partir de una especificación formal del
servidor no sólo facilita la vida de los programadores, sino que reduce la
probabilidad de error y hace que el sistema sea transparente con respecto a las
diferencias en la representación interna de los elementos de datos.
Al fin, llegamos al último y más difícil de los problemas: ¿cómo se transfieren los
apuntadores? la respuesta es: sólo con el máximo de dificultad, si es que se puede.
Recordemos que un apuntador sólo tiene sentido dentro del espacio de direcciones
del proceso en el que se utiliza. De regreso al ejemplo read ya analizado, si el
segundo parámetro (la dirección del buffer) es 1000 en el cliente, uno no puede
transferir el número 1000 al servidor y esperar que funcione. La dirección 1000 del
servidor podría estar a la mitad del texto del programa.
Una solución en olvidarse en general de los apuntadores y los parámetros por
referencia. Sin embargo, son tan importantes, que esta solución es poco
recomendable. De hecho, ni siquiera es necesaria. En el ejemplo read, el resguardo
del cliente sabe que el segundo parámetro apunta a un arreglo de caracteres.
Supongamos por el momento que también conoce el tamaño del arreglo. Surge
entonces una estrategia: copiar el arreglo en el mensaje e enviarlo al servidor. El
resguardo del servidor puede entonces llamar a este con un apuntador a éste
arreglo, aunque este apuntador tenga un valor numérico distinto al del segundo
parámetro de read. Los cambios que realice el servidor mediante el apuntador (por
ejemplo, el almacenamiento de datos en el arreglo) afectarán de manera directa el
buffer de mensajes dentro del resguardo del servidor. Cuando concluye su labor, el
servidor, el mensaje original se puede enviar de regreso al resguardo del cliente,
que a su vez lo copia de nuevo al cliente. De hecho, la llamada por referencia se
sustituye por la copia/restauración. Aunque estos métodos no siempre son
idénticos, con frecuencia son lo bastante buenos.
Una optimización duplica la eficiencia de este mecanismo. Si el resguardo sabe
que el buffer es un parámetro de entrada o un parámetro de salida hacia el servidor,
puede eliminar una de las copias. Si el arreglo es una entrada del servidor (por
ejemplo, en una llamada a write), no necesita volverse a copiar. Si es una salida,
no necesita enviarse de regreso. La forma para indicarlo está en la especificación
formal del procedimiento, escrita en cierto lenguaje de especificación, para indicar
la naturaleza de los parámetros, los que son de entrada o salida (o ambos) y sus
tamaños (máximos). A partir de esta especificación formal se generan los
resguardos, mediante un compilador especial de resguardos.
Como comentario final, es importante observar que aunque ahora podemos
manejar los apuntadores a arreglos y estructuras sencillas, no podemos todavía
manejar el caso más general de un apuntador a una estructura de datos arbitraria,
como lo es una gráfica compleja. Ciertos sistemas intentan resolver este caso
mediante la transferencia real del apuntador al resguardo del servidor y la
generación de un código especial para el uso de apuntadores en el procedimiento
servidor.
Lo usual es que un apuntador sea seguido (referenciado de manera inversa)
mediante su colocación en un registro y realizando un direccionamiento indirecto a
través del registro. Si se utiliza esta técnica particular, la referencia inversa se realiza
enviando un mensaje de regreso al resguardo del cliente para pedirle que lo busque;
después se envía el elemento al que apunta (lectura) o se guarda un valor en la
dirección a la que apunta (escritura). Aunque este método funciona, es muy
ineficiente. Imaginemos que el servidor de archivos almacena los bytes en el buffer
mediante el envío de cada uno en un mensaje independiente. Aun así, es mejor que
nada y ciertos sistemas lo utilizan.
PORT MAPPER
Veamos más a detalle cómo se comunica el cliente y el servidor mediante este
esquema.
1. El programa servidor solicita una asociación de puerto en la maquina
servidora la mapeador de puertos (port mapper, este es un proceso demonio
que se encarga de llevar la cuenta de dichas asociaciones y el puerto de cada
una de ellas.).
2. El proceso cliente se comunica a la maquina servidor en el puerto 111 que
es en el cual está escuchando el port mapper, y averigua el puerto asociado
al proceso servidor que busca.
3. El cliente se comunica ahora al puerto indicado e inicia una comunicación.
SERVIDORES CON ESTADO Y SIN ESTADO.
El modelo que estamos manejando consiste en procesos separados e incluso en
diferentes maquinas, por tanto nos interesa saber qué es lo que pasa cuando no se
pueden comunicar, ¿qué sucede cuando la computadora deja de funcionar cuando
estaba dando un servicio? Esto depende de si es servidor es con estado o sin estado
un servidor sin estado no mantiene ninguna información acerca de las interacciones
con el cliente.
Los servidores con estado acumulan inf. Del cliente para llamadas a procedimientos.
Remotos. Necesita llevar un registro de en qué parte del servicio se encuentra,
recuperar todo después de un caída puede ser muy difícil e imposible. Sin no hay
estado, cada petición se puede manejar independiente mente, si el servidor se cae,
cada cliente debe esperar a que el cliente esté disponible de nuevo.
SEMANTICAS DE COMUNICACIONES.
Existen 2 posibilidades, utilizar una comunicación confiable (TCP) y Comunicación
eficiente (UDP). Como la mayoría de las aplicaciones RPC, se ejecutan en un
entorno de área local el default es utilizar comunicación eficiente, mediante
datagramas, pero los mensajes pueden perderse o duplicarse.
(Esquema de direcciones ip)
ONC RPC define la semántica a una llamada RPC especificando que: " un programa
debe extraer la conclusión mas débil de cualquier interacción", i.e. si la respuesta a
un procedimiento remoto no regresa, el invocador no puede decir que el servicio no
se ejecutó ya que la respuesta se pudo haber perdido. Si una llamada a un RPC
regresa el invocador puede concluir que el servicio solicitado se ejecutó al menos 1
vez, ya que la solicitud se pudo haber duplicado.
ONC RPC utiliza el termino como semántica de al menos un ves para describir la
ejecucion de un procedimiento remoto cuando el invocador recibe un respuesta. La
semántica de cero o más veces para describir el comportamiento de una invocación
cuando el servidor no encuentra al cliente.
La semántica de cero o más veces impone una responsabilidad importante a los
programadores. Que deben utilizar UDP como protocolo de transporte
4.4 ACCESO A SISTEMAS DE ARCHIVOS
Los sistemas de archivos o ficheros (en inglés:filesystem), estructuran la
información guardada en una unidad de almacenamiento (normalmente un disco
duro de una computadora), que luego será representada ya sea textual o
gráficamente utilizando un gestor de archivos. La mayoría de los sistemas
operativos manejan su propio sistema de archivos.
Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el
acceso a los datos como una cadena de bloques de un mismo tamaño, a veces
llamados sectores, usualmente de 512 bytes de longitud (También denominados
clústers). El software del sistema de archivos es responsable de la organización de
estos sectores en archivos y directorios y mantiene un registro de qué sectores
pertenecen a qué archivos y cuáles no han sido utilizados. En la práctica, un sistema
de archivos también puede ser utilizado para acceder a datos generados
dinámicamente, como los recibidos a través de una conexión de red (sin la
intervención de un dispositivo de almacenamiento).
Los sistemas de archivos tradicionales proveen métodos para crear, mover,
renombrar y eliminar tanto archivos como directorios, pero carecen de métodos para
crear, por ejemplo, enlaces adicionales a un directorio o archivo (enlace duro en
Unix) o renombrar enlaces padres (".." en Unix).
El acceso seguro a sistemas de archivos básicos puede estar basado en los
esquemas de lista de control de acceso o capacidades. Las listas de control de
acceso hace décadas que demostraron ser inseguras, por lo que los sistemas
operativos experimentales utilizan el acceso por capacidades. Los sistemas
operativos comerciales aún funcionan con listas de control de acceso.
La estructura de directorios suele ser jerárquica, ramificada o "en árbol", aunque
en algún caso podría ser plana. En algunos sistemas de archivos los nombres de
archivos son estructurados, con sintaxis especiales para extensiones de archivos y
números de versión. En otros, los nombres de archivos son simplemente cadenas
de texto y los metadatos de cada archivo son alojados separadamente.
En los sistemas de archivos jerárquicos, usualmente, se declara la ubicación precisa
de un archivo con una cadena de texto llamada "ruta" —o path en inglés—. La
nomenclatura para rutas varía ligeramente de sistema en sistema, pero mantienen
por lo general una misma estructura. Una ruta viene dada por una sucesión de
nombres de directorios y subdirectorios, ordenados jerárquicamente de izquierda a
derecha y separados por algún carácter especial que suele ser una diagonal ('/') o
diagonal invertida ('\') y puede terminar en el nombre de un archivo presente en la
última rama de directorios especificada
Los sistemas de archivos o ficheros estructuran la información guardada en una
unidad de almacenamiento (normalmente un disco duro de una computadora), que
luego será representada ya sea textal o gráficamente utilizando un gestos de
archivos. La mayoría de los sistemas operativos manejan sus propios sistemas de
archivos.
4.4.1 ACCESO A FORMATOS DE DISCO (FAT-16/FAT-
32/VFAT/NTFS/XTS/EXTFS)
Sistema de archivos FAT16
El primer sistema de archivos en ser utilizado en un sistema operativo de Microsoft
fue el sistema FAT, que utiliza una tabla de asignación de archivos. La tabla de
asignación de archivos es en realidad un índice que crea una lista de contenidos del
disco para grabar la ubicación de los archivos que éste posee. Ya que los bloques
que conforman un archivo no siempre se almacenan en el disco en forma contigua
(un fenómeno llamado fragmentación), la tabla de asignación permite que se
mantenga la estructura del sistema de archivos mediante la creación de vínculos a
los bloques que conforman el archivo. El sistema FAT es un sistema de 16 bits que
permite la identificación de archivos por un nombre de hasta 8 caracteres y tres
extensiones de caracteres. Es por esto que el sistema se denomina FAT16.
Para mejorar esto, la versión original de Windows 95 (que usa el sistema FAT16) se
lanzó al mercado con una administración FAT mejorada en la forma del
sistema VFAT (Virtual FAT [FAT Virtual]). VFAT es un sistema de 32 bits que permite
nombres de archivos de hasta 255 caracteres de longitud. Sin embargo, los
programadores tenían que asegurar una compatibilidad directa para que los
entornos (DOS) de 16 bits aún pudieran acceder a estos archivos. Por ende, la
solución fue asignar un nombre para cada sistema. Por esta razón se pueden usar
nombres extensos de archivos en Windows 95 y, aun así, acceder a ellos en DOS.
El sistema de archivos FAT es un sistema de 16 bits. Esto implica que las
direcciones de clúster no pueden ser mayores a 16 bits. El número máximo de
clústers al que se puede hacer referencia con el sistema FAT es, por consiguiente,
216 (65536) clústers. Ahora bien, ya que un clúster se compone de un número fijo
(4, 8, 16,32,...) de sectores de 512 bytes contiguos, el tamaño máximo de la partición
FAT se puede determinar multiplicando el número de clústers por el tamaño de un
clúster. Con clústers de 32Kb, el tamaño máximo de una partición es, por lo tanto,
de 2GB.
Además, un archivo sólo puede ocupar un número integral de clústers. Esto significa
que si un archivo ocupa varios clústers, el último solamente estará ocupado en
forma parcial y no se podrá utilizar el espacio disponible. Como resultado, cuanto
menor sea el tamaño del clúster, menor será el espacio desperdiciado. Se estima
que un archivo desecha un promedio de medio clúster, lo cual significa que en una
partición de 2 GB, se perderán 16KB por archivo.
Sistema de archivos FAT3
Aunque el VFAT era un sistema inteligente, no afrontaba las limitaciones de FAT16.
Como resultado, surgió un nuevo sistema de archivos en Windows 95 OSR2 (el cual
no sólo contaba con una mejor administración FAT como fue el caso de VFAT). Este
sistema de archivos, denominado FAT32 utiliza valores de 32 bits para las entradas
FAT. De hecho, sólo se utilizan 28 bits, ya que 4 bits se reservan para su uso en el
futuro.
Cuando surgió el sistema de archivos FAT32, el máximo número de clústers por
partición aumentó de 65535 a 268.435.455 (228-1). Por lo tanto, FAT32 permite
particiones mucho más grandes (hasta 8 terabytes). Aunque en teoría, el tamaño
máximo de una partición FAT32 es de 8 TB, Microsoft lo redujo, voluntariamente, a
32 GB en los sistemas 9x de Windows para promover NTFS
(ref.:http://support.microsoft.com/default.aspx?scid=kb;en;184006). Ya que una
partición FAT32 puede contener muchos clústers más que una partición FAT16, es
posible reducir significativamente el tamaño de los clústers y, así, limitar también el
espacio desperdiciado del disco. Por ejemplo, con una partición de 2 GB, es posible
usar clústers de 4KB con sistemas FAT32 (en lugar de clústers de 32KB con
sistemas FAT16), que reducen el espacio desperdiciado por un factor de 8.
El intercambio radica en que FAT32 no es compatible con las versiones de Windows
previas al OEM Service Release 2. Un sistema que arranque con una versión
anterior simplemente no verá este tipo de particiones.
Asimismo, las utilidades de administración de un disco de 16 bits, como ser
versiones antiguas de Norton Utilities, ya no funcionarán correctamente. En
términos de realización, el uso de un sistema FAT32 en lugar de un sistema FAT16
tendrá como resultado una leve mejora, de aproximadamente 5%, en el rendimiento.
Sistema de archivos NTFS
NTFS (del inglés New Technology File System) es un sistema de
archivos de Windows NT incluido en las versiones de Windows 2000, Windows
XP, Windows Server 2003, Windows Server 2008, Windows Vista y Windows 7. Está
basado en el sistema de archivos HPFS de IBM/Microsoft usado en el sistema
operativoOS/2, y también tiene ciertas influencias del formato de
archivos HFS diseñado por Apple.
NTFS permite definir el tamaño del clúster, a partir de 512 bytes (tamaño mínimo de
un sector) de forma independiente al tamaño de la partición.
Es un sistema adecuado para las particiones de gran tamaño requeridas en
estaciones de trabajo de alto rendimiento y servidores puede manejar volúmenes
de, teóricamente, hasta 2–1 clústeres. En la práctica, el máximo volumen NTFS
soportado es de 2–1 clústeres (aproximadamente 16 TiB usando clústeres de 4KiB).
Su principal inconveniente es que necesita para sí mismo una buena cantidad de
espacio en disco duro, por lo que no es recomendable su uso en discos con menos
de 400 MiB libres.
Sistema de archivos XFS
XFS es un sistema de archivos de 64 bits con journaling de alto rendimiento creado
por SGI (antiguamente Silicon Graphics Inc.) para su implementación
de UNIXllamada IRIX. En mayo de 2000, SGI liberó XFS bajo una licencia de código
abierto.
XFS se incorporó a Linux a partir de la versión 2.4.25, cuando Marcelo
Tosatti (responsable de la rama 2.4) lo consideró lo suficientemente estable para
incorporarlo en la rama principal de desarrollo del kernel. Los programas de
instalación de las distribuciones de SuSE, Gentoo, Mandriva, Slackware, Fedora
Core, Ubuntu y Debian ofrecen XFS como un sistema de archivos más.
En FreeBSD el soporte para solo-lectura de XFS se añadió a partir de diciembre de
2005 y en junio de 2006 un soporte experimental de escritura fue incorporado a
FreeBSD-7.0-CURRENT.
4.4.2 HERRAMIENTAS PARA EL ACCESO A FORMATOS DE DISCO
Durante la operación de formato de bajo nivel se establecen las pistas y los sectores
de cada plato. La estructura es la siguiente:
Pistas, varios miles de círculos concéntricos por cada plato del disco duro
que pueden organizarse verticalmente en cilindros.
Sector, varios cientos por pista. El tamaño individual suele ser de 512 bytes.
Preámbulo, que contiene bits que indican el principio del sector y a
continuación el número de cilindro y sector.
Datos.
ECC, que contiene información de recuperación para errores de lectura. Este
campo es variable y dependerá del fabricante.
Particion de disco
Una partición de disco, en informática, es el nombre genérico que recibe cada
división presente en una sola unidad física de almacenamiento de datos. Toda
partición tiene su propio sistema de archivos.
A toda partición se le da formato mediante un sistema de archivos como FAT, NTFS,
FAT32, ReiserFS, Reiser4 u otro. En Windows, las particiones reconocidas son
identificadas con una letra seguida por un signo de doble punto (p.ej. C:\) hasta
cuatro particiones primarias; prácticamente todo tipo de discos magnéticos y
memorias flash (como pendrives) pueden particionarse. Sin embargo, para tener la
posibilidad de más particiones en un solo disco, se utilizan las particiones
extendidas, las cuales pueden contener un número ilimitado de particiones lógicas
en su interior. Para este último tipo de particiones, no es recomendado su uso para
instalar ciertos sistemas operativos, sino que son más útiles para guardar
documentos o ejecutables no indispensables para el sistema. Los discos ópticos
(DVD, CD) utilizan otro tipo de particiones llamada UDF (Universal Disc Format)
Formato de Disco Universal por sus siglas en inglés. El cual permite agregar
archivos y carpetas y es por ello que es usado por la mayoría de software de
escritura por paquetes, conocidos como programas de grabación de unidades
ópticas. Este sistema de archivos es obligatorio en las unidades de (DVD) pero
también se admiten en algúnos (CD).
El formato o sistema de archivos de las particiones (p. ej. NTFS) no debe ser
confundido con el tipo de partición (p. ej. partición primaria), ya que en realidad no
tienen directamente mucho que ver. Independientemente del sistema de archivos
de una partición (FAT, ext3, NTFS, etc.), existen 3 tipos diferentes de particiones:
Partición primaria: Son las divisiones crudas o primarias del disco, solo puede haber
4 de éstas o 3 primarias y una extendida. Depende de una tabla de particiones. Un
disco físico completamente formateado consiste, en realidad, de una partición
primaria que ocupa todo el espacio del disco y posee un sistema de archivos. A este
tipo de particiones, prácticamente cualquier sistema operativo puede detectarlas y
asignarles una unidad, siempre y cuando el sistema operativo reconozca su formato
(sistema de archivos).
Partición extendida: También conocida como partición secundaria es otro tipo de
partición que actúa como una partición primaria; sirve para contener infinidad de
unidades lógicas en su interior. Fue ideada para romper la limitación de 4 particiones
primarias en un solo disco físico. Solo puede existir una partición de este tipo por
disco, y solo sirve para contener particiones lógicas. Por lo tanto, es el único tipo de
partición que no soporta un sistema de archivos directamente.
Partición lógica: Ocupa una porción de la partición extendida o la totalidad de la
misma, la cual se ha formateado con un tipo específico de sistema de archivos
(FAT32, NTFS, ext2,...) y se le ha asignado una unidad, así el sistema operativo
reconoce las particiones lógicas o su sistema de archivos. Puede haber un máximo
de 23 particiones lógicas en una partición extendida. Linux impone un máximo de
15, incluyendo las 4 primarias, en discos SCSI y en discos IDE 8963.
4.5 EMULACIÓN DEL SISTEMA OPERATIVO
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.
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)
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").
4.5.1 EJECUCIÓN DE BINARIOS DE OTROS SISTEMAS OPERATIVOS
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.
Programa ejecutable para similar a un módulo objeto, que es un fichero binario
producido por el compilador cuyo contenido es el código objeto o código máquina.
El sistema binario, en matemáticas e informática, es un sistema de numeración en
el que los números se representan utilizando solamente las cifras cero y uno (0 y
1). Es el que se utiliza en las computadoras, debido a que trabajan internamente
con dos niveles de voltaje, por lo cual su sistema de numeración natural es el
sistema binario (encendido 1, apagado 0).
Un número binario puede ser representado por cualquier secuencia de bits (dígitos
binarios), que suelen representar cualquier mecanismo capaz de estar en dos
estados mutuamente excluyentes. Las siguientes secuencias de símbolos podrían
ser interpretadas como el mismo valor numérico binario:
1 0 1 0 0 1 1 0 1 0
| - | - - | | - | -
x o x o x o x o
y n y n n y y n y n
Decimal a binario
Se divide el número del sistema decimal entre 2, cuyo resultado entero se vuelve a
dividir entre 2, y así sucesivamente hasta que el dividendo sea menor que el
divisor, 2. Es decir, cuando el número a dividir sea 1 finaliza la división.
A continuación se ordenan los restos empezando desde el último al primero,
simplemente se colocan en orden inverso a como aparecen en la división, se les
da la vuelta. Éste será el número binario que buscamos.
Ejemplo
Transformar el número decimal 131 en binario. El método es muy simple:
131 dividido entre 2 da 65 y el resto es igual a 1
65 dividido entre 2 da 32 y el resto es igual a 1
32 dividido entre 2 da 16 y el resto es igual a 0
16 dividido entre 2 da 8 y el resto es igual a 0
8 dividido entre 2 da 4 y el resto es igual a 0
4 dividido entre 2 da 2 y el resto es igual a 0
2 dividido entre 2 da 1 y el resto es igual a 0
1 dividido entre 2 da 0 y el resto es igual a 1
-> Ordenamos los restos, del último al primero: 10000011
Decimal (con decimales) a binario
Para transformar un número del sistema decimal al sistema binario:
1. Se transforma la parte entera a binario. (Si la parte entera es 0 en binario será
0, si la parte entera es 1 en binario será 1, si la parte entera es 5 en binario será
101 y así sucesivamente).
2. Se sigue con la parte fraccionaria, multiplicando cada número por 2. Si el
resultado obtenido es mayor o igual a 1 se anota como un uno (1) binario. Si es
menor que 1 se anota como un 0 binario. (Por ejemplo, al multiplicar 0.6 por 2
obtenemos como resultado 1.2 lo cual indica que nuestro resultado es un uno (1)
en binario, solo se toma la parte entera del resultado).
3. Después de realizar cada multiplicación, se colocan los números obtenidos en
el orden de su obtención.
4. Algunos números se transforman en dígitos periódicos, por ejemplo: el 0.1.
Ejemplo
0,1 (decimal) => 0,0 0011 0011 ... (binario).
Proceso:
0,1 · 2 = 0,2 ==> 0
0,2 · 2 = 0,4 ==> 0
0,4 · 2 = 0,8 ==> 0
0,8 · 2 = 1,6 ==> 1
0,6 · 2 = 1,2 ==> 1
0,2 · 2 = 0,4 ==> 0 <--se repiten las cuatro cifras, periódicamente
0,4 · 2 = 0,8 ==> 0 <-
0,8 · 2 = 1,6 ==> 1 <-
0,6 · 2 = 1,2 ==> 1 <- ...
En orden: 0 0011 0011... => 0,0 0011 0011 ... (binario periódico)
Binario a decimal
Para realizar la conversión de binario a decimal, realice lo siguiente:
1. Inicie por el lado derecho del número en binario, cada cifra multiplíquela por 2
elevado a la potencia consecutiva (comenzando por la potencia 0, 20).
2. Después de realizar cada una de las multiplicaciones, sume todas y el número
resultante será el equivalente al sistema decimal.
Binario a decimal (con parte fraccionaria binaria)
1. Inicie por el lado izquierdo (la primera cifra a la derecha de la coma), cada
número multiplíquelo por 2 elevado a la potencia consecutiva a la inversa
(comenzando por la potencia -1, 2-1).
2. Después de realizar cada una de las multiplicaciones, sume todas y el número
resultante será el equivalente al sistema decimal.
Ejemplos
§ 0,101001 (binario) = 0,640625(decimal). Proceso:
§ 1 · 2 elevado a -1 = 0,5
§ 0 · 2 elevado a -2 = 0
§ 1 · 2 elevado a -3 = 0,125
§ 0 · 2 elevado a -4 = 0
§ 0 · 2 elevado a -5 = 0
§ 1 · 2 elevado a -6 = 0,015625
§ La suma es: 0,640625
4.5.2 HERRAMIENTAS PARA LA EJECUCIÓN DE BINARIOS
Los productos de software siguientes son capaces de virtualizar el hardware de
modo que varios sistemas operativos puedan compartirlo.
Adeos es una Capa de Abstracción de Hardware que puede ser cargado
como un módulo del núcleo Linux. Esto permite la carga de un núcleo en
tiempo real como módulo, al mismo tiempo que se ejecuta Linux, pero con
una prioridad más alta.
Denali utiliza la para virtualización para proporcionar máquinas virtuales de
alto rendimiento sobre procesadores x86.
OKL4 utiliza el software libre L4 (micronúcleo) como un hypervisor para
proporcionar una solución de virtualización de alto rendimiento para sistemas
embebidos.
OpenVZ para Linux
Parallels
QEMU puede emular una variedad de arquitecturas de CPU sobre muchas
plataformas distintas.
Virtual Iron
Virtuozzo
VMware
Xen
KVM
Una herramienta para la ejecución de binarios es el QUEMU, que un emulador de
procesadores basado en la traducción dinámica de binarios (conversión del código
binario de la arquitectura fuente en código entendible por la arquitectura huésped).
QEMU también tiene capacidades de virtualización dentro de un sistema
operativo, ya sea GNU/Linux, Windows, o cualquiera de los sistemas operativos
admitidos, (de hecho es la forma más común de uso). Esta máquina virtual puede
ejecutarse en cualquier tipo de Microprocesador o arquitectura (x86, x86-64,
PowerPC, MIPS, SPARC, etc.). Está licenciado en parte con la LGPL y la GPL de
GNU. El objetivo principal es emular un sistema operativo dentro de otro sin tener
que reparticionar el disco duro, empleando para su ubicación cualquier directorio
dentro de éste.
Binario - decimal convertidor
Binario - Decimal Converter es una herramienta online que utiliza para diversas
aplicaciones en electrónica digital para realizar binario a decimal conversión y
decimal conversión binario. En computación digital, los números binarios son los
códigos numéricos para representar los números decimales. Considerando que los
números decimales son los números utilizados en los cálculos aritméticos y que
puede ser fácilmente comprensible por los seres humanos. Números binarios
estrictamente se utilizan en circuitos digitales para realizar la aritmética y otras
operaciones. Por lo tanto, ser muy importante para realizar el análisis de la
operación en electrónica digital binario a decimal y decimal a binarias
conversiones. Esta calculadora comprende dos convertidores a saber binarios a
decimal convertidor y decimales para convertidor binario y estos dos convertidores
han sido separados por el botón respectivo. Para realizar binario a decimal
conversión, seleccione un botón de opción adecuado, introduzca el binario de
entrada y haga clic en el botón Calcular producirá el número decimal equivalente.
Para realizar decimal conversión binario, seleccione un botón de opción adecuado,
introduzca el decimal entrada y haga clic en el botón Calcular producirá el número
binario equivalente
Bcd-To Decimal Converter
BCD a Decimal Converter es una herramienta online que utiliza para diversas
aplicaciones en computación digital para realizar 8-4-2-1 número binario BCD para
su número decimal equivalente y también realizar Decimal a 8-4-2-1 conversiones
BCD para el número de decimal especificado. El binario codificado decimal se
denomina como BCD en computación digital. En conversión BCD, cada dígito del
número decimal está representado por un grupo aparte de bits y este grupo aparte
de bits es unos códigos numéricos. Considerando que el número Decimal es el
sistema de numeración que es fácil entender por los seres humanos. En
electrónica digital decimal conversión número binario es importante porque los
circuitos digitales sólo funcionan basado en los números binarios. Esta calculadora
es consta de dos convertidores a saber BCD Converter Decimal y Decimal BCD
Converter y es separados por el botón respectivo
Calculadora de División Binaria
Calculadora de división binaria es una herramienta en línea utilizada para diversas
aplicaciones en computación digital para realizar la división entre dos números
binarios. En circuitos digitales, operaciones aritméticas binarias son importantes
porque los circuitos digitales no se procesan números decimales; sólo obras
basadas en los números binarios. La lógica de la división binaria se utiliza en esta
calculadora de división binaria para realizar la división entre números binarios.
HEX CALCULADORA DE ADICION DE NUMEROS
Calculadora de adición de números hexadecimales es una herramienta en línea
para computación digital realizar la adición entre dos números hexadecimales.
Adición de números hexadecimales es una de las importantes operaciones
aritméticas en electrónica digital. Para realizar la adición entre dos números
hexadecimales, introduzca los números de dos en cada campo respectivo y, a
continuación, haga clic en el botón Calcular muestra la salida. También se muestra
el resultado de la adición decimal equivalente en el resultado para confirmar la
salida
Además hexadecimal pueden lograrse a través de reiteradas resta de 16 desde la
suma decimal del mismo lugar valores de números hexadecimales hasta que el
resultado se llega a uno de los dígitos hexadecimales de 0 a f él. El transporte
aumenta en donde cada vez se resta el número 16 del hex números decimal suma
1. El siguiente ejemplo permite que entienda cómo realizar la adición de números
hexadecimales
Ejemplo: Realizar la adición entre dos números hexadecimales (8 A 5 C) 16 y (F 3
9 A) 16
4.6 VIRTUALIZACION
En Informática, virtualización es la creación -a través de software- de una versión
virtual de algún recurso tecnológico, como puede ser una plataforma de hardware,
un sistema operativo, un dispositivo de almacenamiento u otros recursos de
red. En los ámbitos de habla inglesa, este término se suele conocer por el
numerónimo "v11n".
Dicho de otra manera, se refiere a la abstracción de los recursos de
una computadora, llamada Hypervisor o VMM (Virtual Machine Monitor) que crea
una capa de abstracción entre el hardware de la máquina física (host) y el sistema
operativo de la máquina virtual (virtual machine, guest), dividiéndose el recurso en
uno o más entornos de ejecución.
Esta capa de software (VMM) maneja, gestiona y arbitra los cuatro recursos
principales de una computadora (CPU, Memoria, Almacenamiento y Conexiones de
Red) y así podrá repartir dinámicamente dichos recursos entre todas las máquinas
virtuales definidas en el computador central. Esto hace que se puedan tener varios
ordenadores virtuales ejecutándose en el mismo ordenador físico.
Tal término es antiguo; se viene usando desde 1960, y ha sido aplicado a diferentes
aspectos y ámbitos de la informática, desde sistemas computacionales completos,
hasta capacidades o componentes individuales.
La virtualización se encarga de crear una interfaz externa que encapsula una
implementación subyacente mediante la combinación de recursos en localizaciones
físicas diferentes, o por medio de la simplificación del sistema de control. Un
avanzado desarrollo de nuevas plataformas y tecnologías de virtualización ha hecho
que en los últimos años se haya vuelto a prestar atención a este concepto.
La máquina virtual en general simula una plataforma de hardware autónoma
incluyendo un sistema operativo completo que se ejecuta como si estuviera
instalado. Típicamente varias máquinas virtuales operan en un computador central.
Para que el sistema operativo “guest” funcione, la simulación debe ser lo
suficientemente grande (siempre dependiendo del tipo de virtualización).
Existen diferentes formas de virtualización: es posible virtualizar el hardware de
servidor, el software de servidor, virtualizar sesiones de usuario, virtualizar
aplicaciones y también se pueden crear máquinas virtuales en una computadora de
escritorio.
Entre los principales proveedores de software que han desarrollado tecnologías de
virtualización integrales (que abarcan todas las instancias: servidor, aplicaciones,
escritorio) se encuentran, por ejemplo VMware y Microsoft. Estas compañías han
diseñado soluciones específicas para virtualización, como VMware Server
y Windows Server 2008 Hyper-V para la virtualización de servidores. Si bien la
virtualización no es un invento reciente, con la consolidación del modelo de
la Computación en la nube, la virtualización ha pasado a ser uno de los
componentes fundamentales, especialmente en lo que se denomina infraestructura
de nube privada.
Virtualización parcial
“Address Space Virtualization”. La máquina virtual simula múltiples instancias de
gran parte (pero no de todo) del entorno subyacente del hardware, particularmente
los espacios de direcciones. Tal entorno acepta compartir recursos y alojar
procesos, pero no permite instancias separadas de sistemas operativos
“huésped”. Aunque no es vista como dentro de la categoría de máquina virtual,
históricamente éste fue un importante acercamiento, y lo usaron en sistemas como
CTSS, el experimental IBM M44/44X, y podría mencionarse que en sistemas como
OS/VS1, OS/VS2 y MVS
Virtualización por S.O
Virtualizar significa instalar un sistema operativo dentro de otro al que se le llama
anfitrión (HOST), mediante el uso de una máquina virtual. Frecuentemente
denominada virtualización compartida del Sistema Operativo o virtualización del
SO, la virtualización del Sistema Operativo virtualiza servidores en la capa del
sistema operativo (kernel). Este método de virtualización crea particiones aisladas
o entornos virtuales (VEs) en un único servidor físico e instancia de SO para así
maximizar los esfuerzos de administración del hardware, software y centro de
datos. La Virtualización de Hypervisor tiene una capa base (generalmente un
kernel, Linux que se muestra aquí como un hypervisor o SO estándar, lo mismo
que Windows Server 2008 R2 Hyper-V) que se carga directamente en el servidor
base. Para asignar hardware y recursos a las máquinas virtuales (VMs), es
recomendable que todo el hardware del servidor esté virtualizado. La siguiente
capa superior muestra cada chip, placa, etc. que debe virtualizarse para que así
pueda ser asignado a las VMs. Una vez en la VM, hay un copia completa de un
sistema operativo y finalmente la aplicación o carga de trabajo.
La Virtualización de SO mejora el rendimiento, gestión y eficiencia. En la base
reside un sistema operativo anfitrión estándar, como en el caso de Parallels
Virtuozzo que incluye Windows y un sistema con núcleo Linux. A continuación
encontramos la capa de virtualización, con un sistema de archivos propietario y
una capa de abstracción de servicio de kernel que garantiza el aislamiento y
seguridad de los recursos entre distintos contenedores. La capa de virtualización
hace que cada uno de los contenedores aparezca como servidor autónomo.
Finalmente, el contenedor aloja la aplicación o carga de trabajo.
Diferencias entre virtualizar un Sistema operativo e instalarlo
Virtualizar el sistema operativo es una opción interesante si no queremos instalar
dos sistemas operativos en el mismo ordenador, pero si por el contrario lo que
hacemos es instalarlo, todos los sistemas operativos que tengamos instalados
funcionaran de la misma manera que si estuvieran instalados en distintos
ordenadores.
El único y pequeño inconveniente es que necesitamos un gestor de arranque que
al encender nuestro ordenador nos dé la opción de elegir qué sistema operativo
queremos utilizar, lo que conlleva que si por ejemplo estamos en Windows y
queremos cambiar a GNU/Linux deberíamos reiniciar nuestro ordenador. La
virtualización por el contrario permite cambiar de sistema operativo como si se
tratase de cualquier otro programa, sin embargo, esta agilidad tiene la desventaja
de que un sistema operativo virtualizado no es tan potente como uno que ya
estuviera instalado.
Retos de la Virtualización
Índices de utilización más altos como — Antes de la virtualización, los
índices de utilización del servidor y almacenamiento en los centros de datos
de la empresa rondaban menos del 50% (de hecho, del 10% al 15% de los
índices de utilización fueron los más comunes). A través de la virtualización,
las cargas de trabajo pueden ser encapsuladas y transferidas a los
sistemas inactivos o sin uso — lo cual significa que los sistemas existentes
pueden ser consolidados, así que las compras de capacidad adicional del
servidor pueden ser retrasadas o evitadas.
Consolidación de Recursos — La virtualización permite la consolidación de
múltiples recursos de TI. Más allá de la consolidación de almacenamiento,
la virtualización proporciona una oportunidad para consolidar la arquitectura
de sistemas, infraestructura de aplicación, datos y base de datos,
interfaces, redes, escritorios, e incluso procesos de negocios, resultando en
ahorros de costo y mayor eficiencia.
Uso/costo menor energía — La electricidad requerida para que funcionen
los centros de datos de clase empresarial ya no está disponible en
suministros ilimitados, y el costo está en una espiral ascendente. Por cada
dólar gastado en un servidor hardware, un dólar adicional es gastado en
energía (incluyendo el costo de los servidores en función y los enfriadores).
Utilizando virtualización para consolidar hace posible cortar el consumo
total de energía y ahorrar dinero de una manera significativa.
Ahorros de espacio — La extensión del servidor permanece como un serio
problema en la mayoría de los centros de datos empresariales, pero la
expansión del centro de datos no es siempre una opción, con los costos de
construcción promediando miles de dólares por pie cuadrado. La
virtualización puede aliviar la tensión mediante la consolidación de muchos
sistemas virtuales en menos sistemas físicos.
Recuperación de desastre/continuidad del negocio — La virtualización
puede incrementar la disponibilidad de los índices del nivel de servicio en
general y proporcionar nuevas opciones de soluciones para la recuperación
de desastre.
Costos de operación reducidos — La empresa promedio gasta $8 dólares
en mantenimiento por cada $1 dólar invertido en nueva infraestructura. La
virtualización puede cambiar el radio de servicio-a administración reducir la
carga total de trabajo administrativo, y cortar el total de costos de
operación.
Ventajas de la Virtualización
Reutilización de hardware existente (para utilizar software más moderno) y
optimizar el aprovechamiento de todos los recursos de hardware.6
Rápida incorporación de nuevos recursos para los servidores virtualizados.
Reducción de los costes de espacio y consumo necesario de forma
proporcional al índice de consolidación logrado (Estimación media 10:1).
Administración global centralizada y simplificada.
Nos permite gestionar nuestro CPD como un pool de recursos o agrupación
de toda la capacidad de procesamiento, memoria, red y almacenamiento
disponible en nuestra infraestructura
Mejora en los procesos de clonación y copia de sistemas: Mayor facilidad
para la creación de entornos de test que permiten poner en marcha nuevas
aplicaciones sin impactar a la producción, agilizando el proceso de las
pruebas.
Aislamiento: un fallo general de sistema de una máquina virtual no afecta al
resto de máquinas virtuales.
Mejora de TCO y ROI.
No sólo aporta el beneficio directo en la reducción del hardware necesario,
sino también los costes asociados.
Reduce los tiempos de parada.
Migración en caliente de máquinas virtuales (sin pérdida de servicio) de un
servidor físico a otro, eliminando la necesidad de paradas planificadas por
mantenimiento de los servidores físicos.
Balanceo dinámico de máquinas virtuales entre los servidores físicos que
componen el pool de recursos, garantizando que cada máquina virtual
ejecute en el servidor físico más adecuado y proporcionando un consumo
de recursos homogéneo y óptimo en toda la infraestructura.
Contribución al medio ambiente -Green IT- por menor consumo de energía
en servidores físicos.
Programas útiles para virtualizar sistemas operativos
Como todos conocemos existen dos tipos de programas: los que son de pago y
los que no. Dentro de los programas de pago encontramos el VMware, que es uno
de los referentes en el mercado, como así también Windows Server 2008 R2
Hyper-V [1] cuya función de virtualización está incluida sin cargo en la licencia del
servidor. Existe una versión más básica de VMWare que es gratuita, VMware
Player, que permite virtualizar a través de una máquina virtual ya configurada.
También existen webs que nos permiten rellenar un formulario y descargarnos
nuestra máquina virtual a nuestro gusto como EasyVMX! Parallels Virtuozzo
Containers, es otro de los programas de pago más famosos, que permite la
virtualización a nivel de sistema operativo o hardware Parallels Bare Metal.
Típicamente suele emplearse para virtualizar Windows y, en menor medida,
GNU/Linux. Dentro de los programas gratuitos tenemos el Virtual PC de Microsoft,
que es un producto de Windows, compatible con versiones avanzadas de XP,
Vista y Windows 7.
Dentro de los programas de código libre están el Xen, OpenVZ y VirtualBox, que
funcionan tanto en Mac OS, en Windows como en GNU/Linux y todos permiten
virtualizar los tres sistemas operativos más famosos.
Tipos de virtualización
La virtualización se puede hacer desde un sistema operativo Windows, ya sea XP,
Vista u otra versión que sea compatible con el programa que utilicemos, en el que
virtualizamos otro sistema operativo como Linux o viceversa, que tengamos
instalado Linux y queramos virtualizar una versión de Windows.
Virtualización asistida por Hardware
Virtualización asistida por Hardware son extensiones introducidas en la
arquitectura de procesador x86 para facilitar las tareas de virtualización al software
ejecutándose sobre el sistema. Si cuatro son los niveles de privilegio o anillos de
ejecución en esta arquitectura, desde el cero o de mayor privilegio, que se destina
a las operaciones del kernel de SO, al tres, con privilegios menores que es el
utilizado por los procesos de usuario, en esta nueva arquitectura se introduce un
anillo interior o ring -1 que será el que un hypervisor o Virtual Machine Monitor
usará para aislar todas las capas superiores de software de las operaciones de
virtualización.
La virtualización de almacenamiento
Se refiere al proceso de abstraer el almacenamiento lógico del almacenamiento
físico, y es comúnmente usado en SANs ("Storage Area Network" Red de área de
almacenamiento). Los recursos de almacenamiento físicos son agregados al
"storage pool" (almacén de almacenamiento), del cual es creado el
almacenamiento lógico.
Particionamiento
Es la división de un solo recurso (casi siempre grande), como el espacio de disco
o el ancho de banda de la red, en un número más pequeño y con recursos del
mismo tipo que son más fáciles de utilizar. Esto es muchas veces llamado
“zoning”, especialmente en almacenamiento de red.
Máquina virtual
La entenderemos básicamente como un sistema de virtualización, denominado
"virtualización de servidores", que dependiendo de la función que esta deba de
desempeñar en la organización, todas ellas dependen del hardware y dispositivos
físicos, pero casi siempre trabajan como modelos totalmente independientes de
este. Cada una de ellas con sus propias CPUs virtuales, tarjetas de red, discos
etc. Lo cual podría especificarse como una compartición de recursos locales
físicos entre varios dispositivos virtuales.
Hypervisor de almacenamiento
Es un pack portátil de gestión centralizada, utilizado para mejorar el valor
combinado de los sistemas de disco de almacenamiento múltiples, incluyendo los
modelos diferentes e incompatibles, complementando sus capacidades
individuales con el aprovisionamiento extendido, la réplica y la aceleración del
rendimiento del servicio. Su completo conjunto de funciones de control y
monitorización del almacenamiento, operan como una capa virtual trasparente
entre los pools de disco consolidados para mejorar su disponibilidad, velocidad y
utilización.
Virtualización relacionada con el Green IT
En estudios realizados8 se han basado sobre el ahorro de energía que genera la
empresa para sus clientes, muestra que las soluciones de virtualización reducen
los costos económicos y emisiones de CO2.
Esto se puede llevar a cabo fusionando varias máquinas en un solo servidor, con
lo que disminuyendo el consumo energético y los costos; ahorrando 7.000
kilovatios hora o cuatro toneladas de emisiones de CO2 al año. Los PCs
virtualizados pueden reducir el consumo de energía y los costos en un 35 por
ciento. Hoy en día, la mayor parte consumen entre un 70 y un 80% de su energía
estimada. Otra medida es la desconexión de los servidores y desktops durante los
períodos de inactividad, como por la noche o los fines de semana, con lo que se
puede ahorrar aproximadamente un 25 por ciento en su consumo energético. Las
empresas hoy en día son las más interesadas en el tema de la virtualización, ya
que para ellas es muy importante reducir costos y energía principalmente.
Infraestructura Virtual
Una infraestructura virtual consiste en el mapping dinámico de recursos físicos en
función de las necesidades de la empresa. Una máquina virtual representa los
recursos físicos de un único ordenador, mientras que una infraestructura virtual
representa los recursos físicos de la totalidad del entorno de TI, aglutinando
ordenadores x86, así como su red y almacenamiento asociados, en un pool
unificado de recursos de TI.
Estructuralmente, una infraestructura virtual consta de los siguientes
componentes:
Hipervisor de un solo nodo para hacer posible la virtualización de todos los
ordenadores x86.
Un conjunto de servicios de infraestructura de sistemas distribuida basada
en la virtualización, como gestión de recursos, para optimizar los recursos
disponibles entre las máquinas virtuales.
Soluciones de automatización que proporcionen capacidades especiales
para optimizar un proceso de TI concreto, como provisioning o recuperación
ante desastres. Mediante la separación de la totalidad del entorno de
software de su infraestructura de hardware subyacente, la virtualización
hace posible la reunión de varios servidores, estructuras de
almacenamiento y redes en pools compartidos de recursos que se pueden
asignar de forma dinámica, segura y fiable a las aplicaciones según sea
necesario. Este enfoque innovador permite a las organizaciones crear una
infraestructura informática con altos niveles de utilización, disponibilidad,
automatización y flexibilidad utilizando componentes básicos de servidores
económicos y estándar del sector.
Ventajas de la Infraestructura Virtual
Las soluciones de infraestructura virtual son ideales para entornos de producción
en parte debido a que se ejecutan en servidores y escritorios estándar de la
industria y son compatibles con una amplia gama de sistemas operativos y
entornos de aplicación, así como de infraestructuras de red y almacenamiento. Se
han diseñado las soluciones para que funcionen de manera independiente del
hardware y del sistema operativo y poder brindar a los clientes amplias
posibilidades de elección de plataforma. Como resultado, son soluciones que
proporcionan un punto de integración clave para los proveedores de hardware y
gestión de infraestructuras de cara a ofrecer un valor único y aplicable por igual en
todos los entornos de aplicación y sistemas operativos.
Las empresas que han adoptado estas soluciones de infraestructura virtual nos
han comunicado unos clarísimos resultados positivos, entre ellos:
Índices de utilización del 60 al 80% para servidores x86 (frente al 5 a 15%
en hardware no virtualizado)
Capacidad para el provisioning de nuevas aplicaciones en cuestión de
minutos, en lugar de días o semanas
85% de mejora en tiempo de recuperación de paradas imprevistas
4.6.1 EMULACIÓN DE HARDWARE
La virtualización de hardware es una técnica utilizada desde la década del 60, pero
recientemente ha tomado nuevo impulso, en virtud de los últimos avances de los
procesadores de Intel y AMD y también de la evolución de varias herramientas de
software, muchas de ellas libres.
En este artículo analizaremos brevemente los conceptos principales relacionados
con la virtualización de hardware, incluyendo las diversas alternativas existentes.
¿Qué es la virtualización?
El objetivo de la virtualización es la simulación de varias computadoras lógicas, a
partir de una computadora real. Para ello existen varias técnicas, que van desde la
virtualización del hardware (CPU, memoria y dispositivos) hasta la separación de
los procesos utilizando un único kernel.
La virtualización nos permite, entre otras cosas:
Alojar varios servidores en una única computadora física. Esto nos permite
optimizar el uso de recursos (CPU, memoria, almacenamiento).
Simplificar la realización de copias de respaldo (backup) y su
restablecimiento. Todo un servidor virtual puede ser un único archivo.
Migrar fácilmente servidores entre distintas computadoras.
Incrementar la seguridad, utilizando servidores aislados para tareas
diferentes.
A través de la virtualización podemos, por ejemplo, utilizar servidores virtuales para
cada servicio que deseemos implementar en nuestra red, independientemente del
hardware disponible. Estos servidores pueden ser administrados por personas
distintas. Más adelante, al aumentar las necesidades, pueden añadirse nuevos
servidores físicos y migrar los servidores virtuales existentes con un costo mínimo.
La virtualización consiste emular el hardware mediante una aplicación llamada
"hypervisor", de tal forma que permita ejecutar uno o varios sistemas operativos,
es decir, desvincular la ejecución del sistema operativo y aplicaciones del
hardware para encapsularlo dentro de un entorno virtual simulado por software. La
virtualización empaqueta el hardware, sistema operativo, aplicaciones y datos de
las máquinas virtuales en ficheros, que como tales son trasportables de una
máquina física a otra. La virtualización es aplicable tanto a servidores como a
equipos de escritorio
Es el proceso de imitar el comportamiento de una o más piezas de hardware
(normalmente un sistema en fase de diseño) con otra pieza de hardware, por lo
general un sistema especial de emulación de propósito. El modelo de emulación
se basa generalmente en RTL (por ejemplo Verilog código fuente), que se compila
en el formato utilizado por el sistema de emulación. El objetivo es normalmente la
depuración y la verificación funcional del sistema diseñado se. A menudo, un
emulador es lo suficientemente rápido para ser conectado a un sistema objetivo de
trabajar en lugar de un chip sin embargo-a-ser-construido, por lo que todo el
sistema se puede depurar con datos en vivo.
A veces la emulación de hardware pueden ser confundidos con los dispositivos de
hardware tales como tarjetas de expansión con los procesadores de hardware que
ayudan a las funciones de emulación de software, tales como mayores tarjetas hija
con chips x86 para permitir que los sistemas operativos x86 para correr en las
placas de diferentes familias de procesadores.
Los tipos de Emulación son:
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.
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.
Virtualización a nivel de sistema operativo:
Esta técnica consiste en dividir una computadora en varios compartimentos
independientes de manera que en cada compartimento podamos instalar un
servidor. A estos compartimentos se los llama "entornos virtuales". Desde el punto
de vista del usuario, el sistema en su conjunto actúa como si realmente existiesen
varios servidores ejecutándose en varias máquinas distintas. Dos ejemplos son las
zonas de Solaris (Solaris Zones) y la técnica de Micro Partioning de AIX.
4.6.2 HERRAMIENTAS PARA LA EMULACIÓN DE HARDWARE
Virtualización asistida por Hardware son extensiones introducidas en la
arquitectura de procesador x86 para facilitar las tareas de virtualización al software
ejecutándose sobre el sistema. Si cuatro son los niveles de privilegio o "anillos" de
ejecución en esta arquitectura, desde el cero o de mayor privilegio, que se destina
a las operaciones del kernel de SO, al tres, con privilegios menores que es el
utilizado por los procesos de usuario, en esta nueva arquitectura se introduce un
anillo interior o ring -1 que será el que un hypervisor o Virtual Machine Monitor
usará para aislar todas las capas superiores de software de las operaciones de
virtualización.
AMD-V (anteriormente llamado Pacifica)
ARM TrustZone
Boston Circuits gCore (grid-on-chip) con núcleos 16 ARC 750D y módulo de
virtualización de hardware Time-machine.
Freescale PowerPC MPC8572 y MPC8641D
IBM System/370, System/390 y mainframes ZSeries
Intel VT (anteriormente llamado Vanderpool)
SPARC de Sun Microsystems
La emulación hardware simula cada instrucción del procesador como si de otro
hardware se tratara. Para implementar este tipo de virtualización se sigue el
siguiente esquema:
Emulación hardware que siguen Bochs y Qemu
En este tipo de virtualización, la máquina virtual (MV) es empleada para emular un
determinado tipo de hardware. De tal modo que, como cada instrucción debe ser
simulada por el hardware subyacente, es un sistema lento con respecto a los otros
tipos de virtualización. Aun así, este tipo de virtualización está muy extendida entre
los desarrolladores de firmware para hardware que todavía no ha sido fabricado, o
que está en fase experimental. A continuación veremos Bochs y Qemu, dos
soluciones de virtualización-emulación:
Bochs
Bochs es un sistema de emulación bajo licencia LGPL y que es capaz de simular
diferentes arquitecturas, todo ello mediante el hardware subyacente.
Así pues, se puede simular un ordenador x86 que es portable entre varias
plataformas: x86, PowerPC, Alpha, SPARC y MIPS. Bochs es un sistema de
virtualización en el que se simula el ordenador completo: procesador, periféricos,
tarjetas gráficas, adaptadores de red… Permite la creación (mediante emulación)
de cualquier arquitectura, y la ejecución de múltiples sistemas operativos sobre
Linux (Windows 95/98/NT/2000, FreeBSD, OpenBSD,…)
Es un sistema muy poco extendido principalmente porque carece de una interfaz
gráfica muy amigable y sencilla, como ofrecen el resto de herramientas de
virtualización.
Qemu
Qemu es una opción de virtualización que ofrece dos modos de operación: modo
de emulación de sistema completo y modo de emulación de usuario.
El primer modo es similar a Bochs ya que emula un ordenador completo
(procesador, sistemas de almacenamiento y periféricos) y puede emular
arquitecturas como x86, x86-64, ARM, SPARC, PowerPC y MIPS. De esta forma
se puede emular Windows y Linux, sobre un sistema Linux, Solaris y FreeBSD.
El segundo modo solamente se puede alojar en Linux, y nos permite ejecutar
binarios para arquitecturas MIPS, ARM, SPARC, PowerPC, u otras en desarrollo,
sobre un Linux instalado en una arquitectura x86.
Al igual que Bochs, Qemu tampoco tiene una interfaz muy amigable con lo que su
uso no está muy extendido. Hay que reseñar que Qemu fue la base sobre la que
luego se desarrollaron otras tecnologías de virtualización, como por ejemplo Xen,
de la que hablaremos más adelante.
VIRTUALBOX.
Sun xVM VirtualBox es un software de virtualización para arquitecturas x86 que
fue desarrollado originalmente por la empresa alemana Innotek GmbH, pero que
pasó a ser propiedad de la empresa Sun Microsystems en febrero de 2008 cuando
ésta compró a innotek. 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.
Por ejemplo, se podrían instalar diferentes distribuciones de Linux en un
VirtualBox instalado en Windows XP o viceversa.
En cuanto a la emulación de hardware, los discos duros de los sistemas invitados
son almacenados en los sistemas anfitriones como archivos individuales en un
contenedor llamado Virtual Disk Image, incompatible con los demás software de
virtualización.
VIRTUAL PC
Virtual PC es un programa desarrollado por Connectix y comprado por Microsoft
para crear ordenadores virtuales. Es decir, su función es emular un hardware
sobre el que funcionen varios sistemas operativos. Con esto se puede conseguir
ejecutar varios sistemas operativos en la misma máquina a la vez y hacer que se
comuniquen entre ellos. La versión 2007 se encuentra disponible de forma
gratuita.
4.6.3 Creación de la máquina virtual
Para instalar una máquina virtual "Windows 7 Enterprise" a partir de la imagen ISO
de dicho sistema operativo descargada anteriormente, lo primero que hemos de
hacer es cargar "VirtualBox" haciendo doble clic sobre el icono correspondiente a
dicha aplicación situada en el Escritorio de nuestro equipo.
Como resultado de la acción anterior accederemos a la ventana principal de la
aplicación "VirtualBox", en la cual pulsaremos directamente sobre el botón "Nueva"
para proceder a la creación de una nueva máquina virtual Windows 7 Enterprise,
tal y como es nuestro deseo.
En ese instante pasará a ser ejecutado el asistente de creación de nueva máquina
virtual, en cuya primera ventana se da la bienvenida al asistente de creación de
una nueva máquina virtual, y en la que pulsaremos directamente sobre el botón
"Next".
En la siguiente ventana, podremos seleccionar el sistema operativo que va a ser
instalado en nuestra máquina virtual, dándonos a elegir en los desplegables
correspondientes entre una extensa lista de sistemas operativos; en nuestro caso
seleccionaremos "Microsoft Windows" en el desplegable "Sistema Operativo", y
posteriormente en el desplegable "Versión", el sistema operativo "Windows 7",
además de indicar en la caja de texto "Nombre" el nombre con el que deseamos
reconocer a la máquina virtual que estamos creando, "Alumno" en nuestro caso,
tal y como vemos en la imagen inferior, tras lo cual pulsaremos sobre el botón
"Next".
NOTA: Llamaremos "Alumno" a la máquina virtual que estamos creando, pues el
equipo que vamos a instalar y configurar en esta máquina virtual, corresponde al
tipo de equipo que será utilizado por los alumnos.
A continuación deberemos especificar la cantidad de memoria RAM de la que va a
disponer nuestra máquina virtual "Alumno", dejando en nuestro caso los 512 MB
ofertados por defecto por el asistente, tal y como vemos en la ventana de la
imagen inferior.
NOTA: Si nuestro equipo anfitrión dispusiera de una cantidad elevada de memoria
RAM, por ejemplo 4 GB., podríamos plantearnos asociar 1 GB. de memoria RAM
a la máquina virtual "Alumno".
A continuación deberemos definir las características del disco duro de nuestra
máquina virtual, debiendo en nuestro caso dejar activada la casilla "DIsco duro de
arranque" y el radio botón "Crear disco virtual nuevo", y pulsando directamente
sobre el botón "Next" en la ventana de la imagen inferior para proceder a crear un
nuevo disco duro virtual para nuestra máquina virtual "Alumno".
Como resultado de la acción anterior pasará a ser ejecutado el asistente de
creación de nuevo disco duro virtual, en cuya primera ventana pulsaremos
directamente sobre el botón "Next".
A continuación deberemos indicar si el nuevo disco duro virtual va a crecer de
modo dinámico o bien se deberá reservar un espacio fijo para el nuevo disco duro
virtual, eligiendo en nuestro caso la primera opción, al seleccionar el radio botón
"Almacenamiento de expansión dinámica", tal y como vemos en la ventana de la
imagen inferior, y pulsando tras ello sobre el botón "Next".
En la siguiente ventana mostrada por el asistente, dejaremos en la caja de texto
"Tamaño" el tamaño de 20 GB para el nuevo disco duro virtual, pudiendo además
variar la ubicación donde será almacenado dicho disco duro en la caja de texto
"Localización", si bien en nuestro caso NO modificaremos dicha ruta, de modo que
pulsaremos directamente en la ventana de la imagen inferior sobre el botón "Next".
Una vez que los parámetros correspondientes al nuevo disco duro virtual han sido
definidos a través de las ventanas anteriores, se nos presentará la siguiente
ventana, en la que se nos indicarán las opciones que hayamos seleccionado con
anterioridad, y en la que pulsaremos directamente sobre el botón "Terminar" para
concluir con el proceso de creación del nuevo disco duro virtual.
Una vez creado el nuevo disco duro virtual, regresaremos a la ventana del
asistente de creación de la máquina virtual "Alumno", en la cual se nos mostrará
un resumen de las diversas opciones que hayamos seleccionado con anterioridad
para definir el hardware de nuestra máquina virtual, y en la que pulsaremos
directamente sobre el botón "Terminar".
Si hemos seguido los pasos tal cual hemos ido especificando a lo largo de este
apartado, una vez completado el asistente de instalación, dispondremos de una
nueva máquina virtual de nombre "Alumno" en VirtualBox, tal y como vemos en la
siguiente ventana.
Los pasos anteriores únicamente nos han permitido definir las características
hardware que tendrá la máquina virtual en la que posteriormente vamos a llevar a
cabo la instalación del sistema operativo "Windows 7 Enterprise".
A partir de este instante ya tenemos correctamente definido el hardware necesario
para poder instalar sobre el mismo el sistema operativo "Windows 7 Enterprise";
proceso este que llevaremos a cabo en el siguiente módulo de este material.
Llegados a este punto vamos a proceder a instalar el sistema operativo Windows 7
Enterprise en el equipo correspondiente, bien sea una máquina física o una
máquina virtual creada con "VirtualBox" u otra aplicación de máquinas virtuales.
En nuestro caso partiremos del fichero con la imagen ISO de Windows 7
Enterprise que hemos descargado con anterioridad para llevar a cabo este
proceso de instalación.
NOTA: Si el lector dispusiera de un DVD de Windows 7 Professional, Windows 7
Enterprise o Windows 7 Ultimate, podría utilizar dicho soporte para llevar a cabo el
proceso de instalación que vamos a realizar a continuación. Igualmente si el lector
fuera a realizar la instalación en una máquina física en vez de hacerlo en un
máquina virtual, debería grabar el fichero de imagen ISO de Windows 7
Enterprise, para crear a partir del mismo un DVD con dicho sistema operativo.
Si estamos utilizando máquinas virtuales para seguir los contenidos de este
material, para arrancar la máquina virtual "Alumno" creada anteriormente, lo
primero que deberemos hacer será cargar el fichero con la imagen ISO de
Windows 7 Enterprise en la unidad de CD/DVD de la máquina virtual "Alumno",
para lo cual situados sobre dicha máquina virtual, pulsaremos sobre el apartado
"Almacenamiento", tal y como vemos en la ventana de la imagen inferior.
Como resultado de la acción anterior, pasará a ser mostrada la siguiente ventana,
en la que nos situaremos en el "Árbol de almacenamiento" sobre el "Controlador
IDE", y posteriormente sobre la entrada "Vacío", tal y como vemos en la imagen
inferior.
Tras ello, pulsaremos sobre el icono correspondiente a un CD/DVD situado en la
zona derecha de dicha ventana, tras lo cual se nos presentará una lista
desplegable de opciones, en la que elegiremos la opción "Seleccionar un archivo
de disco virtual de CD/DVD".
Elegiremos a continuación el fichero ISO que contiene la imagen de Windows 7
Enterprise, concretamente el fichero que habíamos descargado con anterioridad.
Una vez que hayamos cargado la imagen ISO del sistema operativo "Windows 7
Enterprise", podremos comprobar en el controlador IDE correspondiente que dicha
operación se ha efectuado correctamente, tal y como vemos en la ventana de la
imagen inferior, momento en el que pulsaremos en dicha ventana sobre el botón
"Aceptar".
De vuelta en la ventana de VirtualBox, y situados sobre la máquina virtual
"Alumno" procederemos a pulsar sobre el botón "Iniciar" para comenzar con el
proceso de instalación de Windows 7 Enterprise en nuestra máquina virtual.
NOTA: Si estamos utilizando máquinas físicas para seguir los contenidos de este
material, obviaríamos todo el proceso anterior, arrancando el equipo donde vamos
a instalar el sistema operativo "Windows 7 Enterprise" e introduciendo
inmediatamente en la unidad de CD/DVD del equipo el DVD correspondiente a
dicho sistema operativo.
Si estamos utilizando la aplicación "VirtualBox" por primera vez, se nos mostrará la
siguiente ventana, que básicamente nos indica que cuando hagamos clic con el
ratón sobre la máquina virtual, ésta tomará el control del teclado y del ratón, y
cuando pulsemos en nuestro teclado sobre la tecla "CRTL" situada a la derecha
del espaciador, el teclado y el ratón pasarán a estar disponibles en la máquina
anfitriona; en dicha ventana activaremos la casilla "No mostrar este mensaje de
nuevo", y tras ello pulsaremos en ella sobre el botón "Aceptar".
A continuación VirtualBox nos informa de que la pantalla de dicha aplicación está
optimizada para trabajar en un modo de color de 32 bits, aunque en este instante
está configurada a 24 bits, así como el modo de obtener el mejor rendimiento
gráfico para nuestra máquina virtual; en dicha ventana activaremos la casilla "No
mostrar este mensaje de nuevo", y tras ello pulsaremos en ella sobre el botón
"Aceptar".
De nuevo VirtualBox nos traslada una información referente al hardware,
indicándonos en este caso que con el modo de vídeo actual no se soporta la
integración del ratón, y de nuevo en dicha ventana activaremos la casilla "No
mostrar este mensaje de nuevo", y tras ello pulsaremos en ella sobre el botón
"Aceptar".
En este instante dará comienzo la instalación del sistema operativo Windows 7
Enterprise en nuestra máquina virtual, y en el momento en el que hagamos clic
con el ratón sobre la pantalla de la máquina virtual, se nos mostrará la siguiente
ventana, en la que se nos informa de que deberemos pulsar sobre la tecla CTRL
ubicada a la derecha de la barra espaciadora para volver a situarnos sobre la
máquina anfitriona; en dicha ventana activaremos de nuevo la casilla "No mostrar
este mensaje de nuevo", y tras ello pulsaremos en ella sobre el botón "Capturar"
para que el ratón funcione correctamente en la máquina virtual.
En el proceso de instalación del sistema operativo "Windows 7 Enterprise", la
primera ventana que se nos presentará será la siguiente, en la cual podremos
elegir el idioma de instalación, el formato de hora y moneda, así como la
configuración de teclado, dejando en nuestro caso seleccionadas las opciones que
por defecto nos ofrece el asistente de instalación, y pulsando en dicha ventana
directamente sobre el botón "Siguiente".
A continuación, se nos presentará la siguiente ventana, que nos permitirá dar
comienzo de modo efectivo al proceso de instalación pulsando sobre el botón
"Instalar ahora".
Como resultado de la acción anterior dará comienzo de modo efectivo el proceso
de instalación del sistema operativo "Windows 7 Enterprise" en nuestra máquina
virtual "Alumno".
Un requisito indispensable para poder realizar la instalación del sistema operativo
"Windows 7 Enterprise" será aceptar el acuerdo de licencia de uso de Microsoft,
para lo cual activaremos la casilla "Acepto los términos de licencia" en la ventana
de la imagen inferior, y tras ello pulsaremos sobre el botón "Siguiente".
A continuación el sistema nos ofrecerá realizar una actualización del sistema
operativo que tuviéramos instalado, o bien realiza una nueva instalación desde
cero, seleccionando en nuestro caso esta segunda opción pulsando sobre la
opción "Personalizada (avanzada), tal y como vemos en la ventana de la imagen
inferior.
Dado que hemos elegido la opción de realizar una nueva instalación, el sistema
nos ofrecerá los soportes donde podemos llevar a cabo la misma, en nuestro caso
únicamente en el disco duro virtual creado en su momento, por lo cual
seleccionamos los 20 GB. de espacio de disco duro sin asignar, y tras ello
pulsaremos sobre el botón "Siguiente".
En este instante dará comienzo el proceso de instalación del sistema operativo
"Windows 7 Enterprise", proceso que durará alrededor de 20 minutos, luego
esperaremos pacientemente a que se complete en su totalidad.
En el proceso de instalación, tras producirse un reinicio en la máquina virtual, se
nos presentará la siguiente ventana, en la que deberemos especificar un nombre
de usuario y un nombre de equipo. Dado que el usuario que será creado en este
instante tendrá un rol de administrador del equipo, llamaremos al usuario
"Profesor", y dado que el equipo que estamos instalando será un equipo que
utilicen los alumnos, asignaremos a nuestra máquina virtual el nombre "Alumno",
tal y como vemos en la imagen inferior, tras lo cual pulsaremos sobre el botón
"Siguiente".
NOTA: Aunque pueda parecer un contrasentido denominar al equipo "Alumno" y al
usuario "Profesor", hay que hacer notar que cualquier equipo, sea o no de uso de
alumnos, precisa de un usuario administrador para su gestión, que nosotros
hemos denominado "Profesor".
En la siguiente ventana asociaremos al usuario "Profesor" indicado anteriormente,
la contraseña correspondiente que utilizará dicho usuario, indicando en nuestro
caso por duplicado la cadena de texto "profesor" (¡OJO!, a diferencia del nombre
de usuario, la contraseña es sensible a mayúsculas y minúsculas) en las cajas de
texto correspondientes, y escribiendo un indicio de contraseña por si nos
olvidáramos de la misma, de modo que cuando la ventana correspondiente
presentara el aspecto mostrado en la imagen inferior, procederíamos a pulsar en
ella sobre el botón "Siguiente".
NOTA: Obviamente la contraseña "profesor" indicada anteriormente NO es una
contraseña muy recomendable porque coincide con el propio nombre del usuario,
si bien en nuestro caso hemos elegido esa para recordarla fácilmente. Igualmente
el indicio de contraseña "Mismo nombre" elegido también es demasiado explícito,
y permite conocer el incidio NO sólo a la persona que ha configurado la
contraseña, sino a cualquiera que acceda al equipo. En un entorno real de trabajo,
tanto la contraseña como el indicio de la misma deberían ser más seguros.
A continuación el sistema operativo nos permite especificar como deseamos
proteger a nuestro equipo mediante las actualizaciones automáticas, eligiendo en
nuestro caso la opción "Usar la configuración recomienda", tal y como vemos en la
ventana de la imagen inferior.
Tras ello el sistema nos permite configurar la zona horaria del equipo, así como la
fecha y hora del mismo; dado que en nuestro caso todas las configuraciones son
correctas, pulsaremos directamente en la ventana correspondiente sobre el botón
"Siguiente".
Finalmente el sistema operativo nos solicita que especifiquemos el ámbito donde
será ubicado este equipo que acaba de ser instalado, seleccionando en nuestro
caso la opción "Red de trabajo", tal y como vemos en la ventana de la imagen
inferior.
El sistema realizará los cambios oportunos a partir de las configuraciones
realizadas anteriormente.
Tras unos breves instantes, accederemos al Escritorio del usuario "Profesor" en el
equipo "Alumno" que tendrá instalado el sistema operativo "Windows 7
Enterprise", tal y como vemos en la ventana de la imagen inferior.
Así pues llegados a este punto ya habremos completado satisfactoriamente el
proceso de instalación de "Windows 7 Enterprise" en el equipo "Alumno",
momento en el cual podremos retirar el fichero de imagen ISO de dicho sistema
operativo de la unidad de CD/DVD de la máquina virtual, para lo cual nos
situaremos sobre el apartado "Dispositivos CD/DVD" del menú "Dispositivos", para
elegir la opción "Eliminar disco de la unidad virtual", tal y como vemos en la
imagen inferior.
Como resultado de la acción anterior será retirado el fichero de imagen ISO de
"Windows 7 Enterprise" de la unidad de CD/DVD de la máquina virtual, y daremos
por finalizado este apartado.
NOTA: Si estuviéramos realizando una instalación en una máquina física,
retiraríamos sin más el DVD de "Windows 7 Enterprise" de la unidad de CD/DVD
del ordenador.