Saltar al contenido principal

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:

  1. Kernel (Núcleo): La parte central del sistema operativo que gestiona directamente los recursos de hardware.
  2. System Call (Llamada al Sistema): El mecanismo mediante el cual un programa solicita un servicio al Kernel.
  3. Shell (Intérprete de Comandos): Una interfaz de usuario para acceder a los servicios del sistema operativo.
  4. 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.
  5. 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;
}

Diagrama de capas: Usuario -> Shell -> API -> System Call -> Kernel -> Hardware

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.