2.2. Mecanismos indirectos
Material de estudio basado en la edición de 2014. Borrador pendiente de revisión editorial independiente.
Mecanismos indirectos de entrada al SO
Biblioteca del sistema
Desde el punto de vista del programador, los traps tienen un gran problema: no son portables porque dependen del lenguaje maquina del procesador. La solucion es la biblioteca del sistema, que permite expresar de forma estandar las llamadas al sistema.
Ejemplo en Unix: la rutina write de la biblioteca invoca la llamada al sistema usando la instruccion int de la arquitectura correspondiente (IA-32, Alpha, etc.). El programador la usa como una rutina normal de C, sin conocer los registros ni instrucciones especificas de cada arquitectura.
Bibliotecas del lenguaje
Ofrecen servicios mas proximos a las necesidades del programador. Ejemplo: en Unix las llamadas read/write trabajan con bytes, pero la biblioteca stdio de C ofrece printf y scanf con formato.
La biblioteca del lenguaje tambien ofrece rutinas que no usan llamadas al sistema: funciones trigonometricas, generadores de numeros pseudoaleatorios y manipulacion de cadenas.
Aplicaciones
Los usuarios no programadores resuelven sus necesidades con aplicaciones ya implementadas (como el pedido cp en Unix). Estas aplicaciones estan construidas usando llamadas al sistema y bibliotecas del lenguaje y del sistema.
La capa de aplicaciones ofrece crear/borrar/renombrar/copiar ficheros, ordenacion, informacion del sistema, gestion de procesos, entre otros.
Esquema de repaso
- Biblioteca del sistema: portabilidad de llamadas al sistema entre arquitecturas.
- Bibliotecas del lenguaje: servicios de alto nivel (printf, funciones matematicas).
- Aplicaciones: herramientas precompiladas que usan las capas inferiores.
Debes poder explicar
- Por que la biblioteca del sistema resuelve el problema de portabilidad.
- Diferencia entre biblioteca del sistema y del lenguaje.
- Como se construyen las aplicaciones de sistema.