Arquitetura de pc
Computadores podem ser definidos simplesmente como máquinas programáveis. A definição desta característica faz com que os computadores sejam empregados praticamente em um número ilimitado de serviços diferentes. Para que a programação dessa máquina seja acessível à um grande número de usuários, ela é desenvolvida em vários níveis diferentes de funcionalidade. Pode-se fazer uma comparação de maneira bem simples entre o computador e um carro. Dirigir um carro utilizando a direção, os pedais e o câmbio é facilmente compreendido e utilizado por um grande número de pessoas. Este seria o nível mais alto de funcionalidade do carro, ou seja, se o condutor deseja virar à esquerda, faz o movimento necessário com a direção, se deseja parar pisa nos freios ou se deseja andar pisa no acelerador. Um número menor de pessoas sabe exatamente o que acontece quando vira-se a direção para a esquerda ou direita. Provavelmente seu mecânico sabe todas as partes móveis envolvidas na direção do carro. Cada peça tem sua função e seu nome próprios. Isto certamente constitui uma nova maneira de entender como o carro pode virar para esquerda ou para a direita, representando um nível de funcionalidade diferente para o mecânico. Por sua vez, o engenheiro que projetou o carro calculou com precisão os materiais e estruturas necessárias para que o carro pudesse virar à esquerda ou direita com segurança. A resistência e a força exercida por cada uma das peças e estruturas representa um nível mais profundo de funcionalidade. Entretanto, o motorista, não precisa ter o conhecimento deste nível de funcionalidade para dirigir o carro. Os computadores são construídos de maneira análoga. Cada um dos níveis de funcionalidades são chamados de camadas ou camadas hierárquicas, devido ao relacionamento superior-inferior que existe entre elas. Em uma primeira análise, podemos dividir o computador em dois