martes, 27 de septiembre de 2011

Posix

¿Que son?

El POSIX es un grupo de estándares en evolución. Cada uno de los estándares que lo
componen cubre diferentes aspectos de los sistemas operativos. Algunos de ellos ya han
sido aprobados, mientras que otros están aún en fase de desarrollo. Los estándares POSIX
se pueden agrupar en tres categorías diferentes

1) Estándares Base: Definen interfases del sistema relacionadas con diferentes
Tabla I. Lista de estándares base del POSIX
POSIX.1 Interfases del sistema (estándar básico)
a,b
POSIX.2 Shell y utilidades
a
POSIX.3 Métodos para medir la conformidad con POSIX
a
POSIX.4 Extensiones de tiempo real
POSIX.4a Extensión de threads, o múltiples flujos de control
POSIX.4b Extensiones adicionales de tiempo real
POSIX.6 Extensiones de seguridad
POSIX.7 Administración del sistema
POSIX.8 Acceso a ficheros transparente a la red
POSIX.12 Interfases de red independientes del protocolo
POSIX.15 Extensiones de colas batch
POSIX.17 Servicios de directorios
a
Estándares IEEE ya aprobados
b
Estándar ISO/IEC ya aprobado
aspectos del sistema operativo. El estándar especifica la sintaxis y la semántica de
estos servicios del sistema operativo, de modo que los programas de aplicación
puedan invocarlos directamente. El estándar no especifica cómo se implementan
estos servicios; de este modo, los implementadores de sistemas pueden elegir la
implementación que crean más conveniente—y así competir entre ellos—, siempre
que cumplan la especificación de la interfase. Todos los estándares base
desarrollados hasta el momento lo han sido para lenguaje C. En el momento de
escribir este artículo está abierto el debate sobre si los estándares base deben
desarrollarse de forma independiente del lenguaje, y luego especificar interfases
concretas para los diferentes lenguajes de programación. La Tabla I y la Tabla II
muestran los estándares base que están siendo desarrollados por los grupos de
trabajo del POSIX.
Tabla II. Estándares base POSIX adicionales
P1224 Servicios de mensajería electrónica (X.400)
P1224.1 Interfase para portabilidad de aplicaciones X.400
P1238 Interfase de comunicaciones OSI
P1238.1 Interfase OSI de transferencia de ficheros
P1201.1 Interfase gráfica a usuario (ventanas)


2) Interfases en diferentes lenguajes de programación: Son estándares secundarios que
traducen a un lenguaje de programación concreto los estándares base. Los
lenguajes utilizados hasta el momento son Ada, Fortran 77, y Fortran 90, además
del lenguaje C, en el que se han especificado hasta el momento los estándares base.
La Tabla III muestra las interfases POSIX que están actualmente en desarrollo
para diferentes lenguajes de programación.
3) Entorno de Sistemas Abiertos. Estos estándares incluyen una guía al entorno
Tabla III. Lista de interfases POSIX para diferentes lenguajes de programación
POSIX.5 Interfases Ada
a
POSIX.9 Interfases Fortran 77
a
POSIX.19 Interfases Fortran 90
POSIX.20 Interfases Ada para las extensiones de tiempo real
a
Estándares IEEE ya aprobados
POSIX y los perfiles de entornos de aplicación. Un perfil de aplicación es una lista
de los estándares POSIX, con especificación de las opciones y parámetros
necesarios, que se requieren para un cierto entorno de aplicación. El objetivo
principal de los perfiles de aplicación es conseguir un conjunto pequeño de clases
de implementaciones de sistemas operativos bien definidas y que sean apropiadas
para entornos particulares de aplicaciones. La Tabla IV muestra la lista de
estándares que están siendo desarrollados en este grupo.
La necesidad del desarrollo de un estándar de sistema operativo se deriva del hecho de
Tabla IV. Lista de estándares POSIX de entornos de aplicaciones
POSIX.0 Guía al entorno POSIX de sistemas abiertos
POSIX.10 Perfil de entorno de aplicaciones de supercomputación
POSIX.11 Perfil de entorno de aplicaciones de procesado de
transacciones
POSIX.13 Perfiles de entornos de aplicaciones de tiempo real
POSIX.14 Perfil de entorno de aplicaciones multiprocesadoras
POSIX.18 Perfil de entorno de aplicación de plataforma POSIX
que, aunque el UNIX es un estándar de facto, hay suficientes diferencias entre las
diferentes implementaciones para que las aplicaciones no sean completamente portables.

Más aún, si una aplicación UNIX puede necesitar ciertos cambios para ser portada a una
plataforma diferente, la portabilidad de las aplicaciones de tiempo real es muchísimo más
difícil, ya que existe una gran diversidad de sistemas operativos de tiempo real. El UNIX
no es un sistema operativo de tiempo real, y no existe un estándar de facto para estas
aplicaciones.

No hay comentarios:

Publicar un comentario