Este artigo detalha: o BIOS, o relacionamento entre CPU e memória, interrupções, DMA, RTC, geometria do disco rígido, a árvore de diretórios em um sistema Linux, configurando e reconhecendo dispositivos nos barramentos ISA, PCI, USB, SCSI e ainda comentarei sobre modems e placas de som. Para terminar o artigo, comentarei sobre o sistema virtual de arquivos proc e sua funcionalidade.
UHCI: A Universal Host Controller Interface (UHCI) é um controlador para dispositivos USB 1.x encontrado em placas mãe com chipsets da Intel ou VIA.
OHCI: A Open Host Controller Interface (OHCI) é um controlador para dispositivos USB 1.x encontrado principal em placas-mãe que não usam o chipset da Intel ou da VIA.
EHCI: A Enhanced Host Controller Interface (EHCI) é o dispositivo controlador mais comum para barramentos do tipo USB 2.0.
Implementações mais novas do USB no Linux, requeriam um driver para cada dispositivo USB e de fato muitos deles permanecem como parte do kernel atualmente. Por exemplo, os dispositivos de armazenamento USB usam, além dos drivers, recursos dos dispositivos SCSI, fazendo parecer ao sistema operacional que estes são dispositivos SCSI.
O Linux está migrando aos poucos para um novo sistema que um sistema de arquivos USB provê acesso aos dispositivos USB, mas ainda não é um padrão. Este sistema de arquivos aparece na pasta /proc e nas pastas /proc/bus/usb você tem acesso as portas USB disponíveis, bem como os dispositivos conectados a ela.
Desta forma, você pode aprender muito sobre os dispositivos USB conectados ao seu computador examinando o arquivo:
# less /proc/bus/usb/devices
Uma segunda maneira de ter acesso aos dispositivos USB conectados ao seu barramento é pelo comando:
# lsusb
/proc/bus/usb/001 para o primeiro controlador USB
/proc/bus/usb/002 para o segundo controlador USB
/proc/bus/usb/003 para o terceiro controlador USB
/proc/bus/usb/004 para o quarto controlador USB
Os programas ubsmodules e lsusb acessam os dispositivos através do diretório /proc ao invés de usar o /dev/ como o fazem na maioria dos dispositivos. Para saber qual driver está associado a um dispositivo USB específico você pode usar:
Desta forma você obteria informações sobre o 4º dispositivo conectado no 5º controladora USB, e este está usando os drivers para impressora e armazenamento de disco. Este dispositivo é uma impressora multifuncional com leitor para máquina digital, logo ambos os drivers se aplicam a ela.
Existem dois outros comandos utilizados para gerenciar os dispositivos USB, o usbmgr e o hotplug. O usbmgr carrega os módulos ou drivers necessários ao kernel conforme são necessários ou no momento que um dispositivo USB é conectado ao seu computador, apesar de ter caído em desuso atualmente. Para verificar a configuração dos dispositivos USB.
# less /etc/usbmgr/usbmgr.conf
O hotplug funciona de maneira similar e é mais usado atualmente além de prover suporte para kernels mais antigos 2.4.*
# less /etc/hotplug/usb.usermap
Contém o arquivo com banco de dados de todos os dispositivos USB e os scripts que são executados uma vez que um determinado dispositivo é encontrado no barramento.
Configurando dispositivos SCSI
A Interface SCSI, pronunciada scuzzy, ou Interface para sistemas de pequenos computadores(Small Computer System Interface) é uma interface padrão para conectar dispositivos periféricos ao computador(disco rígidos, cdroms, drives de fita, etc).
A interface SCSI é baseada na SASI, mais antiga ou Interface de Sistema da Associação Shugart introduzida por esta mesma empresa em 1979. O controlador SASI provinha uma interface entre a entrada serial analógica do disco rígido e um computador, e seu tamanho era apenas de 5^1/4 x 8 polegadas.
SASI era usada em mini e microcomputadores como o Apple II, logo a parte small ou pequena de SCSI é apenas histórica e desde 1990, a interface SCSI está disponível em grandes sistemas de computadores.
O padrão SCSI compete com o padrão ATA(Advanced Tecnology Attachment) que é informalmente conhecido como IDE ou EIDE (Extended Integrated Drive Electronics) dependendo do caso. Os dispositivos SCSI possuem configurações naturalmente superiores aos dispositivos ATA, contudo ATA é mais barato e tem mais compatibilidade com os dispositivos da arquitetura x86.
O padrão SCSI é normalmente usado em servidores e sistemas de alta performance, enquanto o padrão ATA é usado em computadores Desktop comuns.
Para configurarmos dispositivos SCSI precisamos conhecer um pouco sobre seu endereçamento e terminação(termination), e é o que veremos a seguir. Existem quatro tipos de barramento SCSI no momento:
Tamanho do Barramento
N° máximo de dispositivos
Trilhas de endereço
Barramento SCSI de 8 bits
7
3
Barramento SCSI de 16 bits
15
4
Barramento SCSI de 32 bits
31
5
Barramento SCSI de 64 bits
63
6
O número de trilhas de endereçamento do barramento indica o número de dispositivos. Pela trilha feita de Cobre ou outro material que corre pela sua placa pode travegar um bit 0 ou 1 temos que para 3 trilhas, temos 2³ dispositivos no barramento SCSI, como um dispositivo conectado a ele deve ser a placa controladora que atuará regulando o tráfego entre os dispositivos, logo o número de dispositivos no máximo 2³-1 dispositivos.
Na prática o limite de comprimento do cabo pode tornar difícil conectar mais de 3 ou 5 dispositivos no barramento SCSI(dependo do caso). Cada dispositivo no barramento SCSI tem um ID(número de Identificação, 0 a 7 no SCSI de 8 bits por exemplo), no Linux cada dispositivo SCSI receberá uma letra de identificação ao invés de um número, por exemplo se eu tiver 2 disco rígidos SCSI um com ID 2 e outro com ID 4 no barramento, eles seriam atribuídos aos dispositivos /dev/sda e /dev/sdb respectivamente.
O perigo está se você adicionar um terceiro disco rígido, caso este novo disco tivesse ID 0 ou 1 ele se tornaria então o /dev/sda, com ID 3 ele se tornaria o /dev/sdb, somente com um ID maior que 3 ele se tornaria o /dev/sdc. Por esta razão é bom sempre atribuir o menor ID possível para os seus dispositivos SCSI.
Por fim, todo barramento SCSI precisa ser terminado, isto é precisa de um dispositivo resistor conectado em sequencia após o ultimo dispositivo no Barramento para evitar que o sinal enviado ao barramento retorne ou cause problemas nos dispositivos. Normalmente é comum termos dois resistores conectados em ambas as extremidades do barramento.
[3] Comentário enviado por engos em 27/11/2007 - 11:18h
Isso que á artigo de verdade!
A maioria posta dicas como artigo e o pessoal deixa passar, mas o seu sim dá orgulho até de ler, entrei para verificar sobre o que se tratava pensando ser outro artigo fajuto sobre o assunto e fico contente por ter me enganado.
[6] Comentário enviado por elgio em 28/11/2007 - 15:37h
Muito bom teu artigo. Nada mais posso dizer que já não tenha sido dito.
Observei que no final tu colocou uma nota de Copyright... legal, acredito que isto deva até ser incentivado aqui no Vol.
Outra coisa é sobre os HDs... Eu não sou 100% da area pois abandonei hardware faz algum tempo, mas pelo que me lembro alguns HD tem seus setores dispostos em forma de aspiral, onde cada setor tem o mesmo tamanho físico, em contra ponto ao modelo tradicional onde os setores mais internos são menores e, por terem o mesmo tamanho em bytes, tem seus bits mais "espremidos". Isto requeria até algumas técnicas especiais de armazenamento para que um bit ZERO expremido entre dois bits 1 não acabasse virando 1 também (principalmente nos setores mais centrais onde o "expremido" é mais violento)
Como hoje isto é uma coisa que só interessa a controladora do disco (que esta DENTRO do disco) não é assim tão importante.
Em tempo: há 15 ANOS ATRÁS eu era técnico em eletrônica e dava manutenção em computadores. Frequentemente a gente dizia para o cliente que o problema era apenas de BIOS. Nosso cógido interno traduzia, neste caso, BIOS para "Burro Incapaz que Operava o Sistema". Era uma senha para dizer que o problema era rateada do usuário... Ainda se usa esta "tradução" nos bastidores? (assim como o problema de Osmar. Os Mar Contato... hehehehehe)
[7] Comentário enviado por rafastv em 28/11/2007 - 22:39h
Muito obrigado pelos comentários pessoal :) Eu tentei fazer o melhor possível e ser bem claro em todos os momentos. Quanto as traduções eu realmente conheço e uso da BIOS, do Osmar é nova para mim hehehehe