Vamos tomar como exemplo, o teclado.
Ao pressionar a tecla "a" em um teclado, um sinal eletrônico é enviado à CPU (entenda-se aqui por CPU, o gabinete com todos os seus componentes; a definição de CPU não é bem essa, mas para esse artigo, vamos tomar essa definição), e esse sinal que vai para a CPU, ou seja, aquela sequência pré-determinada de bits da letra "a" minúscula, é processada e percorre todo o caminho anteriormente citado até chegar ao monitor que desenha a letra "a", iluminando os pixels correspondentes na posição desejada na tela.
Posição esta, determinada pela interseção das linhas e colunas. Ou seja, a letra "a" irá se formar com uma determinada cor em um lugar na tela determinado pelo código fonte do programa que está sendo executado. Esse processo atualmente é transparente até para o programador.
Em um monitor Touchscreen, o processo é basicamente o mesmo, com a diferença de que a tela faz o papel do teclado.
Essa programação pode ser feita através de um IDE (Integrated Development Environment - Ambiente Integrado de Desenvolvimento), que são os programas que fazem programas, tipo Eclipse, Delphi, NetBeans, etc, ou pode programar no bloco de notas. Os IDEs tem a vantagem de já virem com o compilador embutido e o sujeito só fica "montando as caixinhas".
O teclado possui um microprocessador em seu interior que interpreta a forma como as teclas são pressionadas, e cada tecla do teclado tem seu próprio sinal eletrônico, bem como todos os outros componentes de um computador tem a sua arquitetura com seu respectivo padrão de funcionamento.
Quando instalamos um programa no computador, esse programa vem com seu código fonte, onde tem as informações da localização das imagens na tela, das cores das imagens, etc.
Ou seja, todo o processamento de um computador pessoal comum é feito, basicamente, em cima da formação de imagens na tela. Por isso que um jogo exige um bom processador, uma boa placa de vídeo e um bom monitor, pois as imagens estão em constante movimento e o processador está sempre "recalculando" as voltagens, fazendo a tela dar a impressão de que a imagem está se movendo, quando na verdade, os pixels estão se acendendo e se apagando e brilhando em diferentes tonalidades de cores.
Mais ou menos como aqueles painéis eletrônicos de anúncios, onde as letras ficam passando de um lado para o outro e as letras, nada mais são do que LEDs (ou lâmpadas) acendendo e apagando em sequência.
Um processador tem milhões de transistores dentro dele. Um processador
Intel Core i7 de 4ª geração, por exemplo, com a tecnologia de 22 nm (nanômetros), possui, aproximadamente, 1 bilhão e 600 milhões de transistores de layout. Apesar de que existe uma diferença entre transistores esquemáticos e transistores de layout, mas não vem ao caso. De transistores esquemáticos esse processador tem, aproximadamente, 1 bilhão e 400 milhões.
O nanômetro é uma medida de distância, assim como o centímetro também o é. Um nanômetro corresponde a um milímetro dividido em 1 milhão de partes iguais. Pega-se uma única dessas partes e multiplica-se por 22, e temos o tamanho de um transistor de 22 nm. O "troço" é pequeno mesmo.
A função básica do transistor, geralmente feito de silício (que é um material abundante na natureza e próprio para isso), é chavear (tipo um interruptor de luz) a passagem do sinal elétrico e amplificar esse sinal, quando for o caso.
As voltagens que passam pelo processador podem ser transformadas (aumentadas e mudadas de sentido de fluxo) formando as sequências de voltagens (bits) que cada programa determina.
As diversas imagens que se formam na tela e que não fazem parte da tabela ASCII, são sequências de bits pré-determinadas pelos diversos programas que o computador executa, ou seja, é a programação que consta do código fonte de um determinado programa.
Para evitar processamento excessivo do processador, existe o conceito de memória cache, que pode ser a do processador, pode ser a do HD, pode ser armazenada na memória RAM, etc.
O cache armazena, por exemplo, a sequência de bits de uma página inteira já desenhada na tela para que o processador não tenha o trabalho de recalcular esta página. Quando esta página for chamada de novo, a sequência estará pronta no cache.
Por isso que, por exemplo, quando você abre um site pela primeira vez, a página demora mais para se formar do que a segunda vez (com o computador funcionando sem desligar, pois, ao desligar ou reiniciar o computador, as memórias cache geralmente são apagadas).
Não estamos falando aqui de conexão ao site, mas da formação de imagens após a conexão estabelecida.
Na primeira vez, o processador tem que fazer todos os cálculos (entenda-se por cálculos, a montagem da sequência de bits [voltagens]); na segunda vez, a página é chamada já pronta no cache (quando estiver armazenada em um cache). Praticamente, todos os navegadores fazem cache. A tecla
F5 (atualizar) verifica no servidor do site e não no cache para trazer a página atualizada. Não confunda.
Para entender melhor: quando você minimiza uma página, ao maximizar, ela é buscada no cache.
Quando o programador digita seu código fonte, as sequências de bits estão sendo magnetizadas em algum lugar no computador, cada qual na sua respectiva voltagem, em arquivos de texto, por exemplo (podem ser arquivos de imagens, etc), geralmente situados no HD, em uma pasta que o programador criou para salvar seu código fonte. Arquivos de texto são mais simples de serem manipulados e permitem acesso mais fácil ao seu conteúdo.
Durante a compilação, os arquivos do código fonte (não todos) são transformados em arquivos binários. Arquivos binários têm seu conteúdo armazenado no formato binário, ou seja, em sequências de bytes respeitando uma determinada estrutura.
Esses arquivos podem ser visualizados como uma tabela onde cada linha possui um determinado conjunto de campos (colunas). Cada linha dessa tabela, terá um número que identificará sua posição no arquivo. Por essas características, os arquivos binários têm a vantagem de permitir o acesso aleatório às posições.
Quando você abre um arquivo binário com seu editor de texto preferido no
GNU/Linux, aparece uma sequência de caracteres estranhos. Cada um desses caracteres é uma sequência de bits (voltagens), sendo que um arquivo binário pode conter qualquer tipo de conteúdo, imagens, sons, versões comprimidas de outros arquivos, etc.
E por que aparecem os caracteres estranhos?
Simples. É porque o editor de texto não sabe interpretar arquivos binários, ele não foi feito para isso. Para ler e ditar arquivos binários, você precisa de um Editor de Arquivos Binários.
E assim, de forma brusca, chegamos ao fim. Mas acredito que a pergunta foi respondida de forma satisfatória.