A long time ago, many people's last names said something about who the person was.
Someone's last name may once have indicted the person's job. For example, if someone's name was weaver, the person's job was producing cloth. A person named Smith might have been a blacksmith, a goldsmith, or a tinsmith, at any rate someone who worked with metal. A man called Taylor usually did a tailor's job, making clothes, while a man called Gardner would have worked as a gardener.
A last name could show who a person's father was. For example, Peterson meant Peter's son. The word parts Fitz-, Mac-, and O'- also meant 'child of': Fitzharris was the child of Harris, macDonald was the child of Donald, and O'Neil was Neil's child. Sometimes a last name is just a first name with an 's', such as Adams, Williams, or Andrews. This 's' is in fact a lazy way of writing''s', so Adams means the same as Adam's, which again means Adam's child or Adam's family.
In some cases a person's last name told us where he lived or where he came from. Every village had its hall, its woods and its village green. Hence three commonplace names are Hall, Wood and Green.
This is all I know about family names. Hope it helps! You must not think, however, that every English person can explain where his or her family name comes from. The meanings of many English family names have been lost in the course of time.
PS: finally I found that typing is so tiring...