Interfaces in computing

Completed

A system (or subsystem) interface is defined as a set of function calls that allow users to leverage the underlying system's functionalities without needing to know any of its details. The two most popular interfaces in systems are the application programming interface (API) and the instruction set architecture (ISA) interface. Another interface that is less popular yet important (especially in virtualization) is the application binary interface (ABI). The following video describes API, ISA, and ABI.

As explained in the video, an API is used by high-level language programmers to invoke some library or OS features. An API includes data types, data structures, functions, and object classes, to mention a few. An API enables compliant applications to be ported easily (via recompilation) to any system that supports the same API. An API defines an interface to a software layer, i.e., from and to source code. An ABI, on the other hand, defines an interface at the binary level. In other words, the ABI is essentially a compiled version of the API. Hence, the ABI lies at the machine language level. With ABI, system functionalities are accessed through OS system calls. OS system calls provide a specific set of operations that the OS can perform on behalf of user programs. A source code compiled to a specific ABI can run unchanged only on a system with the same OS and ISA. Finally, the ISA defines a set of storage resources (e.g., registers and memory) and a set of instructions that perform arithmetic, control program execution, and allow manipulating data held in storage resources. ISA lies at the boundary between hardware and software. As discussed later in the unit, ABI and ISA are important in defining virtual machine types.

Check your knowledge

1.

The definition of the memory resources and the instructions that manipulate them are documented in the:

2.

The actual mechanisms by which the operating system communicates with the underlying hardware in order to carry out its requested services and resource management decisions are included in the: