¿Cuál es el nivel más bajo de abstracción de GUI en Linux?

El dibujo del monitor / pantalla se maneja en hardware mediante una tarjeta de video / GPU / procesador de video. Hay casos especiales en los que una CPU y una GPU están en un solo dado, fusionados (chips Intel serie i, por ejemplo) pero funcionalmente la GPU y la CPU son visibles de manera diferente para el núcleo.

El núcleo se comunica con la GPU por medio de un controlador. Por ejemplo, Radeon, Fglrx, Nouveau. Las diferentes tarjetas y los diferentes controladores admiten diferentes funciones (por ejemplo, OpenGL, KMS, etc.) en diferentes niveles. Las GPU también pueden tener una interfaz binaria de aplicación (ABI) para comunicaciones / comandos que un programa (Xorg) puede necesitar enviar.

Xorg puede dibujar en una estructura en memoria llamada framebuffer y subirlo al kernel, que a su vez puede pedirle a la GPU que lo dibuje en la pantalla de hardware real, o Xorg puede convertir lo que necesita para pintar / dibujar en una tarjeta específica comandos (del ABI) y solicite al kernel que pase estos comandos a la tarjeta.

El último método es cómo funciona la aceleración de hardware. Xorg usa una biblioteca llamada libdrm (DRM: Direct Rendering Manager) para pasar estos comandos al kernel.

More Interesting

¿Cuáles podrían ser algunos nombres geniales de códigos de versión de software?

¿Cuáles son los mejores bootcamps de análisis / ingeniería de big data en SF?

¿La introducción de herramientas de programación informática más sofisticadas reducirá la necesidad de conjuntos de habilidades de matemáticas e informática para la mayoría de los puestos de TI?

¿Por qué usaría o no utilizaría Mendix o OutSystems para el desarrollo rápido de aplicaciones comerciales?

¿Cuáles son algunas de las mejores prácticas para la ingeniería de lanzamiento con un programa multiplataforma de Unix?

Estoy estudiando ingeniería civil, ¿cuál es el software más exigente que debo aprender?

¿Los principales desarrolladores de software se quedan en Singapur? Si es así, ¿a dónde van?

¿Qué haría que trabajar en Palantir fuera mejor para los FDE?

¿Qué debe hacer si ve que su colega está cometiendo un código realmente malo para el proyecto y a su gerente no le importa?

¿Puede un probador de software (pruebas de automatización) ganar más de 10-15 lacs por año dado que tiene el conjunto requerido de habilidades y experiencia?

¿Qué deben saber todos los ingenieros de software integrados?

¿Qué tipo de mentores han tenido las personas en una carrera de ingeniería de software?

¿Qué software de monitoreo de empleados de código abierto es gratuito (o realmente barato)?

¿Necesita la aprobación de la FDA para desarrollar software para Emotiv EPOC?

¿Tengo que presentar una patente para mi aplicación una vez que la inicie?