próximo acima anterior sumário índice
Próximo: 3.2 Configuração do Kernel Acima: 3. Configurando Hardware de Anterior: 3. Configurando Hardware de   Sumário   Índice


3.1 Dispositivos, Programas de Controle e Outros

Até aqui falamos somente sobre interfaces e características gerais da rede TCP/IP, mas não exatamente sobre o que realmente acontece quando ``o código de rede'' no kernel acessa um componente de hardware. Para isso, temos que falar um pouco mais sobre o conceito de interfaces e programas de controle.

Primeiro, é claro, existe o hardware por si mesmo, como por exemplo uma placa Ethernet: esta é uma peça de Epoxy, desordenada em muitos e minúsculos chips com números sobre eles, colocado em um conector do PC. Isto é o que nós geralmente chamamos de um dispositivo.

Para que seja possível usar uma placa Ethernet, funções especiais têm que estar presentes no kernel do , as quais compreendem de modo particular como se relacionar com este dispositivo. Estes são chamados programas de controle3.1 de dispositivo. Por exemplo, o possui seus programas de controle de dispositivo para vários tipos de placas Ethernet, os quais são muito similares na sua função. Eles são conhecidos como ``programas de controle de dispositivos seriais de Becker'', e tem este nome devido ao seu autor: Donald Becker. Um exemplo diferente é o programa de controle D-Link, o qual manipula uma placa de rede D-Link conectada a uma porta paralela.

Mas o que significa quando dizemos que um programa de controle manipula um dispositivo? Vamos voltar para a placa Ethernet descrita acima. O programa de controle tem que ser capaz de se comunicar com o(s) programa(s) que estão na placa de algum modo: ele tem que enviar comandos e dados para a placa, enquanto a placa deve entregar todos os dados recebidos para o programa de controle.

Figura: O relacionamento entre programas de controle, interfaces e o hardware.

Em PCs, esta comunicação ocorre em lugares da área de memória designadas como de Entrada e Saída, que são mapeados para os registradores que estão na placa. O kernel tem que enviar todos comandos e dados para a placa através destes registradores. A memória de E/S é geralmente descrita a partir de seu início ou endereço base. Geralmente os endereços base para as placas Ethernet são 0x300 ou 0x360.

Usualmente, não é necessário preocupar-se com nenhuma informação de hardware, tal como endereço base, pois o kernel faz tentativas na hora da inicialização do sistema para detectar a localização da placa. Isto é chamado de teste automático, composto pela leitura realizada pelo kernel de várias localizações de memória e comparação dos dados lidos com o que deveria ser detectado caso uma certa placa Ethernet estivesse instalada. No entanto há placas Ethernet que não podem ser detectadas automaticamente. Isto às vezes é o que ocorre com placas baratas Ethernet que não são cópias completas de outras placas padrão. Por outro lado, o kernel tentará detectar somente um dispositivo Ethernet durante a inicialização. Caso se esteja usando mais que uma placa, terá que ser indicada explicitamente ao kernel a presença de placas adicionais.

Um outro parâmetro de informações que pode ser passado para o kernel é o canal de pedido de interrupção - IRQ. Geralmente os componentes do hardware interrompem o kernel quando eles necessitam de sua atenção, por exemplo, quando dados chegam, ou quando ocorre alguma condição especial. Em um PC, interrupções podem ocorrer em um dos 15 canais de interrupção numerados 0, 1 e 3 até 15. O número da interrupção atribuído ao componente do hardware é chamado número do pedido de interrupção ou IRQ.3.2

Como descrevemos no capítulo [*], o kernel acessa um dispositivo através da interface. Interfaces oferecem um conjunto abstrato de funções que são idênticas para todos os tipos de hardware, tais como mandar ou receber um pacote de informações (datagrama) por um sistema de comunicação.

Interfaces são identificadas por meio de nomes. Estes nomes são definidos internamente no kernel, e não são iguais aos arquivos de dispositivos /dev do diretório de mesmo nome. Nomes típicos são eth0, eth1, etc., para interfaces Ethernet. A atribuição de interfaces para dispositivos usualmente depende da ordem na qual estes são configurados; por exemplo a primeira placa Ethernet instalada torna-se-á eth0, a próxima será eth1, e assim por diante. A única exceção para esta regra são as interfaces SLIP, que são atribuídas dinamicamente; isto é, sempre que uma conexão SLIP for estabelecida, uma interface diferente pode ser atribuída para uma porta serial.

O quadro dado na figura [*] procura mostrar o relacionamento entre o hardware, programas de controle de dispositivos e interfaces.

Quando iniciado, o kernel indica quais dispositivos ele detecta, e quais interfaces ele instala. A seguir está uma amostra de uma típica tela de inicialização:



As mensagens indicam que o kernel foi compilado com TCP/IP habilitado e os programas de controle para SLIP, CSLIP e PPP foram incluídos. A terceira linha debaixo para cima indica que a placa de rede D-Link foi detectada, e instalada como interface dl0. Se você tem diferentes tipos de placas Ethernet, o kernel geralmente imprimirá uma linha de início com eth0, seguido pelo tipo de cartão detectado. Se você tem um cartão Ethernet instalado, mas não visualiza nenhuma destas mensagens, isto significa que o kernel é incapaz de detectar sua placa corretamente. Isto será tratado em uma seção posterior.


próximo acima anterior sumário índice
Próximo: 3.2 Configuração do Kernel Acima: 3. Configurando Hardware de Anterior: 3. Configurando Hardware de   Sumário   Índice
www.conectiva.com