Camada gráfica do Linux: da introdução à sua primeira contribuição. Paulo Zanoni paulo.r.zanoni@intel.com



Documentos relacionados
X Windows System. - É um sistema de Janelas com arquitetura clienteservidor criado nos anos 80 no MIT.

Sistemas Embarcados Android

Sistemas Embarcados Android

Como contribuir com projetos de software livre

Sistemas Operacionais

Como contribuir com projetos de software livre

Linux System Administration 455

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

Plasma Active. Thiago Macieira

Introdução aos Sistemas da InformaçãoAula 4 p. 1

Introdução Dalvik Linux 2.6. Android. Diogo de Campos, João Paulo Pizani Flor, Maurício Oliveira Haensch, Pedro Covolan Bachiega

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Modo Gráfico x Modo Texto Prof. João Paulo de Brito Gonçalves

6 - Gerência de Dispositivos

Detecção e configuração automática de hardware para ambientes multiterminais

Sistemas Distribuídos

Trilha Agile TDD e 20 coisas que você precisa saber

Capítulo 20 Servidor X


Instalando o Mandriva 2006

SISTEMAS OPERACIONAIS

Um Driver NDIS Para Interceptação de Datagramas IP

Fundamentos de Sistemas Computacionais Introdução

Atualizações na LPIC. por Luiz Carlos Guidolin

O modelo do computador

ESTUDO DE CASO WINDOWS VISTA

QCON RIO 2015 Desenvolvimento para Windos 10. Alexandre

COLABORANDO COM O GNOME Aprendendo os primeiros passos de como colaborar com o projeto GNOME

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Introdução a Sistemas Abertos

Recomendações de Uso de Aquisição do Digifort Analítico

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Visão geral Estrutura do sistema Ferramentas de desenvolvimento Uma aplicação. Android. Universidade Federal de Santa Catarina. 17 de dezembro de 2008

Otimizações do GCC para Processadores Intel. Rodrigo Vivi - FISL13

MÓDULO MULTIMÉDIA. Text PROFESSOR: RICARDO RODRIGUES. MAIL: URL:

16:21:50. Introdução à Informática com Software Livre

Universidade Federal de Goiás. Alexandre Ferreira de Melo CERCOMP / UFG

Esclarecimento: Não, a operação de matching ocorre no lado cliente da solução, de forma distribuída.

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Guia de Especificação. Vijeo Citect

Android. Marcelo

UDPcast Clonagem de HDs via rede utilizando

GUIA DE CONSULTA RÁPIDA PARA. Instalação do Nokia Connectivity Cable Drivers

Apontamentos do livro de AI Linux. 1.5 Modo texto e modo gráfico

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Abel J. P. Gomes. Março, 2012

Desenvolvimento para Sistemas Embarcados (CEA 513) Conceitos Gerais

Software Básico (INF1018)

Lição 1 Introdução à programação de computadores

Um modelo de computação multiusuário baseado em computadores pessoais

JVM s Livres. Paloma Costa. javawoman@portaljava.com.br

FUNDAMENTOS DE HARDWARE COMO FUNCIONA UM PC? Professor Carlos Muniz

GUIA DE CONSULTA RÁPIDA PARA. Instalação do Nokia Connectivity Cable Drivers

Sistemas Operacionais. Estruturas de SO. Edeyson Andrade Gomes.

Sistemas Operacionais II. Prof. Gleison Batista de Sousa

Computadores de Programação (MAB353)

Linux pra mim, Linux pra você!

Calibração Touch Linux

Considerações no Projeto de Sistemas Cliente/Servidor

Infra-Estrutura de Software. Introdução. (cont.)

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

O que é um aplicativo?

Universidade da Beira Interior

SOFTWARE LIVRE. Distribuições Live CD. Kernel. Distribuição Linux

Plano de Gerenciamento do Projeto

Sistemas Operacionais Entrada / Saída. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)

Manual do KCM Tablet. Jörg Ehrichs Tradução: Marcus Gama Tradução: André Marcelo Alvarenga

Computação II Orientação a Objetos

