Single UNIX Specification (SUS)

15 04 2009

Single UNIX Specification o SUS (por sus siglas en inglés).

Es un conjunto de especificaciones publicadas mediante las cuales un sistema de hardware o software es considerado compatible con UNIX. Es un conjunto de normas abiertas, un consenso de especificaciones que definen los requisitos para un sistema UNIX conforme. La normalizacion de un entorno de programacipon de amplia base funcional con un conjunto de interfaces para apoyar la conservación de las actuales aplicaciones UNIX y el desarrollo de nuevas aplicaciones. Cuando los fabricantes cumplen con las especificaciones de SUS obtienen una certificación que identifica y aprueba a todo sistema basado en UNIX o hardware compatible con el mismo. SUS es una extensión de los estándares de POSIX [1] y es la definición oficial del sistema operativo UNIX.
En el inicio estas certificaciones eran desarrolladas por X/Open [2], hasta 1996 cuando se fusionó con Open Software Foundation para formar The Open Group [3], entidad que desde ese año adquirió los derechos de certificación y marca registrada UNIX de Novell y los usa para certificar los sistemas de distintos fabricantes como compatibles con UNIX.
SUS fue desarrollado por el Open Group como una alternativa a la especificación POSIX, que fue desarrollada por la IEEE como estándar. Sin embargo, la IEEE empezó a cobrar altos precios por la documentación de POSIX y se ha negado a publicar los estándares, lo cual ha aumentado el uso del modelo SUS. Este modelo es abierto, acepta entradas de todo el mundo y está libremente disponible en Internet. Actualmente, con el desarrollo de Linux y los elevados precios del IEEE para obtener sus estándares, SUS se ha convertido en el estándar de facto.

La primera version de SUS fue la 95 y 93, seguidamente por la segunda versión conocida como UNIX 98 (o SUS 2) hasta llegar a la actual que es la UNIX 03 (o SUS 3). A lo largo de los años han habido varios sistemas que han obtenido dicha certificación, a continuación una pequeña lista de ellos.

UNIX 95 y 93

HP-UX desde 11.00 hasta 11i V2
IBM z/OS V1R2
NCR UNIX SVR4
NEC UX/4800
SCO UnixWare 7.1.3 y SCO OpenServer 5
SGI IRIX 6.5.28

UNIX 98 (SUS 2)

HP Tru64 V5.1
IBM AIX 5L V5.2
Sun Solaris 8 y 9

UNIX 03 (SUS 3)

Apple_Inc. Mac OS X 10.5
HP-UX 11i V3 Release B.11.31 y posteriores
IBM AIX 5L V5.3 (y V5.2 con ciertas actualizaciones)
Sun (y Fujitsu)Solaris 10, versiones de 32 y 64 bits para SPARC y para Intel x86

Otros sistemas open source tipo UNIX no han sido certificados, es el caso de BSD, Linux o Minix. Para una lista mas detallada y completa de productos certificados, presiona acá.

La última versión de SUS, es la versión 3, la cual se publicó el 30 de abril de 2004 y actualiza las ediciones 2001 y 2003 de la especificación técnica que incluía los Technical Corrigendum 1 y 2. Esta publicación tiene como nucleo las especificaciones del Open Group Base número 6. Esta documentación esta estructurada de la manera siguiente.

Definiciones de base, Numero 6 (XBD)
Shell y Servicios públicos, Numero 6 (XCU)
Interfaces de sistema, Número 6 (XSH)
Justificación (Informativo)

Esta nueva versión es la incorporaciónn de IEEE Std 1003,1 (POSIX) e ISO/IEC 9945 en un documento conjunto. Estos dos ultimos documentos son técnicamente identicos a la especificación número 6 de The Open Group Base.

Referencias

[1]: POSIX: Acrónimo de Portable Operating System Interface; la X viene de UNIX como seña de identidad de la API. Son una familia de estándares de llamadas al sistema operativo definidos por el IEEE y especificados formalmente en el IEEE 1003. Persiguen generalizar las interfaces de los sistemas operativos para que una misma aplicación pueda ejecutarse en distintas plataformas. Describen un conjunto de interfaces de aplicación adaptables a una gran variedad de implementaciones de sistemas operativos. Especifica las interfaces de usuario y software al sistema operativo en 15 documentos diferentes.

[2]: X/Open: Fue un consorcio fundado en 1984 por varios desarrolladores europeos de UNIX para identificar y promover el estándar abierto en el campo de la tecnología de la información. El objetivo original fue definir una especificación simple para sistemas operativos derivados de Unix, para incrementar la interoperabilidad de aplicaciones y reducir el costo del software de adaptación.Sus publicaciones vieron la luz bajo el nombre XPG, “X/Open Portability Guide”, Guía de Portabilidad X/Open. La primera en el año de formación del consorcio, la segunda en 1987 y la tercera (y quiza la más usada) en 1988. X/Open manejó la marca UNIX® desde 1993 a 1996.

