O termo "driver de gráficos" é usado para se referir a várias coisas diferentes. Um deles é um driver de kernel. O driver do kernel apenas define o modo de vídeo e facilita a passagem de dados para / do cartão. Geralmente também baixa o firmware para a GPU do cartão. O firmware é um programa que a própria GPU executa, mas, infelizmente, os fornecedores de gráficos apenas fornecem isso como um blob binário, então você não pode olhar para o seu código-fonte.
Acima disso, você geralmente tem o Xorg em execução, que possui seu próprio driver que traduz chamadas genéricas de desenho X11 ou OpenGL em comandos que a placa entende, e os envia para a placa a ser executada. Também pode fazer parte do trabalho em si, dependendo de quais comandos o gpu suporta ou não. No caso das chamadas OpenGL, a Infraestrutura de Renderização Direta permite que esta parte do driver seja realmente executada diretamente no aplicativo cliente em vez do servidor X, para obter um desempenho aceitável. Ele também permite que o driver no aplicativo cliente envie seus comandos diretamente ao gpu, graças à coordenação e à ajuda do Xorg e do driver do kernel na inicialização.
Wayland e Mir devem substituir o Xorg como um tipo simplificado de servidor de exibição.
Unity é um shell (fornece desktop / launcher) e gerenciador de janelas de composição em um.
GNOME e KDE são ambientes de desktop. São projetos grandes que consistem em muitos componentes. O núcleo deles são seus respectivos kits de ferramentas de aplicação, que são o GTK para o GNOME e o Qt para o KDE. Esta é uma estrutura de biblioteca na qual um aplicativo é escrito e fornece a base sobre a qual todo o resto é construído. Alguns dos serviços básicos que eles fornecem são manipulação de eventos e objetos, Windows, funções básicas de desenho, E / S e muito mais.