Informática. Aula 03 Sistema Operacional Linux. Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Campus Currais Novos

Conectar o Nokia 6600 a Internet utilizando a conexão do PC (ADSL) pelo Bluetooth sem Proxy

Correndo aplicações remotas com o X11. O conceito de display. LinuxFocus article number Abstract:

GERENCIADOR DE CORREIO ELETRÔNICO (V. 2 26/04/2010)

Computador = Hardware + Dados

Como instalar Windows XP

X3DOM E WEBGL: O 3D INDEPENDENTE NA WEB

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

PARANÁ GOVERNO DO ESTADO

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

Estudar e trabalhar com o Ubuntu Linux 12.04

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Sistemas Operacionais Introdução

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

Prof. Fernando V. Paulovich 3 de maio de SCC Computação Gráca

O que é o Android? O que é o Android

Manual do Usuário Android Neocontrol

Apresentação da disciplina. Sistemas Operacionais I N. A disciplina. O Professor. Áreas de atuação na pesquisa. Referências bibliográficas básicas

Digifort Mobile Manual Version 1.0 Rev. A

Redes de Computadores


O Servidor de impressão DP-301U atende a seguinte topologia: Com o DP-301U pode ser conectada uma impressora USB.

FANESE Faculdade de Administração e Negócios de Sergipe

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS. Prof. Angelo Augusto Frozza, M.Sc.

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

Procedimento para instalação. Importante

Transcrição:

Camada gráfica do Linux: da introdução à sua primeira contribuição Paulo Zanoni paulo.r.zanoni@intel.com

Quem sou eu? Intel Mandriva C3SL M.Sc. & B.Sc. UFPR 2 SSG System Software Division

Sumário 1. O que é um driver de vídeo? Como ele funciona? 1. X 2. 3D 3. 2D 4. Composite 5. KMS 6. Wayland 7. VA-API 2. Qual o estado atual? 3. Como posso ajudar? 4. Perguntas? 3 SSG System Software Division

O que é um driver de vídeo? Como ele funciona? 4 SSG System Software Division

X Window System 1984! Protocolo Cliente/Servidor Funciona pela rede! Servidores Xorg Driver DDX (xf86-video-intel) Xnest, Xephyr, Xdmx Clientes Apps & Window Manager Xlib & XCB Toolkits Driver de vídeo: DDX 5 SSG System Software Division

Sopa de letrinhas X11: protocolo X versão 11 Xlib: X11 library (biblioteca) X.org: fundação Xorg: servidor (/usr/bin/xorg) DDX driver: Device Dependent X driver XCB: X protocol C language Binding WM: Window Manager 6 SSG System Software Division

3D OpenGL: API Mesa: implementação do OpenGL (1993) GLX: extensão do protocolo X libgl: fruto da compilação do Mesa 7 SSG System Software Division

3D OpenGL: API Mesa: implementação do OpenGL (1993) Código pra HW específico + fallback em software GLX: extensão do protocolo X DRI: Direct Rendering Infrastructure (1998) DRM: Direct Rendering Manager drm.ko, i915.ko libdrm: envólucro para as ioctls do DRM libgl: fruto da compilação do Mesa Driver de vídeo: DDX + módulo DRM + backend Mesa + parte da libdrm 8 SSG System Software Division

2D X Render (2000) Fontes bonitas Transparência Anti-aliasing Cairo XAA (1996) EXA (2005) UXA (2008), Glamor (2011), SNA (2011) 9 SSG System Software Division

Composite 2004 Off screen rendering Transformações Compositor Coisas bonitas! 10 SSG System Software Division

Kernel Mode Setting 2007 Kernel do Linux controla os modos de vídeo (resolução) Mais código do driver vai para o Kernel Melhora: Suspend/Resume Debug Suporte a usuários não-x Troca de VT DDX torna-se 2D somente 11 SSG System Software Division

Wayland 2008 Problemas: Compositor fora do X X pode ser menor Wayland: Protocolo Biblioteca Compositor Display server Sem renderização no servidor! Weston Curitiba! 12 SSG System Software Division

