It was Turing that first
observed that general purpose computers are possible, by showing a universal
Turing machine that can simulate the execution of every other TM M given M's
description as input. Of course, since we are so used to having a universal computer
on our desktops or even in our pockets, today we take this notion for granted.
But it is good to remember why it was once counterintuitive. The parameters of
the universal TM are fixed -alphabet size, number of states, and number of
tapes. The corresponding parameters for the machine being simulated could be
much larger.
from Computational Complexity: A Modern Approach by Sanjeev
Arora and Boaz Barak(p23)