Every time I think I know the full process of turning source code into the thing that get runs, it turns out I'm missing a step (this time it was microcode). So the complete hierarchy, soup to nuts, goes
Source code -> preprocessor -> compiler -> assembler -> linker -> OS loader -> microcoder?
1)Does the linker produce machine code?
2)What is the device that turns machine code into microcode called? Or is it just done by the CPU?
3)Am I missing any steps?
4)I used to think programing was giving the human readable source code to the compiler which turned it into 0s and 1s that the computer understands. Is this 100% wrong? For example is everything in a computer technically 0s and 1s or is there actually a step where a distinction can be made?