PDF de programación - x.org en segunda marxa

Imágen de pdf x.org en segunda marxa

x.org en segunda marxagráfica de visualizaciones

Publicado el 14 de Enero del 2017
520 visualizaciones desde el 14 de Enero del 2017
1,1 MB
31 paginas
Creado hace 14a (10/11/2009)
X.org en segunda marcha

Franco Catrin Leiva - TUXPAN Software / Editor de FayerWayer

 

 

Temas

 Pre-Historia : X Window System / Xfree 86
 X.org en primera : La deuda histórica
 X.org en segunda : Buscando la perfección
 Futuro : La innovación

Pre-Historia : X Window System / Xfree 86

 

 

X Window System

X Window System

 Sistema gráfico independiente de la plataforma
 Se inicia en 1984 en el MIT con Jim Gettys
 En 1987 llega a la versión actual : 11
 Compatible con “clientes livianos”
 Definido por X Consortium : Todos menos Sun
 Licenciado bajo MIT

 No hay énfasis en compartir
 Cada empresa tenía su fork
 Los parches no regresaban al proyecto

X Window System se abre

 X era previo a GPLv1
 Richard Stallman insistía en que cambiaran la

licencia

 Jim Gettys convenció a DEC a abrir el proyecto
 Finalmente absorbieron a Sun con un nuevo

“estándar de la industria”

XFree86

 Se inicia en 1992 : X Window System para 386

 X 386 → X Three 86 → X Free 86

 Linux lo hizo popular y se convirtió en la

implementación más desarrollada

 Sin embargo, la innovación se estancó a fines de los

'90

El fin de XFree86

 En el Core Team habían discrepancias sobre la

dirección del proyecto

 Keith Packard pensaba que faltaba mucho por hacer,

pero no tenía el apoyo en la organización

 Keith Packard es expulsado del Core Team por

“actitudes sospechosas”

 El Core Team finalmente se desbanda
 Se inicia X.org como un proyecto independiente o

fork, liderado por Keith Packard

X.org en primera: La deuda histórica

 

 

Problemas presentes en X

 X estaba diseñado para un hardware que ya cambió
 El sistema de fonts era inadecuado

 Fonts en el servidor se tenían que descargar al cliente
 Antialias era muy costoso
 Font Servers fueron sólo un parche
 Unicode : Imposible

 Operaciones complejas como blending eran

demasiado caras de implementar e imposibles de
acelerar

Keith Packard y sus ideas

 Fonts en el cliente
 Extensión RENDER (blending/antialias)
 Cambio en el modelo de composición
 Resize and Rotate (RANDR) Extension

 Cambiar resolución on-the-fly
 Cambiar orientación
 Configurar salidas alternativas

Aceleración en X

 DIX : Device Independant X
 DDX : Device Dependant X
 DDX Se ejecuta en user space
 XAA : X Acceleration Architecture

 Operaciones 2D principalmente
 Dependiendo del driver, usaba aceleración completa,

parcial o sólo render por software

 En algunos casos puede ser muy rápido
 No apta para RENDER

Aceleración en X con XAA

X

XAA

DDX

Comandos

SW Render

Kernel

Memoria / MMIO

Direct Rendering Infrastructure

 X envía comandos directos al hardware
 Requiere un módulo en el kernel : DRM
 X → DRI → DRM → Comandos al hardware
 Complejidad limitada : puede botar el kernel
 Usado principalmente en operaciones 3D

Aceleración en X con DRI

X

DDX

SW Render

Kernel

Mem / MMIO

DRI

DRM

EXA Acceleration Architecture

 Reemplaza a XAA
 Se originó en Kdrive: X Server experimental de Keith

Packard

 Diseñada con RENDER en mente
 Limitada a operaciones 2D
 Usa grandes cantidades de VRAM → Swap

 Requiere un gestor de memoria
 Cada driver necesita su propio gestor de memoria
 Requiere copiar RAM ← → VRAM

Composite Extension

 Otra idea de Keith Packard!
 Composite Manager dibuja el contenido de las

ventanas en el escritorio

 Puede aplicar todo tipo de transformaciones : 2D y

3D

 Xcompmgr : Primer Composite Manager

 Sombras/Transparencias necesitaban RENDER

 Compiz : Primer Composite Manager 3D famoso

 Requiere aceleración 3D

Compiz presiona los cambios

 Desarrollado bajo el alero de Novell
 Inicialmente funcionaba sobre XGL

 Compiz → XGL → OpenGL → X Server tradicional
 Todo es una textura
 Reproducción de video era impráctica

 Surge AIGLX desde Red Hat y NVIDIA

 Para qué hacer un nuevo X?
 X Server tradicional + GL_EXT_texture_from_pixmap

Segunda marcha : Buscando la perfección

 

 

Problemas en X.org

 EXA requiere mucha memoria y un gestor de

memoria
 Un gestor de memoria por cada driver dificulta su desarrollo
 Se deben copiar bloques de memoria RAM ← → VRAM
 Mantener el estado del hardware en X dificulta

suspend/resume de la máquina

 La consola, X y cualquier otra aplicación gráfica

deben pelear por acceder al hardware
 Se debe apagar una para usar otra

Gestión de memoria en el kernel

 Intel desarrolla GEM : Graphics Execution Manager
 Es un gestor de memoria en el kernel: Fuera de X
 No usa paginación sino que “buffer objects”
 Permite trabajar en RAM normal y GEM mapea

automáticamente a VRAM. Sin copiar

UXA Acceleration

 UXA = EXA + GEM
 EXA necesitaba copiar de RAM ← → VRAM.
 UXA permite usar memoria de sistema y GEM la

mapea a VRAM : Sin copiar

 UXA es básicamente EXA sin el trabajo innecesario al

tener GEM

DRI2

 En DRI1 cada aplicación accede a un conjunto

compartido de buffers

 Cada aplicación gestionaba el swap en su buffer
 Cuando una aplicación usaba su buffer, bloqueaba

todas las demás

 DRI2 provee buffers privados e independientes para

cada aplicación

 En DRI2 no se requiere usar bloqueo

DRI1

App1

App2

Lock

Buffer1

Buffer2

Buffer3

Buffer4

DRI2

App1

App2

Buffer1

Buffer2

Buffer3

Buffer4

Video Mode Setting

 DRM ahora puede tomar mayor control del hardware
 Cambio de modo de video lo realiza el kernel
 No hay que apagar aplicaciones para acceder al

video

 Si el modo solicitado es el mismo, no se cambia
 Disminuye el parpadeo
 Facilita el desarrollo de nuevos sistemas gráficos o

aplicaciones fullscreen

Kernel Video Mode Setting

Consola

X.org

Wayland

Kernel / DRM / GEM

800x600

1024x768

El Futuro : La innovación

 

 

Wayland

 Sistema gráfico simple, no compatible con X
 Se apoya en GEM y Kernel Mode Setting
 Ya no es tan complejo hacer un sistema gráfico
 X puede correr al interior de Wayland

Gallium 3D

 API gráfica portable para distintos sistemas

operativos

 Permite reducir la complejidad de los drivers
 App → API → State Tracker → Driver → WinSys → HW
 App → OpenGL → State Tracker → i945 → WinSys →

DRI

 App → DX → State Tracker → i945 → WinSys → HW

Consultas
  • Links de descarga
http://lwp-l.com/pdf1582

Comentarios de: x.org en segunda marxa (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad