Está en la página 1de 24

UNIVERSIDAD NACIONAL AUTONOMA DE HONDURAS

Facultad de Ciencias Econmicas Departamento de Informtica Administrativa Asignatura: Sistemas Operativos I Catedrtico: Lic. Carmen Gonzlez Seccin: 1101 Alumno: Roy Portillo lvarez Cuenta: 20091002855 Tegucigalpa M.D.C. 20 de Mayo de 2012

POSIX
Portable Operating System Interface X

POSIX
POSIX es el acrnimo de Portable Operating System Interface; la X viene de UNIX como sea de identidad de la API.
El trmino fue sugerido por Richard Stallman en respuesta a la demanda de la IEEE , que buscaba un nombre fcil de recordar. Una traduccin aproximada del acrnimo podra ser "Interfaz de sistema operativo portable" o "Interfaz portable de sistema operativo".

Que es POSIX?
O

POSIX es el estndar de interfaz de sistemas operativos portables de IEEE basado en el sistema operativo UNIX. Aunque UNIX era prcticamente un estndar industrial, haba bastantes diferencias entre las distintas implementaciones de UNIX, lo que provocaba que las aplicaciones no se pudieran transportar fcilmente entre distintas plataformas UNIX. El POSIX Se trata de un estndar que intenta asegurar la portabilidad entre diferentes sistemas operativos. Dentro del estndar se especifica el comportamiento de las expresiones regulares y de las herramientas ms comunes que las usan.

Estos son una familia de estndares de llamadas al sistema operativo definido por el IEEE y especificado formalmente en el IEEE 1003. Persiguen generalizar las interfaces de los sistemas operativos para que una misma aplicacin pueda ejecutarse en distintas plataformas. Estos estndares surgieron de un proyecto de normalizacin de las API y describen un conjunto de interfaces de aplicacin adaptables a una gran variedad de implementaciones de sistemas operativos.

El POSIX es un grupo de estndares en evolucin. Cada uno de los estndares que lo componen cubre diferentes aspectos de los sistemas operativos. Algunos de ellos ya han sido aprobados, mientras que otros estn an en fase de desarrollo. Los estndares POSIX se pueden agrupar en tres categoras diferentes:

1)Estndares de Base Definen interfaces del sistema relacionadas con diferentes aspectos del sistema operativo. El estndar especifica la sintaxis y la semntica de estos servicios del sistema operativo, de modo que los programas de aplicacin puedan invocarlos directamente. El estndar no especifica cmo se implementan estos servicios; de este modo, los implementadores de sistemas pueden elegir la implementacin que crean ms convenientey as competir entre ellos, siempre que cumplan la especificacin de la interface. Todos los estndares base desarrollados hasta el momento lo han sido para lenguaje C. En el momento de escribir este artculo est abierto el debate sobre si los estndares base deben desarrollarse de forma independiente del lenguaje, y luego especificar interfaces concretas para los diferentes lenguajes de programacin.

2) Interfaces en diferentes lenguajes de programacin: Son estndares secundarios que traducen a un lenguaje de programacin concreto los estndares base. Los lenguajes utilizados hasta el momento son Ada, Fortran 77, y Fortran 90, adems del lenguaje C, en el que se han especificado hasta el momento los estndares base.

3) Entorno de Sistemas Abiertos Estos estndares incluyen una gua al entorno POSIX y los perfiles de entornos de aplicacin. Un perfil de aplicacin es una lista de los estndares POSIX, con especificacin de las opciones y parmetros necesarios, que se requieren para un cierto entorno de aplicacin. El objetivo principal de los perfiles de aplicacin es conseguir un conjunto pequeo 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 estndares que estn siendo desarrollados en este grupo.

Donde se Utiliza ?
O En hilos, se les asignan porciones de tiempo por el
O O

O O O O O O O

ncleo. Definen interfaces de sistemas operativos; Permiten el desarrollo de Software portable y reutilizable; Interfaz bsica; Extensiones de tiempo real; Procesos ligeros; Seguridad; Servicios de red; Tolerancia de fallos; Comunicaciones de tiempo real.

Uso del POSIX


O

