It’s a very tall order to ELI5 the whole hierarchy of layers going from silicon wafers to GUI. I studied physics, microelectronics and computer science in Uni and while I might be able to explain it, it would take a lot of writing to do all the layers from transistor fundamentals through logic gates to logic circuits like adders to CPU fundamentals to kernels to OS to GUI.
But maybe the bottom layers…. so the silicon wafers printing, fundamentally it is “printing” transistors onto the silicon, and connections between those transistors. Won’t go into the printing process, but a transistor in this context is basically a switch with three terminals. When you apply a voltage across terminal 1 (the “input”) and 2, a connection is made between terminal 2 and 3 (the “output”). So you have an on/off switch, controlled by voltage. The switch can for example be used to control another (transistor) switch. And if you connect the output of that switch to the input of a preceeding switch, you can start making clever circuitry.
If you call the output of a switch, when it is connected, for 1, and 0 when it is not connected, you have made the first abstraction, from electronics voltage state, to ones and zeroes. (the states might be reversed, but that does not matter for the discussion). In a computer, these ones and zeroes are all there is, fundamentally, by means of abstract/logical building blocks.
To make it easier to think about this abstraction, we make up a number system with these ones and zeros, usually so that if you have 1 switch, in abstraction terms called, 1 bit, a you can count 0 and 1. If. But you can and will connect switches to each other in clever ways, as described, so that the circuitry can count, for instance can 1 input drive two two outputs so that you count to 4: 00, 01, 10, 11. These are all the combinations you can do with two outputs, and you can just define, in the computer terms, that that means counting to 4, and that the different output configurations mean 1, 2, 3 and 4 (usually 0, 1, 2 and 3).
It is not to hard to follow an explanations on how these switches are connected to each other, with feedbacks etc, to make up circuitry that will count, and that can add, for instance add the output of the above example to the output of another similar circuit. See for instance [https://en.wikipedia.org/wiki/Adder_(electronics)](https://en.wikipedia.org/wiki/Adder_(electronics))
From then on, it is a question of scaling. Modern CPUs contain billions of switches like this, powering not only calculation units like the described, but also temporary storage (which can also be created by the same kind of switches), and more specialized compute units.
How software interacts with this will become too long. But fundamentally, the software is made up of a sequence of instructions written out in ones and zeros and they are fed to the CPU in sequence, which trigger the inputs of the same cicuitry as above to go “high” 1 or “low” 0, to then trigger the cascade of switches in a predetermined manner, that is, determined by the exact circuitry of the CPU.
It’s not magic, it is just a very complex whole that nevertheless can be broken down into understandable, digestible chucks of electronics and logic.
Latest Answers