O que acontece quando conectamos um dispositivo ao computador

1

Atualmente estou aprendendo sobre o desenvolvimento de dispositivos para Linux, eu glaced em alguns livros, como LLD3, .. mas eu ainda não consigo entender o que acontece quando plugamos um dispositivo no computador, essa é a minha imaginação: quando nós plugues um dispositivo em uma porta, de uma forma mágica, o kernel Linux vai saber qual o tipo de dispositivo e chamar a função de sonda do módulo apropriado para determinar se é exatamente o dispositivo que o módulo precisa, e o próximo é a magia .... Alguém pode corrigir isso?

    
por Bình Nguyên 12.12.2012 / 17:52

1 resposta

0

Não é realmente mágica, é hardware. Informações sobre eventos periféricos chegam à CPU através do barramento frontal, que é a porta de entrada para outro hardware; programaticamente (no código do kernel) estes são tratados através do conceito da solicitação de interrupção (IRQ).

Veja estes em ordem:

link

link .

Agora considere que o kernel é o que determina o que acontece na CPU. Próximo:

link

link

Para obter um WRT mais específico, o código do kernel do Linux, ele usa manipuladores que são disparados no recebimento de uma solicitação de interrupção. As partes básicas disso são feitas com um código ASM específico da arquitetura, muitas das quais você encontrará em (por exemplo) src/arch/x86/kernel . Eu não codifico em asm (os arquivos .S ), então é grega para mim, infelizmente, mas a idéia aqui (deve estar nesse material da wikipedia) é que ao receber um IRQ, o kernel antecipa qualquer usuário código de espaço está sendo executado para processar o IRQ (possivelmente passando algo para qualquer processo de espaço do usuário).

    
por 12.12.2012 / 18:10