Programming language books explain that value types are created on the stack, and reference types are created on the heap, without explaining what these two things are. I haven't read a clear explanation of this. I understand what a stack is. But,
- Where and what are they (physically in a real computer's memory)?
- To what extent are they controlled by the OS or language run-time?
- What is their scope?
- What determines the size of each of them?
- What makes one faster?