Melhor resposta
Imagine um grande programa de computador, digamos, um arquivo de 100 MB.
Agora imagine uma pequena correção, digamos, uma correção que altera apenas alguns bytes nesses 100 MB.
Emitir uma substituição para o arquivo de programa de 100 MB é um desperdício de largura de banda. Demora muito para fazer o download e usa muito espaço desnecessariamente.
Em vez disso, você pode lançar um pequeno programa cujo único propósito é localizar o arquivo original de 100 MB no computador do cliente e depois mude aqueles poucos bytes que constituem a correção. Isso seria um patch.
É claro que a palavra “patch” hoje em dia é usada informalmente para descrever qualquer relançamento menor de um software, independentemente da forma o relançamento leva; pode ser na forma de um patch como descrevi acima, ou pode ser apenas um conjunto de arquivos de substituição ou até mesmo um novo pacote de instalação, ainda é frequentemente chamado de “patch” se o propósito do pacote é apenas para consertar alguns bugs ou implementar outras mudanças menores.
Resposta
Bem, no nível mais baixo, um chip de computador é feito de transistores. Esses são pequenos fragmentos de silício, com impurezas deliberadas para torná-los capazes de agir como pequenos interruptores.
Os transistores são transformados em circuitos com a adição de uma camada de fios minúsculos para conectá-los.
Os transistores são construídos em “portas lógicas” que podem fazer operações lógicas muito simples:
- E – se dois sinais de entrada estiverem presentes, gere um sinal de saída.
- OU – se um ou ambos os sinais de entrada estiverem presentes, gere um sinal de saída.
- XOR – se apenas um dos sinais de entrada estiver presente, mas não o outro, gere uma saída.
- NOT – que tem apenas uma entrada – e gera uma saída apenas se não houver sinal na entrada.
Cada uma dessas portas lógicas é apenas um par de transistores.
As portas lógicas podem então ser montadas para fazer coisas como “flip-flops” que mantêm um único valor verdadeiro / falso e se lembram dele – ou “somadores de um bit” que podem adicionar dois dígitos binários juntos e produzir uma saída e um bit carry.
Ligado Os somadores de bits podem ser combinados para formar pedaços de circuitos que podem somar dois números maiores (ou subtraí-los usando um truque chamado “aritmética do complemento de dois).
Também podemos construir coisas chamadas” shifters “que podem multiplique um número por dois, quatro, oito, dezesseis, etc.
Um monte de flip-flops podem ser colocados juntos para construir um pedaço de circuito que pode armazenar um número inteiro – e um monte desses pedaços pode fazer um bloco de memória RAM que pode conter muitos, muitos números.
A partir desses blocos somadores e deslocadores, você pode construir circuitos que se multiplicam e dividem … e a partir deles, podemos fazer circuitos que calculam coisas como senos e cossenos e raízes quadradas. Também podemos fazer circuitos que comparam dois números subtraindo um do outro e vendo se o resultado é positivo, zero ou negativo.
Então, há um monte de lógica de controle – que pode dizer a esses outros grandes pedaços de circuito para mover um número de um lugar na RAM para outro – ou para adicionar dois números retirados da RAM juntos e gravá-los de volta em outro lugar na RAM.
A etapa final é usar um número armazenado na RAM para dizer à lógica de controle o que fazer … então ESSE número é um código que representa uma instrução em um programa de computador. Então, talvez o número 1 signifique “mover um número de um lugar para outro” e 2 significa “adicionar dois números” e 3 significa “comparar dois números”. Depois de cada instrução ter sido realizada, o circuito busca a próxima instrução e a executa também. Se você fizer uma comparação, pode dizer a esse bloco de lógica para começar a receber a próxima instrução de outro lugar.
Este, então, é um computador MUITO simples – mas bastante utilizável … mas as coisas ficaram SELVAMENTE mais complexas do que isso.
Quando todos esses circuitos lógicos cada vez mais complicados são combinados – podemos acabar com um chip com mais de um bilhão desses minúsculos transistores!
Chamamos isso de “CPU ”Chip.
Em seguida, obtemos os outros chips que fazem o computador inteiro – notavelmente, há os“ chips de RAM ”que armazenam números exatamente como nosso flip-flop – mas usando um método mais eficiente de espaço . Esses chips usam capacitores em vez de transistores – e ao carregar um capacitor (ou não) armazenam um único bit de informação em menos espaço do que um flip-flop. Esses chips de RAM são mais ou menos apenas um mar VAST de capacitores e lógica de controle. Bilhões deles em um único chip.
Temos também chips que fazem coisas como enviar o conteúdo de um pedaço de RAM para uma tela para fazer uma exibição. Os números na RAM são agrupados em conjuntos de três que representam o brilho das cores vermelha, verde e azul em um único pixel na tela. Milhões de números são usados para descrever a imagem que você vê – e o computador muda essas cores a cada pixel, escrevendo números na memória RAM.
A máquina resultante é a coisa mais complexa que os humanos fizeram – por FAR. Um celular ou um laptop pode chegar a um trilhão de transistores e capacitores.
Como um engenheiro de software de 62 anos – acho bastante surpreendente que tudo isso tenha se tornado possível durante a minha vida. Quando comecei a fazer isso, os computadores ainda eram feitos da mesma maneira – mas um transistor era algo do tamanho de um tic-tac mint – e agora eles são menores do que o comprimento de onda da luz!
Mas tão incrível quanto toda essa complexidade é – o que me surpreende totalmente é o quão loucamente confiável tudo é.
Seu carro é talvez feito de 10.000 peças – algumas das quais funcionam alguns milhares de vezes por segundo. Depois de alguns anos (o que é talvez alguns milhares de horas de operação), algumas dessas peças podem dar errado e precisam ser substituídas.
Meu computador é feito de um trilhão de peças – a maioria das quais está fazendo coisas alguns bilhões de vezes por segundo. Seu hardware funcionará perfeitamente por uma década – representando algumas centenas de milhares de horas de operações – mas um quintilhão de operações individuais – cada uma das quais aconteceu perfeitamente.
Os computadores são coisas realmente incríveis.