
Tenho trabalhado com a funcionalidade de copiar e colar em um sistema Linux. Baixei o código-fonte do kernel pela primeira vez. Onde posso encontrar o código relacionado à funcionalidade de copiar e colar?
Meu palpite é que ele não pertence à parte Kernel do Linux. Se eu estiver certo, onde posso encontrá-lo?
Responder1
Você está certo, não faz parte do kernel do Linux. O kernel simplesmente não é responsável por trabalhos como esse. O que depende do seu sistema. No console pode ser o seu driver tty, na maioria dos ambientes gráficos que você está pensando são provavelmente baseados no Xorg e usam o buffer de seleção e a área de transferência do Xorg; mas você também pode estar usando o Wayland; um driver de buffer de quadro direto ou outro mecanismo gráfico e o código pode estar em outro lugar. Mesmo no caso do Xorg, o Xorg não é responsável por vincular as teclas digitadas e outros eventos às ações. Isso se resumirá ao seu ambiente de área de trabalho ou ao gerenciador de janelas, o que pode ser muitas coisas.
Não há um único lugar para apontar sem MUITO mais detalhes sobre o seu ambiente. Enquanto isso, parece que você precisa ler mais sobre a arquitetura geral de um sistema Linux e quais sistemas são responsáveis por quais tipos de operações. A eventual resposta à sua pergunta quase certamente será encontrada espalhada por mais de uma camada e você precisa saber como elas se combinam para entender isso.
Responder2
Para copiar e colar em um console em modo texto, procure um arquivo drivers/tty/vt/selection.c
na árvore de fontes do kernel ( drivers/char/selection.c
em kernels mais antigos). A parte do usuário de recortar e colar nos terminais virtuais é gpm
a "interface do mouse de uso geral".
Copiar e colar na GUI não é feito pelo kernel, mas porX.
Responder3
Copiar e colar faz parte do ambiente de desktop (X11, GNOME, etc). No console, a cópia e colagem seria/poderia ser feita pelo serviço gpm
que fornece recursos de mouse no modo console.