El término "controlador de gráficos" se utiliza para referirse a varias cosas diferentes. Uno de ellos es un controlador de kernel. El controlador del núcleo en su mayoría solo establece el modo de video y facilita el paso de datos a / desde la tarjeta. También suele descargar el firmware en la GPU de la tarjeta. El firmware es un programa que ejecuta la GPU, pero desafortunadamente, los proveedores de gráficos solo lo proporcionan como un blob binario, por lo que no puede ver su código fuente.
Por encima de eso, generalmente tiene Xorg ejecutándose, que tiene su propio controlador que traduce las llamadas de dibujo genéricas X11 u OpenGL en comandos que la tarjeta comprende y los envía a la tarjeta para ejecutarlos. También puede hacer parte del trabajo en sí mismo dependiendo de los comandos que el gpu admite y no admite. En el caso de las llamadas OpenGL, la Infraestructura de renderizado directo permite que esta parte del controlador se ejecute directamente en la aplicación del cliente en lugar del servidor X, para obtener un rendimiento aceptable. También permite que el controlador en la aplicación cliente envíe sus comandos directamente a la gpu, gracias a la coordinación y la ayuda de Xorg y el controlador del kernel al inicio.
Se supone que Wayland y Mir reemplazarán a Xorg como un tipo simplificado de servidor de visualización.
Unity es tanto un shell (proporciona escritorio / lanzador) como un administrador de ventanas de composición en uno.
GNOME y KDE son entornos de escritorio. Son grandes proyectos que constan de muchos componentes. El núcleo de ellos son sus respectivos kits de herramientas de aplicación, que son GTK para GNOME y Qt para KDE. Este es un marco de biblioteca con el que se escribe una aplicación y proporciona la base sobre la cual se construye todo lo demás. Algunos de los servicios básicos que proporcionan son manejo de eventos y objetos, Windows, funciones básicas de dibujo, E / S y mucho más.