Hlavně všechny normální programy běží ve virtuální paměti, kterou jim přiděluje systém.
Program vidí souvislou paměť od začátku do konce a taky ji tak adresuje, zatímco ty "nuly a jedničky" tak lezou "po drátech" z různých pozic na různých chipech, jak se to zrovna systému hodí. A když se mu to nehodí, tak si to klidně přesune "programu za zády" nškam jinam, nebo třeba taky do swapu