Drivers do Windows e questões de arquitetura de computadores [fechadas]

1

Eu só quero saber se e, em caso afirmativo, como é distinguido quais drivers um sistema operacional precisa ter embutido nele, e quais não, até mesmo um pouco sobre a comunicação entre CPU e perihepals.

Deixe-me explicar - um SO deve ter drivers (talvez eles não sejam chamados de drivers porque são tão elementares) para fazer coisas muito básicas, como exibir algo (mas acredito que as rotinas da BIOS são usadas para isso) e acessar o teclado , HDD.

Mas como esses dispositivos são conectados? Vamos pegar o HDD por exemplo. Está integrado em um sistema Intel através da South Bridge. Mas como um sistema operacional pode acessá-lo? Porque com a CPU você pode fazer apenas operações IO de porta e IO mapeado em memória. Através disso eu acredito que ele entra em contato com a Ponte Norte, que tem seu caminho interno para contato adicional com a Ponte Sul e outros periféricos.

E para tornar isso ainda mais difícil, alguns anos atrás havia até controladores separados para teclado, interrupções, etc. Então, como isso funcionava? Todos esses controladores estavam conectados ao barramento portIO da CPU e respondiam apenas em seus endereços, ou estavam conectados à North Bridge, que filtrava as solicitações?

Eu tenho outro exemplo sobre isso. Digamos que eu digite algo no teclado. Agora o controlador de teclado envia interrupções para o controlador de interrupção, que envia interrupções para a CPU. Em seguida, a CPU precisa ler qual interrupção foi disparada do controlador de interrupção usando o PortIO. Se ele ler, por exemplo, o IRQ 5 e descobrir que ele está conectado ao teclado, ele deverá entrar em contato com o controlador de teclado para o código da chave. Estou certo?

Por favor me ajude a classificar isso um pouco. Obrigado.

    
por user32569 06.11.2010 / 22:00

2 respostas

0

Acho que você está falando sobre DMA, acesso direto à memória. Isso é o que todos os dispositivos rápidos usam hoje em dia. Não tenho certeza o que você está perguntando embora. Se você quer aprender sobre as coisas teóricas de um computador, você poderia começar na wikipedia ou no google?

    
por 07.11.2010 / 00:31
0

Considere o seguinte: quando a Intel desenvolveu CPUs para PCs após o 8088 original, elas não excluíram nenhum recurso existente, mas sim "acrescentaram" recursos adicionais. É por isso que você tem processadores SSE4 + multigigahertz de 8 núcleos e 64 bits que ainda inicializam no modo 8088 de 640KB de 16 bits, caso você ainda queira executar o DOS.

Muitas coisas são assim no hardware do PC; placas gráficas são um excelente exemplo. VGA é um recurso adicional acoplado a EGA, CGA e MDA, e as GPUs modernas ainda são inicializadas e parecem com uma placa VGA, completa com suporte a modo de texto, até que o driver ative os recursos avançados.

Antigamente, quase tudo, exceto a placa de vídeo, usava portas de E / S padronizadas. A RAM da placa de vídeo estava conectada ao A000: 0000 até AFFF: FFFF, dependendo da quantidade de RAM no cartão, além de ter portas de E / S específicas às quais também respondia. A unidade de disquete usava o DMA para transferir dados do disco para a RAM.

Assim, quando o seu PC com BIOS é inicializado, grande parte do hardware está recriando o antigo IBM 5150 PC, até que algumas outras portas sejam tocadas (geralmente quando o driver é carregado e inicializado), o que elimina os dispositivos. compatibilidade e no modo "nativo".

Idealmente, há apenas um IRQ atribuído a um dispositivo. O teclado é IRQ 1, então a CPU pode assumir que qualquer interrupção do IRQ 1 é o teclado, e pode então ler as portas de E / S apropriadas para obter o código de teclas.

Google "IBM 5150 BIOS Disassembly" ou "IBM 5150 BIOS Source Code". A IBM incluiu o código-fonte no BIOS original em um de seus manuais técnicos. É fascinante ler, vai te ensinar muito e vai responder muitas de suas perguntas.

    
por 07.11.2010 / 00:42