Como o Linux Lida com o Hardware
Conheça a função dos arquivos /proc/pci, /proc/dma, /proc/interrupts e /proc/ioports
Para que tudo esteja funcionando corretamente, é necessário que os dispositivos estejam alocando recursos do computador.
Estes recursos podem ser portas de entrada e saída, requisições de interrupção (IRQ) e acesso direto a memória (DMA). Vejamos estes conceitos.
Portas de Entrada/Saída (Input / Output)
As portas de entrada e saída são endereços de memória reservados no microprocessador para os dispositivos realizarem entrada e saída de informações.
Estes endereços de memória são utilizados para troca de dados entre o processador e os dispositivos de forma simplificada.
Os dispositivos podem usar mais de uma porta de entrada/saída ou uma faixa de endereços. Por exemplo, uma placa de som padrão usa as portas 0x220, 0x330 e 0x388.
Cada dispositivo possui um endereço de porta única que não podem ser compartilhados entre outros dispositivos.
Os endereços de E/S em uso no sistema podem ser visualizados com o comando:
# cat /proc/ioports
0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0070-007f : rtc
(…)
Requisição de Interrupção (IRQ)
Os IRQs são chamadas que os dispositivos podem fazer para requerer atenção especial do processador.
A maioria dos computadores oferece apenas 16 interrupções de hardware para os mais diversos dispositivos.
Pode parecer pouco para as modernas configurações com os mais diferentes dispositivos. Felizmente os IRQs podem ser compartilhados.
As interrupções do sistema podem ser visualizadas no Kernel com o comando:
# cat /proc/interrupts CPU0
0: 604694 XT-PIC timer
1: 35746 XT-PIC keyboard
2: 0 XT-PIC cascade
3: 13546 XT-PIC orinoco_cs
11: 15 XT-PIC ALi Audio Accelerator
14: 38759 XT-PIC ide0
Acesso Direto a Memória (DMA)
A DMA é usada para permitir a transferência de dados entre dispositivos e a memória sem a intervenção do processador.
Este acesso é feito através de canais (channels). A maioria dos computadores tem dois controladores de DMA. O primeiro controla os canais 0, 1, 2, 3 e o segundo os canais 4, 5, 6, 7, totalizando 8 canais.
Os canais de DMA em uso no sistema podem ser visualizados com o comando:
# cat /proc/dma
4: cascade
É importante que você saiba que estes recursos são limitados e precisam ser gerenciados para que conflitos entre os dispositivos sejam evitados.
Alguns dispositivos como portas seriais e paralelas já utilizam os recursos no padrão a seguir:
TABELA – Referência de dispositivos no Linux
Nome do Dispositivo no Linux | Nome do Dispositivo no Windows | Porta E/S | DMA | IRQ |
ttyS0 | COM1 | 0x3F8 | – | 4 |
ttyS1 | COM2 | 0x2F8 | – | 3 |
ttyS2 | COM3 | 0x3E8 | – | 4 |
ttyS3 | COM4 | 0x2E8 | – | 3 |
lp0 | LPT1 | 0x378 | – | 7 |
lp1 | LPT1 | 0x278 | – | 5 |
/dev/hda1 | C: | 0x1F0 | – | 14 |
/dev/fd0 | A: | 0x3F0 | 2 | 6 |
No exame LPIC-1 pode ser que você tenha que resolver algum possível conflito de recursos em portas seriais ou paralelas.
Hotplug x Coldplug
Existem dispositivos que podem ser conectados ou removidos com o computador ligado e em pleno funcionamento, que são categorizados como hotplug.
Para estes o Kernel será capaz de perceber sua presença ou ausência e carregar os drivers, scripts e programas necessários ao seu correto funcionamento.
Nesta categoria se enquadram: teclado, mouse, webcam, hd externo USB, cd-rom externo USB, impressoras, caixas de som, microfones, monitores, celulares, pendrives etc.
Já os dispositivos que obrigatoriamente devem ser conectados e removidos com o computador desligado são chamados de coldplug.
Qualquer tentativa de alterar seu estado poderá causar travamento ou mesmo queima do equipamento. São eles: CPU, Memória RAM, discos rígidos internos, placas internas (som, vídeo etc).
Dispositivos de Armazenamento
O Linux suporta diversos tipos de armazenamento de dados em massa. Estes dispositivos podem ser categorizados em óticos, magnéticos ou em memória.
Os discos óticos são os CD-ROMs (700Mb), DVDs (4,7-8,5 Gb) e Blu-Rays (25-50Gb). Não são rápidos como os HDs, mas têm grande durabilidade se acondicionados em locais apropriados e não permitem gravar os dados diversas vezes.
Os discos magnéticos têm grande capacidade de armazenamento de dados, que pode chegar a 8 Terabytes.
Alguns modelos são híbridos, pois possuem discos magnéticos e grandes memórias flash para armazenar os dados mais lidos ou até mesmo o sistema operacional. São sensíveis a solavancos e quedas.
Ainda na categoria de dispositivos magnéticos, temos as fitas magnéticas, bastante utilizadas para backup de dados. Permitem gravar dados de forma sequencial com baixo custo.
Seu uso é cada vez menor devido ao baixo preço dos discos, computação em cloud e outras estratégias de cópia de segurança mais avançadas.
Os “discos” em memória são na realidade bancos de memória flash chamados de Solid State Drive (SSD) – drive de estado sólido – encapsulados em uma caixa do tamanho de um HD e não possuem partes móveis como os discos óticos e magnéticos. Seu tempo de acesso aos dados é incrivelmente veloz se comparado aos discos magnéticos e óticos, são resistentes a quedas e solavancos, consomem menos energia, dentre outros benefícios.
No entanto a capacidade de armazenamento não ultrapassa 1 Terabyte, e seu custo é elevado em comparação com os discos magnéticos. São muito utilizados em Ultrabooks e em servidores de alta-performance.
Dispositivos PCI
Durante o processo de carga do sistema, o Kernel detecta os dispositivos PCI conectados no micro. A lista das placas de expansão encontradas poderá ser lida através do arquivo especial /proc/pci.
# cat /proc/pci
PCI devices found:
Bus 0, device 0, function 0:
Host bridge: PCI device 10b9:1644 (Acer Laboratories Inc. [ALi]) (rev 1).
Prefetchable 32 bit memory at 0xf0000000 [0xf3ffffff].
Bus 0, device 1, function 0:
PCI bridge: Acer Laboratories Inc. [ALi] M5247 (rev 0).
Master Capable. No bursts. Min Gnt=8.
Bus 0, device 2, function 0:
USB Controller: Acer Laboratories Inc. [ALi] M5237 USB (rev 3).
IRQ 11.
Quer aprender mais sobre os arquivos especiais do Linux no /proc? Conheça nosso curso de LPIC-1
Aprenda muito mais sobre Linux em nosso curso online. Você pode fazer a matrícula aqui com trial de 7 dias grátis. Se você já tem uma conta, pode acessar aqui.