martes, 14 de abril de 2009

Single Unix Specification (SUS)

Primero que todo, ¿Qué es Single Unix Specification (SUS)?

Es una certificación que identifica y aprueba a todo sistema basado en UNIX o hardware compatible con UNIX. Single Unix Specification es una colección de documentos que forman parte de la X/Open que definen los requisitos para un sistema UNIX. Sólo los sistemas que cumplen a cabalidad y se encuentran certificados por la especificación Single UNIX Specification pueden ser denominados "UNIX®" (otros reciben la denominación "similar a un sistema Unix" o "similar a Unix").

The Open Group (anteriormente X/Open) adquirió los derechos de certificación y marca registrada UNIX de Novell y actualmente los usa para certificar los sistemas de distintos fabricantes como compatibles UNIX. Las especificaciones publicadas para que un sistema sea certificado o compatible UNIX son las SUS (Single Unix Specifications.

Debido al alto costo de la certificación IEEE, SUS es el estándar de facto.
• Dos estandares usados actualmente: el Unix 02 (o Unix 98) y el más reciente: Unix 03.

Veamos un poco de la historia para poder entender mejor cómo funciona esto...

Anteriormente, el sistema operativo UNIX fue producto con cuatro elementos (Ver la siguiente figura):

* La especificación
* La tecnología
* La marca registrada
* El producto


Con la Especificación Unica de UNIX (SUS), ahora existe un único consenso abierto que define el producto, también hay una marca que es usada para identificar aquellos productos que conforman la especificacion unica de Unix (SUS). Tanto la especificación como la marca ahora han sido confiadas para su manejo para la industria por la compañia X/Open.

Debido a las múltiples versiones en el mercado de UNIX, se comenzaron a publicar estándares para que todas las versiones fuesen compatibles. La primera de ellas la lanzó AT&T llamada SVID (System V Interface Definition) que definía:

•Cómo deberían ser las llamadas al sistema (System Call)
•El formato de los archivos
•Etc.

SUS comenzó como la especificación API común, luego se convirtió a en las especificaciones 1170, y actualmente es el Single Unix Specification.

Otra versión importante fue la de la Universidad de Berkeley (Berkeley Software Distribution o BSD) que simplemente las ignoró. Posteriormente la IEEE usó un algoritmo que revisó ambas versiones y buscó las similitudes, a las cuales definió como estándar y llamó POSIX (Portable Operating System for Unix) la que fue adoptada por muchos fabricantes.

El estándar de POSIX se llama 1003. Posteriormente los institutos ANSI e ISO se interesaron en estandarizar el lenguaje C. Algunas de las definiciones del estándar POSIX son las siguientes:

1003.0 Introducción y repaso
1003.1 Llamadas al sistema
1003.2 Intérprete de comandos
1003.3 Métodos de prueba
1003.4 Extensiones para tiempo real
1003.5 Lenguaje Ada
1003.6 Extensiones para la seguridad
1003.7 Administración del Sistema
1003.8 Acceso transparente a archivos
1003.9 Lenguaje Fortran
1003.10 Supercómputo

Las especificaciones SUS incluyen lo siguiente:

* Definiciones de Interfaces del Sistema
* Intefaces y Encabezados del Sistema
* Comandos y Utilerías
* Servicios de red
* Cursos X/Open

Bueno, esta es la información que considero es la más relevante sobre el tema, espero sus comentarios...


Referencias:

http://www.unix.org/what_is_unix/single_unix_specification.html
http://es.wikipedia.org/wiki/Single_Unix_Specification
http://www.buscasdeweb.com/unix.html
http://robotica.chillan.ubiobio.cl/~miguel/Sistemas/02-unix.pdf

martes, 17 de febrero de 2009

Servidores X

Antes que nada, ¿Qué es X?


La interfaz Gráfica de Usuario (GUI-Grafical User Interface) o "Funcionalidad de Ventanas" se ha convertido en una parte de la máquina que todo el mundo utiliza y conoce.

Cualquier proveedor de software de sistemas de cliente, ya sea libre o no, que quiera ser tomado en serio debe proporcionar una interfaz gráfica de usuario (GUI) como primer método de interacción con el usuario. Microsoft incluye el suyo como parte del sistem
a principal, o kernel, al igual que muchos otros. La mayoría de las distribuciones GNU/Linux la incluyen en la instalación por defecto.

Sin embargo, en GNU/Linux, la infraestructura GUI no se incluye en el kernel sino que es un programa aparte con el nombre de “El Sistema de Ventanas X”.

X no es en realidad un GUI. Los GUIs que GNU/Linux suele tener son GNOME, KDE. La mayoría de las distribuciones GNU/Linux son liberadas con una GUI configurada como interfaz por defecto, que puede ser comparada con las GUI de cualquier otro sistema operativo. Y el usuario final, que utiliza el editor de textos, la hoja de cálculo, el cliente de correo y el navegador web no necesita conocer todos los detalles técnicos.



Entonces, ¿qué es exactamente X si no es una GUI?

X es la infraestructura que un GUI utiliza para hacer su trabajo. Por ejemplo, un GUI maneja los botones, las listas desplegables, ventanas, etc., mientras que X maneja el dibujo a bajo nivel de las fuentes, líneas e imágenes en la pantalla y lee las entradas por teclado y ratón así como la comunicación entre programas de éstos. También puede manejar la distribución de la red de usuarios y sesiones remotas.


X fue diseñado desde el principio pensando en redes y adoptó un modelo "cliente-servidor".

En el modelo de X el Servidor X se ejecuta en la máquina que tiene el teclado, monitor y ratón. El servidor es responsable de manejar la pantalla, la entrada de datos a través del teclado, el ratón, etc.

Cada aplicación X (como una XTerm o Netscape) es un cliente. Un cliente manda mensajes al servidor como por ejemplo, "Por favor dibuja una ventana en estas coordenadas" y el servidor devuelve mensajes como "El usuario ha pulsado el botón OK".

Sí solo hay un ordenador involucrado, como en una casa o una pequeña oficina, el servidor X y los clientes X seguramente se ejecutarán en el mismo sistema.

Para resumir el concepto podemos decir que un servidor X es la pantalla y el teclado, lo que mucha gente acostumbrada a MS Windows pensaría que es el cliente, y un cliente X es un programa que abre y usa ventanas, como puede ser un navegador web, un cliente de correo, un procesador de textos y demás.

Viéndolo desde otro punto de vista, un servidor X es una máquina en una red donde existe un programa de “hacer ventanas” y otras máquinas, o clientes X, se conectan a ella para crear ventanas, escribir o mostrar texto, imágenes o lo que sea, en la ventana y puede leer cualquier entrada que el usuario haga sobre esa ventana. Los clientes X a menudo corren en la misma máquina, pero a veces no.




Bueno, espero que se haya entendido bien cómo funciona todo esto de los servidores X. Traté de describir con ejemplos claros y dibujos el funcionamiento de este tipo de infraestructura.

Si quieren consultar más información al respecto, les dejos los siguientes links:

http://www.freebsd.org/doc/es_ES.ISO8859-1/books/handbook/x-understanding.html

http://www.tu-chemnitz.de/docs/lindocs/RH73/RH-DOCS/rhl-rg-es-7.3/ch-x.html


Espero sus comentarios...