**CPU**
You could read about transistors, what any processor is made of in the electronic side.
A simple electronic component that act as a switch. Yes, as simple as that.
Then, you can make an arrangement of those (in a multiple of 8; up to 64 in parallel for each bit) to create a logic circuit (to check for conditions and move the signal along a sub circuit that does the action). Now your transistors created a processor!
The thing is, a processor is wired to react to many specific conditions, and those “conditions” actually match (ELI5/tldr) what is called the assembly language (or ASM). Your software! (You can read UAL on Wikipedia for more)
Don’t forget your software is stored in some kind of memory, which is also an electronic/electric level.
(Technically, speaking, you could wiring up a multiple of 8 buttons (up to 64) + one “enter” instead of using a memory module. Then manual enter the next instructions with those buttons. This is a minimalist example. Yet, imagine if you replace button by light sensor? Pssss, you just created punched cards (or almost)!
If you are a programmer, you can see ASM as a… Parsing programming language… A physical one though.
ELI12 about: ASM is a programming language, a human language. A text file, which is also a human tool. That the processor won’t understand. However, ASM syntax is highly based on how the processor expects things to work. So there is software that basically converts it (on a 1:1) to what the processor understands.
Each command is called an OPCODE and his available in a document called a datasheet. (A technical documentation about how the whole device works). In case of your modern computer, they use all the same thing otherwise you won’t be able to install the same software across multiple processors.
For example, your cellphone and computer use a different chip design, hence why software isn’t compatible.
**Outside world**
The CPU is working inside him only. So now the next step is to interact with something outside. Think about, your mouse, screen, … or even as stupid as LED/button. Otherwise, your CPU is going to be useless!
The CPU also contains instructions to control directly (or read) some of his pins (pins that are connected to those transistors you control!).
Then it is a matter to know how to read (or talk) whatever is plugged into those pin you want to interact with.
LED is a basic electronic component, they just react to electricity. So nothing fancy.
But your screen, mouse, … They are controlled by another CPU. So you need to know what to send exactly over those pins. Again, you will need to read the datasheet of the outside circuit to know how to control them.
In this case, it will be a mix of many things. USB/PCIe as the messaging technology. Then HID mouse (for the mouse) specifications (for the “command”), OpenGL/DirectX (for the graphics card)
Latest Answers