Llamadas al sistema, arquitecturas y API
Cada familia de sistemas operativos provee distintas llamadas al sistema,
y sus lenguajes/bibliotecas implementan distintos API. Esto es el que distingue principalmente a uno de otro. Por ejemplo, los sistemas Windows 95 en
adelante implementan Win32, Win16 (compatibilidad con Windows previos) y
MS-DOS; MacOS implementa Cocoa (aplicaciones MacOS X) y Carbon (compatibilidad con aplicaciones de MacMACOS previos), y Linux, los BSDS, Y VARIOS
OTROS SISTEMAS, *POSIX (el estándar que define a Unix). El caso de MacOS X es
interesante, porque también implementa POSIX ofreciendo la semántica de dos
sistemas muy distintos entre sí.
Depuración por trazas (trace)
La mayor parte de los sistemas operativos ofrecen programas que, para fines de depuración, envuelven al API del sistema y permiten ver la traza de las
llamadas al sistema que va realizando un proceso.
Referencia a los componentes
Si bien el sistema operativo tiene por misión abstraer y ocultar los detalles
de los dispositivos, también debe exponer una interfaz para poder emplearlos
y administrarlos.
Unix introdujo el concepto de que todo es un archivo: en el sistema Unix original, todos los dispositivos podían ser controlados por medio de un archivo
especial que, en vez de almacenar información, apunta a estructuras en el sistema que controlan a cada dispositivo.
Dispositivos de caracteres
Son aquellos en los cuales la información es leída o
escrita de a un caracter a la vez y se presentan como streams (flujos) de información, ya sea entrantes, salientes o mixto.
Dispositivos de bloques
Presentan una interfaz de acceso aleatorio y entregan
o reciben la información en bloques de tamaño predeterminado. El ejemplo más claro de este tipo de dispositivos es una unidad de disco o una
de sus particiones.