In short, yes.
First of all, there is a free market between transaction senders and miners, and it is miners who "sell" gas. When you start mining in a client you have the option of setting various flags of what gas-price range of transactions your client will accept or reject. Transactions which don't offer a high enough fee won't be mined.
Whoever successfully mines the block collects the gas-reward in terms of ether.
From the Homestead Docs:
The Ethereum protocol charges a fee per computational step that is executed in a contract or transaction to prevent deliberate attacks and abuse on the Ethereum network. Every transaction is required to include a gas limit and a fee that it is willing to pay per gas. Miners have the choice of including the transaction and collecting the fee or not. If the total amount of gas used by the computational steps spawned by the transaction, including the original message and any sub-messages that may be triggered, is less than or equal to the gas limit, then the transaction is processed. If the total gas exceeds the gas limit, then all changes are reverted, except that the transaction is still valid and the fee can still be collected by the miner. All excess gas not used by the transaction execution is reimbursed to the sender as Ether. You do not need to worry about overspending, since you are only charged for the gas you consume. This means that it is useful as well as safe to send transactions with a gas limit well above the estimates.
http://ethdocs.org/en/latest/contracts-and-transactions/account-types-gas-and-transactions.html#what-is-gas
Some interesting pages:
https://forum.ethereum.org/discussion/1477/what-does-the-halting-problem-have-to-do-with-ethereum
https://github.com/ethereum/go-ethereum/wiki/Gas-Price-Oracle