Estou basicamente tentando descobrir como alguém faria uma GUI a partir do zero com nada além do kernel linux e programação em C.
Não estou procurando criar um ambiente de desktop GUI a partir do zero, mas gostaria de criar alguns aplicativos de desktop e em minha busca por conhecimento, todas as informações que consegui encontrar estão em APIs e kits de ferramentas de GUI. Eu gostaria de saber, pelo menos para minha compreensão dos fundamentos de como a GUI do linux é feita, como alguém faria um ambiente de GUI ou um aplicativo de GUI sem usar APIs ou kits de ferramentas.
Pergunto-me se por exemplo:
APIs e kits de ferramentas existentes funcionam por meio de chamadas de sistema para o kernel (e o kernel é responsável no nível mais baixo por construir uma imagem GUI em pixels ou algo assim)
esses kits de ferramentas executam syscalls que simplesmente passam informações para drivers de tela (existe um formato padrão para enviar essas informações que todos os drivers de tela obedecem ou as APIs GUI precisam ser capazes de produzir essas informações em vários formatos, dependendo da tela/driver específico? ) e também se isso for aproximadamente verdade, o kernel linux bruto geralmente envia informações para a tela na forma de caracteres de 8 bits?
Eu realmente quero entender o que acontece entre o kernel do linux e o que eu vejo na minha tela (controle/fluxo de informações através de software e hardware, se você souber, qual formato a informação leva, etc). Eu apreciaria muito uma explicação detalhada, eu entendo que isso pode ser uma merda para explicar em detalhes suficientes, mas acho que tal explicação seria um ótimo recurso para outros que estão curiosos e aprendendo. Por contexto, sou um estudante de sci do 3º ano que começou recentemente a programar em C para o meu curso de programação de sistemas e tenho uma compreensão intermediária (ou assim eu descreveria) de linux e programação. Mais uma vez obrigado a quem me ajudar!!!