(If I may repeat myself a bit...) Mining is like having a lot of people throwing weighted coins (such that 1 millionth of the time it comes up heads) and telling you when they hit a heads. If one such "heads" is reported every 10 minutes (600 seconds), you can make a very accurate estimation of how many times per second the coins are being flipped. In this example:
(1,000,000 flips/heads) / (600 seconds/heads) ~=
1,667 flips/second
The network difficulty is how you adjust this 1,000,000
figure so that the 600
figure stays consistent as the network's total hash power (1,667
) changes.
To see real-world calculations of how the difficulty affects the coins discovered per time spent, see any mining profitability calculator, and change the "difficulty" figure. The Bitcoin wiki has details on difficulty, as well.
I don't know what a hash is either.
When mining, your computer creates a block of data, which has a list of all of the transactions it knows about, includes a transaction that pays you the mining bonus, and then hashes that. If the hash happens to be a small enough number (as defined by the difficulty), the block is valid. If it's not, you increment a random number called a "nonce" that's in the block, so that the block has the same meaning but different data, and hashes the block again. Lather, rinse, repeat. (the nonce is included from the start, of course, but I didn't mention it to avoid being confusing)
The details of the block hash are explained in more detail at Bitcoin wiki's Block hashing algorithm.
Gigahashes per second, then, are how many billion times your hardware can do this hash per second.
If the pool you're in has 424 Th/s and you have 100 Gh/s, then you are about 1/4000th of your pool's total power. You can expect to be the one to solve about 1/4000th of the blocks (on average) that your pool finds.
(technical details intentionally omitted; those are available at my various links, and your link)