BIOS, barramentos e dispositivos

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.

[ Hits: 125.791 ]

Por: Rafael Siqueira Telles Vieira em 26/11/2007 | Blog: http://www.lia.ufc.br/~rafaelstv/


Disco rígido



O disco rígido (ou hard disk: hd) possui esse nome pois ao contrário do disquete que possui um disco flexível, floppy, o disco rígido não pode ser dobrado como uma folha de papel, em algumas literaturas podemos ainda encontrá-lo ainda como disco fixo(fixed disk), pois ao contrário dos cdroms e dvdroms que também são rígidos não podemos removê-los de seu eixo principal de rotação, isto é eles são fixos no seu eixo.

Em alguns casos raros é necessário informar o BIOS sobre a configuração CHS de um disco rígido, isto é cilindros, cabeças e setores(Cylinder/Head/Sector). Para entender o que isto significa precisamos compreender como os dados, isto é, o menor pedaço possível que podemos fragmentar uma informação, são armazenados no nosso disco rígido.



Esta é uma representação simples do nosso disco rígido, possuímos um cabeçote de leitura que dê sobre 4 discos alinhados. O nº de discos pode variar segundo o seu fabricante, este é um mero exemplo ilustrativo. Cada disco pode ter uma ou duas faces, isto é heads, desta forma respectivamente o disco pode ser escrito somente na sua face inferior ou superior, ou em ambas. Se considerarmos que os discos possuem duas faces no exemplo acima temos 8 faces disponíveis para leitura e gravação no disco rígido.



Cada disco por sua vez é divido em trilhas concêntricas como ilustrado na figura acima, o conjunto combinado de trilhas de mesmo raio em todos os discos existentes no disco rígido é chamado de cilindro(cylinder), logo há tantos cilindros quanto há trilhas no seu disco rígido, isto é, suas quantidades são iguais. No exemplo acima temos 9 cilindros.



Cada trilha ainda pode ser dividida em setores ou sectors, setores são definidos pelo seu fabricante antigamente eram comuns setores de 128 bytes, hoje em dia o padrão é 512 ou 1024 bytes, que é a unidade mínima de gravação de informações no seu computador. Isto é mesmo que você crie um arquivo de 1byte, ele ainda assim o ocupará no mínimo 512 bytes se este for o tamanho do setor no seu disco rígido. No exemplo acima temos uma trilha com apenas 4 setores.

Embora o número de cilindros, faces e setores não sejam configuráveis por nós no momento da formatação do nosso disco rígido para um sistema de arquivos qualquer, poderemos definir o tamanho do bloco, o bloco é apenas um conjunto de setores, isto é, podemos definir que ao invés de gravarmos sempre 1 setor por vez, queremos gravar sempre em 4 setores por vez isto é em blocos de 2048 bytes(Obs: o padrão ISO 9660 para CDs usa setores de 2048 bytes para leitura).

A vantagem disto depende única e exclusivamente qual o fim a que se destina o seu disco rígido, se você tem arquivos muito grandes ou pretende armazenar arquivos muito grandes no disco rígido, melhor usar um tamanho de bloco maior, para que o acesso a tais arquivos se torne dinâmico e veloz, contudo se você pretende armazenar na sua memória não volátil, ou disco fixo, arquivos de tamanho pequeno, melhor usar o menor tamanho de bloco possível para reduzir ao máximo a fragmentação dos arquivos.

Para sabermos qual a capacidade total do nosso disco rígido o cálculo é simples:

Tamanho_total = cilindros X faces X setores X tamanho_setor bytes

A divisão CHS do nosso disco fixo tem seus problemas, primeiro cada fabricante define seu próprio número de C, H e S e os discos modernos, não usam o mesmo número de setores para todos as trilhas e buscam espremer ao máximo mais setores em setores mais longe do centro que aqueles menores, próximos do centro disco, de modo a obter mais espaço disponível.

Logo o número de CHS exibido pelo BIOS para o disco rígido normalmente não representa a realidade. Pior, por causa do limite existente no BIOS e na interface ATA tradicional, os números de CHS conseguiam alcançar apenas 540MB o que é muito limitado para os padrões atuais tendo os seguintes limites: 1024 para C, 16 para H e 63 S. Hoje em dia, a preferência é usar o modo LBA (ou endereçamento de bloco lógico).

