Documentos de Académico
Documentos de Profesional
Documentos de Cultura
• ABI: Application Binary Interface: Al igual Las librerías de C, como ‘stdio’ son una de las partes
que la API permite el acceso desde el propio principales en la programación en kernel de Linux
código de alto nivel, la ABI permite el acceso que dan acceso a servicios de núcleo. La más
a rutinas y a estructuras de datos desde un conocida es glibc, que aparte de implementar la
código de tan bajo nivel como es el binario. librería estándar de C, también proporciona wrappers
Un código compilado en API asegura para llamadas del sistema, soporte para acceso a hilos
compatibilidad, mientras que uno en ABI y acceso a memorias.
puede ser compatible directamente sin tener El compilador de C, en Linux conocido como GNU
que ser recompilado con otro sistema que Compiler Collection, gcc, que ayuda a implementar
comparta ABI y librerías. los estándares de C y las ABIs del sistema
II. HISTORIA
- networking
Sin embargo, POSIX y la IEEE tenían un problema y
es que eran de pago. Por tanto, el Open Group
- regular expressions
(consorcion de la industria en favor del software
libre) desarrolló la Single UNIX Specification,
- Gestión avanzada de memoria: mmap,
conocida por sus siglas SUS, que se hizo rápidamente
mlock, mprotect y madvise
famoso por ser libre. Hoy en día, POSIX se encuentra
incluido en SUS, cuya última versión data del año
Estas APIs tamién determinan los conceptos
2008.
subyacentes del sistema del que dependen. Hay
muchas llamadas a Linux para implementar alguna
III. ESTADO DEL ARTE función API Posix C específica y cumplir con los
procesos Linux como sys_write, sys_read,...
La relevancia de POSIX en la actualidad es total. La
capacidad que tiene de ofrecer una mayor facilidad
para el desarrollo y porteado de las aplicaciones. Las 2. Utilidades CLI
interfaces son ampliamente implementadas y
referenciadas en otros intentos de estandarización, Como por ejemplo los comandos: cd, ls, echo, etc.
pues es la norma que seguir. De hecho, en desarrollos Muchas de estas utilidades son interfaces directas del
actuales de sistemas empotrados, dispositivos shell para una función de la API C correspondiente.
móviles Android, dispositivos de red (routers),
servidores y Workstation, hasta supercomputadores. También tenemos importantes implementaciones
sobre lo que es el escritorio en Linux, como GNU
Coreutils para proyectos pequeños y la
A. POSIX 4.2 define: implementación de utilidades CLI integradas con el
Bash.
1. C API
126: comando encontrado pero no puede ser - solo podrá contener caracteres como: a-zA-Z0-
ejecutado 9 ._-
127: comando no encontrado
128: comando terminado por una señal
9. Utilidades de la línea de comandos usadas de
forma convencional por la API
6. Expresiones regulares
Por ejemplo, podemos destacar:
Tenemos dos tipos: BRE(Básico) y ERE(extendido).
La primera actualmente se encuentra en desuso y - '-' significa donde se debe esperar un
solo es mantenida dentro de la API. archivo.
Estas expresiones son implementadas por funciones - '--' usado como fin de los flags.
de la API C y usadas por medio de las utilidades de
CLI como grep
Esto se encuentra implementado en los sistemas
actuales basados en Unix, donde gran parte de las
7. Estructura de directorios funciones aquí mencionadas son parte esencial del
comportamiento básico del sistema, sobre todo del
POSIX es ampliado enormemente por medio de Shell de comandos, herramienta principal para
Linux FHS. cualquier programador y desarrollador de la
Por ejemplo: /dev, /tmp, /null, etc plataforma para los que las APIs del sistema son
esenciales pues les facilitan el empleo de estas
herramientas.
UnixWare SkyOS
Compatibilidad de POSIX en distintos SSOO
Syllable
VelOSity
Mayoritariamente
Totalmente compatibles
compatibles (no
(de forma oficial) VxWorks Windows
certificados oficialmente)
A/AUX BeOS
AIX FreeBSD
BSD/OS GNU/Linux
HP-UX Contiki
INTEGRITY NetBSD
LynxOS OpenBSD
MAC OS X OpenSolaris
MINIX PikeOS
MPE/iXa RTOS
Solaris RTEMS
Aquí podemos apreciar un ejemplo en pseudocódigo de una API de Linux la cual es una rutina que se encarga
de realizar manipulaciones de cadenas de strings. Es una implementación de los estándares de C en la librería
string.h:
Description:
Here are some standard string manipulation functions: