segunda-feira, 10 de outubro de 2011

LPIC - Funcionamento da USB no Linux

Post com dicas para LPI
Tópico: Arquitetura de Sistema

Funcionamento da USB no Linux

Neste post vou falar um pouco sobre a USB no linux. Falar sobre USB pode parecer um assunto trivial, porém existem certos conceitos sobre a USB que podem vir a cair na LPIC-1 e que podem confundí-lo e levá-lo a perder uma questão aparentemente fácil da prova. Este será um post mais teórico, mas sem muita enrolação ou decoreba, é mais a nível de conhecimento mesmo.

Controladores USB
Podemos encontramos 4 tipos de controles de USB:
- Open Host Controller Interface - OHCI : Um controlador para USB 1.1 de código aberto.
- Universal Host Controller Interface - UHCI : Um Controlador proprietário criado pela Intel para USB 1.0 incompatível com OHCI. Geralmente utilizados por dispositivos Intel e VIA.
- Enhanced Host Controller Interface - EHCI: Um controlador de alta velocidade para o padrão USB 2.0.
- Extensible Host Controller Interface - XHCI: Padrão recente de controlador com melhoria de velocidade e eficiência de energia sobre o seu predecessor. Pode vir a substituir o OHCI, UHCI e EHCI pois suporta todas as velocidade USB, inclusive a USB 3.0.

Classes de dispositivos USB
Existem muitas classes de dispositivos USB, as mais conhecidas são:
- Human Interface Device (HID)
Exemplo: Dispositivos de Entrada, tal como mouse, teclado etc.
- Communications device
Exemplo: Modens
- Mass storage device
Exemplo: Discos Rígidos, HD Externo, Pendrive etc.
- Audio
Exemplo: Dispositivos de Audio
- IrDA
Exemplo: Dispositivos Infravermelho
- Printer
Exemplo: Impressoras

Drivers USB
O suporte a USB no Linux chegou com o desenvolvimento do Kernel 2.3.x e mais tarde foi portado para 2.2.x com excessão do suporte a dispositivos da classe de armazenamento em massa.
Os drivers de USB do Kernel do Linux são divididos em 3 categorias:
- Host controller drivers: incluem usb-ohci.o (OHCI driver), usb-uhci.o (UHCI driver), uhci.o (versão antiga “alternativa” do UHCI driver) e o ehci-hcd.o (EHCI driver).
- Class drivers: Incluem hid.o, usb-storage.o (mass storage driver), acm.o (Automated Control Model [ACM] communications class driver, para enviar comando AT para um modem de interface serial), printer.o, e audio.o.
-Other device drivers: Outros drivers de dispositivos o quais não se incluem nas duas categorias acima.

quinta-feira, 6 de outubro de 2011

LPIC - Um pouco sobre o boot do Linux

Post com dicas para LPI
Tópico: Arquitetura de Sistema

Um pouco sobre o boot do Linux

No momento da inicialização (boot) do sistema podemos passar diversos parâmetros com propósitos variados para o Kernel do Linux. No momento do boot podemos também verificar se dispositivos e serviços foram configurados e iniciados corretamente.

Os principais softwares responsáveis pelo boot no Linux são o Lilo e o Grub. Ambos funcionam de maneira semelhante: antes do carregamento do Kernel oferecem um prompt onde é possível alterar o comportamento do boot, podendo ser possível passar parâmetros para o Kernel. Alguns exemplos de parâmetros que podem ser por este prompt são:

- acpi : Liga/Desliga o suporte a ACPI

- init : define um outro programa para ser executado na inicialização no lugar de /sbin/init

- mem : Define a quantidade de memória que estará disponível para o sistema

- maxcpus : Define a quantidade máxima de processadores que estarão disponíveis para o sistema.

- quiet : não exibe grande parte das mensagens da inicialização(boot)

- vga : seleciona um modo de vídeo

- root : define uma partição raiz diferente

- ro/rw: realiza a montagem inicial da partição raiz como somente-leitura(ro) ou leitura-escrita(rw).

Na inicialização do sistema são exibidas as mensagens de detecção e configuração dos dispositivos de hardware bem como dos serviços do sistema. Em algumas distribuições do Linux essas mensagens são suprimidas e em seu lugar são exibidas telas de abertura. Como o processo de boot é muito rápido é difícil de acompanhar as mensagens do boot, porém o Linux armazena essas mensagens em /var/log/dmesg onde podemos visualizar todas as mensagens da inicialização contidas neste arquivo. Podemos utilizar ainda o comando:

dmesg

para maior facilidade da visualização destas mensagens.

Claro que existem mais coisas a serem estudadas sobre o processo de boot, bem como configurações e usos de outros softwares responsáveis pelo boot(bootloader). Acredito que este post venha a dar uma idéia básica do boot para você e aconselho a ligar o seu Linux agora e começar a experimentar mais opções de parâmetros de inicialização do sistema e configurações do bootloader de sua distro.