1.A person who knows very much about certain operating systems. They usually use exploits, or glitches in the systems to get in, but sometimes will socially engineer somebody else into giving them access.
A hacker feels the need to explore, and more often then not, the need to be better then everybody else. (thus the phrase "f33r my 1337 ski115")
The peak of an exploration is when the hacker obtains super-user status, which means they have access to everything on the computer.
2.Somebody who uses their programming knowledge to change and alter computer programs to do what the want. See cracker.