Interfaces en informática
- 3 minutos
Una interfaz del sistema (o subsistema) se define como un conjunto de llamadas de función que permiten a los usuarios utilizar las funcionalidades del sistema subyacente sin necesidad de conocer ninguno de sus detalles. Las dos interfaces más populares en los sistemas son API (interfaz de programación de aplicaciones) e ISA (arquitectura de conjunto de instrucciones). Otra interfaz no tan popular, pero también importante sobre todo en la virtualización, es ABI (interfaz binaria de aplicación). En el vídeo siguiente se describen API, ISA y ABI.
Como se indica en el vídeo, los programadores de lenguaje de alto nivel usan una API para invocar algunas características de la biblioteca o del sistema operativo. La API incluye los tipos de datos, las estructuras de datos, las funciones y las clases de objeto, entre otras cosas. Una API permite portar fácilmente las aplicaciones compatibles (a través de la recompilación) a cualquier sistema que admita la misma API. Una API define una interfaz hasta una capa de software, es decir, desde y hasta el código fuente. Por otro lado, una ABI define una interfaz en el nivel binario. En otras palabras, la ABI es básicamente una versión compilada de la API. Por lo tanto, la ABI se encuentra en el nivel de lenguaje de máquina. Con la ABI, el acceso a las funcionalidades del sistema se realiza a través de llamadas del sistema operativo. Las llamadas del sistema operativo proporcionan un conjunto específico de operaciones que el sistema operativo puede realizar en nombre de los programas de usuario. Un código fuente compilado en una ABI específica solo se puede ejecutar sin cambios en un sistema con el mismo sistema operativo e ISA. Por último, la ISA define un conjunto de recursos de almacenamiento (por ejemplo, registros y memoria) y un conjunto de instrucciones que realizan operaciones aritméticas, controlan la ejecución de programas y permiten manipular los datos almacenados en los recursos de almacenamiento. La ISA se encuentra en el límite entre el hardware y el software. Como se indica más adelante en la unidad, la ABI y la ISA son importantes para definir tipos de máquinas virtuales.