Subsistema
# Subsistema

En Informática, un subsistema es un sistema que, si bien se ejecuta sobre un sistema operativo, este puede ser un shell (intérprete de comandos) del sistema operativo primario o puede ser que sea una máquina virtual, en algunas ocasiones.

## Intérprete de comandos

Un intérprete de comandos es una interfaz de consola que puede interpretar uno o varios comandos por línea, este tipo de interfaz es muy utilizada por administradores de redes o usuarios de UNIX (sistema operativo en el cual el intérprete de comandos cumple un papel fundamental), en Windows, el intérprete de comandos por defecto es el símbolo del sistema, un subsistema que se encarga de ejecutar archivos de 16 bits y es utilizado también como cliente telnet por defecto en Windows.

## Máquina virtual

Una máquina emula el kernel del sistema operativo o se basa de algunas librerías incluidas en su instalación para el cual una aplicación está destinada, de esta forma los problemas de compatibilidad son solucionados o notablemente reducidos.

### Solucionando problemas de compatibilidad

La máquina virtual "transforma" (mediante un algoritmo) las instrucciones del programa en memoria o se basándose en algunas librerías del paquete de la instalación de la misma para que el sistema operativo logre comprender dichas instrucciones.

**Ejemplo (en pseudocódigos)**

Problema de compatibilidad:

El programa le indica al sistema operativo que escriba "Hola" y el sistema operativo devuelve un dato arbitrario.

Solución A (Emulación):

Entonces al ejecutar el programa sucede esto:

El sistema operativo responde perfectamente ante el programa porque la instrucción ha sido emulada en memoria.

Solución B (Librería):

Contenido de la librería "A":

Entonces al ejecutar el programa sucede esto:

El kernel del sistema operativo ha heredado la equivalencia a la instrucción del programa de la librería "A".