Neste modo, um único número é designado para cada setor no disco e o firmware do disco é inteligente o suficiente para ler a face e cilindros corretos quando recebem um número de setor. A grande maiorias dos BIOS atuais provem uma opção de modo LBA, modo tradução CHS (que aumenta os limites do CHS para 8GB: 1024 C, 255 H, e 63 S), ou outro similar.



A maioria dos BIOS permite que você escolha qual a ordem de inicialização dos dispositivos no seu sistema. Suponhamos a situação acima, ao ligarmos o computador o POST é chamado e executado pelo seu sistema básico(SBES), em seguida este chama um dos três disco rígidos que temos neste computador de exemplo, na 1º IDE como mestre do barramento temos um disco rígido com Linux que foi configurado previamente no Setup do BIOS como padrão de inicialização.

Então o BIOS efetua uma chamada para o primeiro programa encontrado na MBR(Master Boot Record) do disco rígido ou Registro Mestre de Inicialização (RMI), normalmente um gerenciador de Boot como o LILO ou o GRUB. Que por sua vez informará qual partição deveremos iniciar(efetuar o boot), neste caso temos apenas o sistema operacional Slackware Linux presente em todo o disco rígido, logo a partição primária é chamada, a /dev/hda1.

Se o BIOS não é capaz de inicializar o primeiro dispositivo de boot, ele tenta então a 2º e a 3º opções de inicialização que poderíamos supor que sejam neste caso um 2º e 3º disco rígidos como apresentados na figura, repare que todo disco tem seu RMI. Em caso de falha, o SBES retorna uma mensagem de erro ao usuário no seu monitor.

Poderíamos ter inclusive configurado no Setup do BIOS para que um drive de CD-ROM ou disquete fosse responsável pela inicialização da máquina, porém isto não é aconselhável, pois além de tornar sua máquina mais lenta caso ele seja o boot primário, pois toda vez o seu computador irá pedir um CD ou um disquete no drive quando não há nenhum disponível para apenas em seguida iniciar o disco rígido. Mas pode-se ganhar facilmente acesso a qualquer distribuição Linux ou Windows através de um Live-CD ou disco de boot.

É aconselhável então que sempre tenhamos o disco rígido selecionado. Na maioria dos computadores para mudar a sequência de inicialização, tudo o que você precisa fazer é localizar a entrada no menu do Setup do BIOS, mudar sua configuração e salva-lá. Normalmente esta opção está localizada no menu avançado(Advanced) ou de Boot.

Página anterior     Próxima página

Páginas do artigo
   1. BIOS: Basic Input Output System
   2. CPU e Memória
   3. Barramentos
   4. Interrupções
   5. Endereços de E/S
   6. Endereços DMA
   7. RTC - Relógio de tempo real
   8. Disco rígido
   9. Árvore de diretórios
   10. Configurando suas placas de expansão ISA e PCI
   11. Configurando suas placas de expansão USB e SCSI
   12. Configurando modems e placas de som
   13. Detectando novos dispositivos
   14. O diretório /proc/
   15. Conclusão e licença
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Wireless RTL-8180 no Linux

Configurando o HP CD-Writer 9100 series

Instalando uma placa DWL-520+ no kernel 2.6.x

Configurando placa wireless Broadcom 94311MC6 no Mandriva

Configurando o COMBO (DVD/CDRW) no CL8

  
Comentários
[1] Comentário enviado por scoob em 27/11/2007 - 07:19h

It's awesome !!!!!

;>))


Parabéns!!!

[2] Comentário enviado por jeferson_roseira em 27/11/2007 - 10:35h

Muito bom o tutorial

[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.

Parabéns, esse é digno dos top 5 do site.

[4] Comentário enviado por TSM em 27/11/2007 - 11:43h

Muito bom cara.
Parabéns.

[5] Comentário enviado por brunojbpereira em 27/11/2007 - 15:20h

Seu artigo sobre os detalhes do funcionamento de um computador e relacionando-o com o sistema linux foi genial. o artigo está nota 10.

[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


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts