Lanzador de programas
Un lanzador de programas es la parte del sistema operativo que permita a un usuario ejecutar un programa, dicha ejecución resulta en un proceso. En inglés reciben del nombre de shell. Según la manera de interacción con el usuario, se clasifican en tres tipos:
Lanzadores de programas textuales
Estos lanzadores requieren que el usuario introduzca el nombre del programa (también referido en la literatura como "comando") mediante texto escrito en el teclado, generalmente desde un terminal. El usuario debe recordar el nombre exacto del programa a ejecutar así como las opciones que modifican su comportamiento.
Por ejemplo, en sistemas Linux, se puede ejecutar un navegador web tecleando firefox --private-window para abrirlo en modo privado. Se trata de una interfaz orientada a usuarios avanzados, permite programabilidad mediante scripts.
Este lanzador es ideal para actividades administrativas que impliquen la configuración y la recuperación del sistema operativo.
En la actualidad incluyen funciones de autocompletado mediante inferencia que mejoran su usabilidad, por ejemplo, el usuario escribe fire pulsa la tecla de tabulación y se completa automáticamente a firefox. En caso de múltiples coincidencias, muestra las opciones de autocompletado posibles al usuario.
Lanzadores de programas gráficos
Los lanzadores de programas gráficos más populares están basados en ventanas solapadas. Permiten seleccionar programas mediante iconos, menús y barras de tareas, utilizando el ratón para ello. Además de iniciar programas, suelen ofrecer funciones para cerrarlos, minimizarlos así como redimensionar el tamaño de la ventana. Ofrecen facilidad de uso para usuarios no avanzados. Ejemplo: El menú de inicio de Windows.
Lanzadores por reconocimiento de voz
Representan la evolución más reciente, permitiendo interactuar con el sistema operativo mediante la voz del ser humano. El usuario dice una acción, por ejemplo "Reproducir música" y el lanzador infiere el programa que se ejecuta. Son los más intuitivos pues se acercan a la comunicación humana en lenguaje natural. Asistentes virtuales como Siri, Cortana, Google Assistant.
Todos los lanzadores de programas anteriormente mencionados son procesos de usuario que operan en modo no privilegiado de la CPU. Esto significa que, aunque son parte del sistema operativo, hacen uso de la API de llamadas al sistema operativo para lanzar programas.
En general, a mayor cercanía con el ser humano, mayor complejidad en la implementación del lanzador de aplicaciones, por lo la implementación del lanzador de aplicaciones