Especifica las interfaces de usuario y software al sistema operativo en 15 documentos diferentes. La lnea de comandos estndar y las interfaces de scripting se basaron en Korn Shell. Otros programas a nivel de usuario (user-level), servicios y utilidades incluyen AWK, echo, ed y cientos de otras. Los servicios a nivel de programa requeridos incluyen definicin de estndares bsicos de I/O, (file, terminal, y servicios de red). O Tambin especifican una API para las bibliotecas de threading, que es muy utilizada en una gran variedad de sistemas operativos. Una serie de pruebas acompaan al estndar POSIX. Son llamadas PCTS en alusin al acrnimo Posix Conformance Test Suite. Desde que la IEEE empez a cobrar altos precios por la documentacin de POSIX y se ha negado a publicar los estndares, ha aumentado el uso del modelo Single Unix Specification. Este modelo es abierto, acepta entradas de todo el mundo y est libremente disponible en Internet. Fue creado por The Open Group.

Sincronizacin de procesos. Define funciones para permitir la

sincronizacin de procesos a travs de semforos contadores.


O

Memoria compartida. Tienen espacios de direccionamiento que son independientes entre s. Sin embargo, muchas aplicaciones de tiempo real (y tambin muchas que no son de tiempo real) necesitan compartir grandes cantidades de datos de una manera eficiente. O Seales de tiempo real. Permite notificar eventos que ocurren en el sistema, pero no es completamente satisfactorio para aplicaciones de tiempo real. Las seales no se almacenan en colas y, por tanto, algunos eventos se pueden perder. Las seales no estn priorizadas, y esto implica tiempos de respuesta ms largos para eventos urgentes. O Comunicacin de procesos. Se especifica un mecanismo sencillo de colas de mensajes para la comunicacin entre procesos. Las colas de mensajes estn identificadas por un nombre perteneciente a un espacio de nombres dependiente de la implementacin.

Entrada/Salida Asncrona. Define funciones que permiten solapar

el procesado de aplicaciones con las operaciones de entrada/salida iniciadas por la aplicacin. Una operacin de entrada/salida asncrona es similar a las operaciones de entrada/salida normales, con la excepcin de que una vez que la operacin asncrona ha sido iniciada por un proceso, este proceso no se suspende y puede continuar ejecutando instrucciones, en paralelo con la operacin de entrada/salida.
O

Extensin de threads. Define interfaces para soportar mltiples actividades concurrentes, denominadas threads, dentro de cada proceso POSIX. Los threads definidos en el POSIX tienen un estado asociado ms pequeo que el de un proceso. Todos los threads que pertenecen al mismo proceso comparten el mismo espacio de direccionamiento. Pueden ser implementados con tiempos de cambio de contexto y de creacin y destruccin ms bajos que los de los procesos. El POSIX.4a ha sido especficamente desarrollado para abordar las necesidades de los sistemas multiprocesadores de memoria compartida.

Caractersticas del POSIX


O

Algunos tipos de datos utilizados por las funciones no se definen como parte de estndar, pero se definen como parte de la implementacin. Estos tipos se encuentran definidos en el archivo de cabecera <sys/types.h>. Estos acaba con el sufijo _t. Por ejemplo, uid_t es el tipo que se emplea para almacenar un identificador de usuario. Los nombres de las funciones en POSIX son en general cortos y con todas sus letras en minsculas. Ejemplo de funciones en POSIX son: 1. Fork, para crear un nuevo proceso. 2. Read, para leer datos de un archivo. 3. Close, para cerrar un archivo.

Las funciones, normalmente devuelven cero si se ejecutaron con xito 0-1 en caso de error. Cuando una funcin devuelve -1, se almacena en una variable global, denominada errno, el cdigo de error. Este cdigo de error es un valor entero. La variable errno se encuentra definida en el archivo de cabecera <errno.h>. La mayora de los recursos gestionados por el sistema operativo se referencian mediante descriptores. Un descriptor es un numero entero mayor o igual que cero.

Funciones del POSIX