Video Acceleration API 2007 Biblioteca genérica para encode/decode de vídeo Driver backends Driver de vídeo: DDX + módulo DRM + backend Mesa + parte da libdrm + backend libva 13 SSG System Software Division

Qual o estado atual? 14 SSG System Software Division

Melhorando! X: multitouch 3D: OpenGL 3.0, desempenho, piglit 2D: desempenho do Cairo, Cairo GL, Glamor, SNA Composite: Wayland KMS: novos drivers, APIs Wayland: 0.85, toolkits VA-API: usuários da biblioteca 15 SSG System Software Division

Como posso ajudar? 16 SSG System Software Division

Escolha uma área Display 2D 3D X11 Wayland Input Media 17 SSG System Software Division

Comece a aprender Torne-se um usuário Howtos, APIs, especificações Implemente alguma coisa Reinvente a roda Torne-se um membro da comunidade Listas de email, Bugzilla, Wiki, IRC, Planet Compile, leia o código Encontre alguma coisa pra fazer! Bugs Empacotamento & bugs de distribuição Rode a suíte de testes Analise: saída da compilação, analizador estático, Valgrind Ideias GSoC 18 SSG System Software Division

Display Aprenda libxrandr: leia randrproto.txt Aprenda a API do KMS: /usr/include/xf86drmmode.h Leia especificações: EDID, HDMI, DisplayPort, CEA, VBE Registradores de HW intellinuxgraphics.org/documentation.html x.org/docs/amd nouveau.freedesktop.org Brinque com as ferramentas: intel-gpu-tools: intel_reg_dumper, intel_reg_read, intel_reg_write Encontre um problema (bug?), tente aprender tudo sobre ele Especificações, registradores de HW relevantes, ferramentas Leia o livro Linux Device Drivers (ou outros mais novos) 19 SSG System Software Division

2D Aprenda Cairo Suíte de testes do Cairo é muito boa! Centenas de bugs fáceis de encontrar e consertar! Aprenda a matemática envolvida cairo/bibliography Aprenda as bibliotecas de baixo nível Xrender, Xft Aprenda DDX: Leia DESIGN do Xorg: xorg/xserver/hw/xfree86/doc/ddxdesign.xml Leia o código do xf86-video-dumy 20 SSG System Software Division

3D Aprenda OpenGL & OpenGL ES Dezenas de livros! Implemente alguma coisa Um jogo pra celular! Leia as especificações do OpenGL opengl.org/registry Piglit! Encontre e conserte bugs agora mesmo! Adicione novos testes! Implemente uma extensão que falta Comece com o bakcend de SW 21 SSG System Software Division

X11 Aprenda Xlib & XCB Subindo Melhore os toolkits com as coisas novas do X11 Porte alguma coisa pra XCB Descendo TODO list do Xserver sempre enorme Desenvolvimento recente em suítes de teste Servidores deprecated Integração com Wayland Input 22 SSG System Software Division

Wayland Em desenvolvimento! Enorme TODO list publicada recentemente Código pequeno, mais fácil pra aprender Qualquer coisa pode ser melhorada! Ajude no lado das aplicações também 23 SSG System Software Division

Input Mouse, teclado, dedo Aprenda Xlib (eventos, grabs, Xkb, Xinput) Aprenda como o HW funciona Aprenda input do Kernel, evdev Mais fácil de aprender do que vídeo Encontre uma funcionalidade quebrada em um driver Compre um dispositivo diferente e faça funcionar 24 SSG System Software Division

Media Aprenda os algoritmos Leia as especificações Adicione suporte à VA-API em algo 25 SSG System Software Division

E o mais importante Meta a cara no código! Não tenha medo de código dos outros! Pergunte! Pesquise! 26 SSG System Software Division

Perguntas? X X11 X.org Xorg Xnest Xephyr Xdmx Xkb Xinput Xrandr Xrender Xft Xlib XCB DDX Cairo XAA EXA UXA Glamor SNA KMS OpenGL OpenGL ES Mesa GLX DRI DRM libgl libdrm WM Composite Compositor VT Wayland Weston VA-API libva EDID HDMI DP VBE evdev 27 SSG System Software Division