Interfaces de Sistema Operativo
Interfaces de Sistema Operativo
Para que un programa o un usuario puedan interactuar con el hardware, el Sistema Operativo actúa como un mediador a través de diversos niveles de abstracción. En esta lección, definiremos los mecanismos que permiten esta comunicación.
Utilizaremos estos 5 términos clave:
- Kernel (Núcleo): La parte central del sistema operativo que gestiona directamente los recursos de hardware.
- System Call (Llamada al Sistema): El mecanismo mediante el cual un programa solicita un servicio al Kernel.
- Shell (Intérprete de Comandos): Una interfaz de usuario para acceder a los servicios del sistema operativo.
- API (Interfaz de Programación de Aplicaciones): Un conjunto de funciones que permite a los programadores interactuar con el sistema sin conocer los detalles internos.
- Driver (Controlador): Software específico que permite al sistema operativo comunicarse con un hardware determinado.
Niveles de Interacción
La interacción comienza desde el usuario a través de un Shell (Intérprete de Comandos) o una interfaz gráfica. Sin embargo, cuando un programa necesita realizar una tarea crítica (como escribir en el disco), debe realizar una System Call (Llamada al Sistema).
// Ejemplo conceptual de una System Call en C para leer un archivo
#include <unistd.h>
int main() {
char buffer[100];
// La función read() es un envoltorio de una System Call
read(0, buffer, 100);
return 0;
}

El rol de la API y el Driver
Los programadores rara vez escriben una System Call (Llamada al Sistema) directamente; en su lugar, utilizan una API (Interfaz de Programación de Aplicaciones) como POSIX o Win32, lo que facilita la portabilidad. Finalmente, el Kernel (Núcleo) utiliza un Driver (Controlador) para traducir esas órdenes en señales eléctricas comprensibles por el hardware.