Instalacin Las funciones POSIX son habilitadas por defecto. Puede deshabilitar las funciones tipo POSIX con --disable-posix. Constantes predefinidas Estas constantes estn definidas por esta extensin y estarn disponibles solamente cuando la extensin ha sido o bien compilada dentro de PHP o grabada dinmicamente en tiempo de ejecucin.
POSIX_F_OK (integer)Verificar si el archivo existe. POSIX_R_OK (integer)Verificar si el archivo existe y tiene permisos de lectura. POSIX_W_OK (integer)Verificar si el archivo existe y tiene permisos de escritura. POSIX_X_OK (integer)Verificar si el archivo existe y tiene permisos de ejecucin. POSIX_S_IFBLK (integer)Archivo especial de bloque. POSIX_S_IFCHR (integer) Archivo especial de carcter. POSIX_S_IFIFO (integer)Archivo especial FIFO (pipe con nombre). POSIX_S_IFREG (integer)Archivo normal. POSIX_S_IFSOCK (integer)Socket.

posix_access Determinar la accesibilidad de un archivo,

verifica el permiso del usuario sobre un archivo. posix_ctermid Recoge el nombre de ruta de la terminal de control. Necesita ser escrito. posix_get_last_error Recuperar el nmero de error establecido por la ltima funcin posix que ha fallado. Recupera el nmero de error establecido por la ltima funcin posix que fall. El mensaje de error del sistema asociado con el valor errno puede ser consultado con posix_strerror(). posix_getcwd Nombre de ruta del directorio actual. Necesita ser escrito cuanto antes. posix_getegid Devuelve el ID de grupo efectivo del proceso actual. Devuelve el valor numrico ID de grupo efectivo del proceso actual.

posix_geteuid Devuelve el ID de usuario efectivo del proceso

actual. Devuelve el valor numrico ID de usuario efectivo del proceso actual. posix_getgid Devuelve el ID de grupo real del proceso actual. Devuelve el valor numrico ID de grupo real del proceso actual. posix_getgrgid Devuelve informacin sobre un grupo a travs del id de grupo. Necesita ser escrito. posix_getgrnam Devuelve informacin sobre un grupo a travs del nombre. Necesita ser escrito. posix_getgroups Devuelve el conjunto de grupos del proceso actual. Devuelve un vector de enteros que contiene los ids numricos de grupo de el conjunto de grupos del proceso actual. posix_getlogin Devuelve el nombre de usuario. Devuelve el nombre de usuario (login) que es dueo del proceso actual. posix_getpgid Recoge el id del grupo de procesos para el control de trabajo. Devuelve el identificador de grupo de procesos del proceso pid.

posix_getpgrp Devuelve el identificador de grupo del proceso actual.

Devuelve el identificador de grupo de proceso del proceso actual. posix_getpid Devuelve el identificador del proceso actual. Devuelve el identificador de proceso del proceso actual. posix_getppid Devuelve el identificador del proceso padre. Devuelve el identificador de proceso del proceso padre del proceso actual. posix_getpwnam Devuelve informacin sobre un usuario a travs del nombre de usuario. Devuelve un vector asociativo conteniendo informacin sobre un usuario referenciado por un nombre alfanumrico, pasado a la funcin en el parmetro username . posix_getpwuid Devuelve informacin sobre un usuario a travs de su id. Devuelve un vector asociativo que contiene informacin sobre un usuario referenciado con un ID de usuario, pasado por el parmetro uid. posix_getrlimit Devuelve informacin sobre los limites de recursos del sistema. Necesita ser escrita tan pronto como sea posible. posix_getsid Consigue el sid actual del proceso. Devuelve el sid del proceso pid . Si pid es 0, se devolver el sid del proceso actual. Esta no es una funcin POSIX, pero es normal en sistemas System V. Si su sistema no soporta esta funcin a nivel de sistema, esta funcin PHP devolver siempre FALSE.

posix_getuid Devuelve el ID de usuario real del proceso actual.

Devuelve el valor numrico ID de usuario real del proceso actual. posix_isatty Determinar si un descriptor de archivo es una terminal interactiva. Determina si el descriptor de archivo da hace referencia a un dispositivo tipo terminal vlido. posix_kill Manda una seal a un proceso. Manda la seal sig al proceso con el identificador de proceso pid . Devuelve FALSE, si no puede enviar la seal. Si s la enva devuelve TRUE . posix_mkfifo Crear un archivo especial fifo (un pipe con nombre). posix_mkfifo() crea un archivo FIFO especial que existe en el sistema de archivos y acta como un punto de comunicacin bi-direccional para los procesos. posix_mknod Crear un archivo especial u ordinario. Crea un archivo especial u ordinario. posix_setegid Establecer el GID efectivo del proceso actual. Establece el ID de grupo efectivo del proceso actual. Esta es una funcin privilegiada y se necesitan los permisos apropiados (usualmente root) en el sistema para contar con la capacidad de ejecutar esta funcin.

posix_seteuid Establecer el UID efectivo del proceso actual.

Establece el ID de usuario real del proceso actual. Esta es una funcin privilegiada y se necesitan los permisos apropiados (usualmente root) en el sistema para tener la capacidad de ejecutar esta funcin. posix_setgid Asigna el GID efectivo del proceso actual. Asigna el ID de grupo real del proceso actual. Esta es una funcin privilegiada y necesitas los privilegios apropiados (normalmente root) en tu sistema para realizar esta funcin. El orden apropiado de llamada es posix_setgid() primero, posix_setuid() despus.Devuelve TRUE si tiene xito, FALSE en caso contrario. posix_setpgid Asigna el id de grupo de procesos para el control de trabajos. Inserta el proceso pid en el grupo de procesos pgid. posix_setsid Convierte el proceso actual en lder de sesin. Convierte el proceso actual en lder de sesin. posix_setuid Asigna el UID efectivo del proceso actual. Asigna el ID de usuario real al proceso actual. Esta es una funcin privilegiada y necesitas los privilegios apropiados (normalmente root) en tu sistema para realizar esta funcin.

posix_strerror Recuperar el mensaje de error del sistema

a) b) c) d) e)

asociado con el errno dado. Devuelve el mensaje de error del sistema POSIX asociado con el errno. Es posible obtener el parmetro errno llamando la funcin posix_get_last_error(). posix_times Recoge el tiempo de los procesos. Devuelve un hash de cadenas con informacin sobre el uso de CPU del proceso actual. Los ndices del hash son ticks - el numero de ticks de reloj que han pasado desde el reinicio. utime - tiempo de usuario usado por el proceso actual. stime - tiempo de sistema usado por el proceso actual. cutime - tiempo de usuario usado por el proceso actual e hijos. cstime - tiempo de sistema usado por el proceso actual e hijos. posix_ttyname Determina el nombre del dispositivo terminal. Necesita ser escrito. posix_uname Consigue el nombre del sistema.

Compatibilidad
Los siguientes Sistemas Operativos son 100% compatibles con uno o varios estndares POSIX. 1. A/UX 2. AIX 3. BSD/OS 4. DSPnano 5. HP-UX 6. INTEGRITY 7. IRIX 8. LynxOS 9. Mac OS X v10.5 en Procesadores Intel. 10. MINIX 11. MPE/iX 12. QNX (IEEE Std. 1003.13-2003 PSE52; 13. RTEMS (POSIX 1003.1-2003 Profile 52) 14. Solaris 15. Unison RTOS 16. UnixWare 17. velOSity 18. VxWorks (IEEE Std. 1003.13-2003 PSE52;

POSIX para Windows


Cygwin ofrece un desarrollo en gran parte compatible con

POSIX y un entorno de ejecucin para Microsoft Windows. Microsoft POSIX subsystem, un subsistema opcional Windows Windows Services for UNIX de Microsoft permite una plena compatibilidad POSIX para ciertos productos de Microsoft Windows. Los sistemas operativos basados en Windows NT hasta Windows 2000 tenan una interfaz POSIX incorporada en el sistema operativo y los Servicios UNIX para Windows brindaban un entorno del tipo UNIX. Para Windows XP, los Servicios UNIX para Windows deben de instalarse para que exista compatibilidad POSIX. El subsistema UNIX est incorporado a las ediciones Enterprise y Ultimate de Windows Vista y 7, y no pueden ser agregados en forma separada a las otras ediciones.. UWIN de AT&T Research implementa una capa POSIX sobre la interfaz de programa de aplicaciones (API) de Win32. MKS Toolkit.

También podría gustarte