Executando verificação de segurança...
9

[Pitch] Criei um servidor gráfico minimalista para Linux

Boa tarde.

Eu estou fazendo um experimento/estudo sobre gráficos no Linux, a ideia é construir o mínimo possível para se obter um ambiente gráfico utilizável, como o X11 ou o Wayland. Assim criei o BGCE, que atualmente é capaz de:

  • gerenciar um buffer do subistema DRM
  • aceitar clientes e manter buffers independentes
  • receber eventos de input de mouse e teclado e direcioná-los aos clientes
  • receber chamadas de seus clientes

O resultado é meio que um hibrido de X11 com tinyWM, pois o servidor se encarrega dos atalhos de teclado, mover e redimensionar janelas.

Você pode encontrar o projeto em:

GitHub e no meu site

Quero continuar desenvolvendo esse projeto, pois está bem divertido.

Aqui tem um video que fiz usando ele:

Post

Me contem o que acharam e o que pensam que um projeto como esse deveria ter.

Obrigado.

Carregando publicação patrocinada...
1

Muito massa, @blmayer. Encarar a stack gráfica do Linux (DRM/KMS) direto na fonte é um desafio técnico enorme, parabéns pela coragem e pelo resultado.

Estou numa sintonia muito parecida de querer entender e reconstruir essas camadas base. Meu objetivo futuro é justamente criar uma interface customizada nesse estilo.

Por enquanto, estou focado na infraestrutura do sistema com o Crom-OS Spirit ( https://github.com/MrJc01/crom-spirit-iso ). É um OS que roda 100% em RAM com foco em storage P2P e GPU passthrough. A ideia é ter essa base minimalista para, quem sabe no futuro, plugar um servidor gráfico leve como esse que você está desenvolvendo (ou o Nexus UI que estou planejando).

Vou acompanhar o repo do BGCE para aprender mais sobre o gerenciamento de buffers.

Meu roadmap inclui algo nessa linha de servidor gráfico próprio futuramente também. Vou usar seu projeto como referência de estudo!

Se quiser trocar uma ideia sobre esses desafios de baixo nível ou sobre a arquitetura dos projetos, fique à vontade para entrar em contato (tem meus links no perfil do GitHub). Seria bacana compartilhar as experiências dessa "jornada" pelo low-level.

1

Muito obrigado @MrJ! Bem legal o Crom-OS, se quiser saber mais sobre o gerenciamento de buffers o BGTK (toolkit pro BGCE) lida mais com isso.

Eu vou tentar postar mais sobre esses projetos no meu blog.

Abraços.

1
1

Esta usando IA para auxiliar na codificação?
Quais conhecimentos precisa ter para embarcar nessa jornada?
Na verdade, eu queria entender mais sobre isso para saber como funciona um x11 e wayland, por baixo dos panos. Estou inicianodo agora o uso de Linux.

1

Sim! E está ajudando bastante, principalmente no boilerplate.

A stack de gráficos do Linux é complexa e a documentação do kernel é bem ruim. Então é bem difícil de encontrar material.
Acho que conhecer o funcionamento do Linux como um todo é primeiro passo.

Achei um material bem legal da usp:

https://flusp.ime.usp.br/blogs,/kernel-graphics/an_introduction_to_the_linux_graphics_stack/

Dá uma pesquisada sobre KMS e DRM, aqui é um bom começo:

https://dri.freedesktop.org/docs/drm/gpu/introduction.html

Outra coisa legal é ler o código do X11 e do Wayland.

Espero que tenha ajudado.