What's the difference between bitcoind and bitcoin-qt? Different commands? This is a multi-part question, mainly do to contradictory information from different articles. It's got me all confused.

From my understanding, bitcoin-qt is just a GUI version of bitcoind - which was the original 'client' or 'node'. Is it true that bitcoind is actually built within bitcoin-qt, and runs in the background as a daemon (when the app is open)?

When I first started bitcoin-qt, it started downloading the block-chain. After that, I was curious about setting up a pool server, so I sought out information about that. I ended up going through a tutorial on installing Eloipool - they informed me that I had to have bitcoind setup and running as a daemon. That was interesting, because I thought that it was already running through bitcoin-qt? 

This is where my confusion started. I even tried using the bitcoin-qt debug console; but it didn't have the same commands as bitcoind - specifically the rpc ones.

Where does this leave me? Am I doing something wrong? If I shutdown bitcoin-qt and start bitcoind -daemon, then it starts downloading another block-chain.

Do I really need both of these to make this work, or does the bitcoin-qt have access (somehow) to all the bitcoind commands?

Does bitcoin-qt use bitcoin.conf, the same as bitcoind? The reason I ask this, is for setting up the rpcuser and rpcpassword, amongst other things.

* UPDATE *

I did some more reading, and found out that most people just use bitcoind for more serious stuff. Is there not a way to configure bitcoin-qt to use a currently running instance of bitcoind, instead of spawning it's own daemon (when GUI is open).
You can either run bitcoin-qt or bitcoind, not both at the same time (the Qt part is not just a frontend on top of the RPC code, it uses the core directly).

You can however run Bitcoin-Qt with the -server command-line switch, in which case it will also expose an RPC service (essentially functioning like bitcoind in addition to the GUI interface). The RPC console inside the GUI has the exact same functionality as the bitcoind RPC client.

PS: bitcoind is both an RPC server (when started without RPC command on the command-line) and an RPC client (when started with RPC command on the command-line), while Bitcoin-Qt only optionally runs an RPC server (when started with -server).

Update: In version 0.9, bitcoin-cli was added with just the RPC client functionality from bitcoind. In version 0.10, this functionality will be removed from bitcoind. This means that the following ways of interacting will be possible:


bitcoin-cli or an external RPC client talking to bitcoind.
bitcoin-cli or an external RPC client talking to bitcoin-qt -server.
Using the RPC console in bitcoin-qt.