[3]: The Open Group: Es un consorcio de la industria del software que provee estándares abiertos neutrales para la infraestructura de la informática. Formado en 1996, es famoso por sus sistemas de certificación de la marca UNIX , en el pasado el grupo fue reconocido por publicar el artículo Single UNIX Specification. Sus miembros incluyen un amplio rango de empresas y agencias gubernamentales. Es el grupo que tiene y sigue desarrollado las especificaciones técnicas que componen SUS.

UNIX registered

UNIX registered

“Después de treinta años de su creación, UNIX sigue siendo un fenómeno” – Dennis Ritchie

Links de interés:

Página principal The Open Group

Especificación SUS 3

Guía de certificación para SUS3

Certificaciones de Open Group

Certificación Unix (Open Group)

Bibliografía:

http://en.wikipedia.org/wiki/Single_UNIX_Specification

http://es.wikipedia.org/wiki/The_Open_Group

http://es.wikipedia.org/wiki/X/Open

http://www.opengroup.org/austin/papers/single_unix_faq.html

http://www.unix.org

http://www.unix.org/version3/

http://www.opengroup.org

http://www.opengroup.org/austin/links.html

http://es.wikipedia.org/wiki/POSIX

Imagen vista en:

http://www.unix.org/

Anuncios




Filosofía Unix

4 02 2009

Unix

Unix

Unix es un Sistema Operativo (SO) multitarea, portable y multi usuario, en un principio fue desarrollado en los laboratorios Bell de AT&T, razón por la cual fue concebido como un sistema en el que las cosas se tenían que realizar de manera eficiente, fácil, eficaz y lo más rapidamente posible, para aprovechar los recursos limitados existentes para su época y responder a las necesidades de cómputo que exige un laboratorio científico.

Con lo anterior expuesto, podemos entonces definir de lo que trata la Filosofía Unix.

Filosofía Unix

Es un conjunto de “pensamientos” o proposiciones que alguien podria catalogar como reglas, las que son aplicables al desarrollo de software en el ámbito Unix, se basa en la experiencia, simplicidad, reinvención y rapidez en el desarrollo. Estos son un conjunto de enunciados simples y básicos de ideas que se traducen en características que poseen los diferentes programas que corren en Unix, bueno a almenos con esa ideología se creó la filosofía Unix.

La Filosofía UNIX supone crear programas rápidos, simples, con poca intervención por parte del usuario, o en caso de necesitarla, esta se produzca al principìo o lo más mínima posible. Esta se acopla perfectamente a las necesidades de computación de los laboratorios cientificos, puesto que Unix fue originalmente desarrollado en uno de estos.

A continuación algunas premisas:

  • Que cada programa realice unicamente la tarea para la que fue creado y la haga bien.

  • Para llevar a cabo una nueva tarea escribe un programa nuevo. No compliques uno viejo añadiendo nueva funcionalidad.

  • Escribe tu programa teniendo en cuenta que su salida probablemente sea la entrada de otro programa.

  • Guarda los datos en archivos de texto plano. Si necesitas seguridad, confía en los permisos.

  • Usa nombres cortos y en minúscula.

  • En la manera de lo posible haz que el usuario suministre los datos por línea de comandos en la llamada.

  • Haz partes simples conectadas mediante interfaces limpias y bien definidas.

  • Céntrate en los datos.

  • Claridad mejor que complejidad. La solución más simple es frecuentemente la mejor.

  • Portabilidad mejor que eficiencia.

  • Piensa en paralelo. Hay otros procesos en el mundo, incluso instancias de tu mismo programa funcionando al mismo tiempo.

  • Hacer programas grandes, solo cuando se demuestre que no se puede realizar con uno pequeño.

  • Si no hay nada interesante que decir, que el programa mejor no diga nada.

  • Para cada problema existen múltiples soluciones.

  • Diseña pensando en el futuro (esta cercano). Esto nos ofrece compatibilidad y mayor tiempo de utilización.

  • Programa de abajo hacia arriba y de conocimiento pragmático.

  • Progama basado en el conocimiento Empírico o Experiencia.

  • No se encuentra en los métodos y las normas oficiales, sino en el medio-reflexivo implícito, el conocimiento.

En resumidas cuentas la filosofía Unix se puede describir como bien lo dice Doug Mcllroy:

“Escribe programas que hagan una cosa y la hagan bien, que trabajen en armonía con otros y que manejen flujos de texto, pues esta es una interfaz universal.” – Doug Mcllroy

La cual por lo general se abrevia a “Haz una cosa, hazla bien”.

Cabe mencionar que con el paso del tiempo (y estoy de acuerdo en eso) esta filosofía ha ido en decadencia en varios descendientes de Unix, esta filosfia se ha perdido y han apostado mas por la interacción visual con el usuario, un mal manejo de recursos y mas clicks antes que el uso de una consola. Aunque claro, estas afirmaciones son bastante cuestionables, pues es sabido que han sido uno de los medios por los cuales los sistemas basados en Unix (y por tanto en su filosofía) han podido abarcar mas mercado en la actualidad.

“Aquellos que no pueden entender UNIX, estan condenados a reinventarlo, pobremente.”

Henry Spencer, 1987

Imágen vista en:

drunix.net

Otros enlaces:

elsitiodetelecomunicaciones

thefuckingshit

wikipedia, Unix