Getting a transaction confirmed on Ethereum isn't free. If it were, the network would be overrun very quickly. In order to get a Ethereum transaction confirmed, you have to pay a fee to cover the computations you're asking for. This fee is known as gas, and it varies depending on the complexity of the transaction. Sending Ether from account to another is relatively simple and costs 21,000 gas. More complex transactions, like a decentralized exchange trade, can cost much more. On the chart to the right, You can see that the average Ethereum transaction costs multiple times the gas of a simple ETH transfer.
The transaction fee is paid in Ether. It is determined by the amount of gas required by a transaction multiplied by another value called the gas price. Miners receive the transaction fees, so they select transactions with the highest gas prices first for inclusion in blocks in order to maximize their revenue. On the chart to the right, you can see that while the gas cost to send ETH is fixed at 21K, the actual transaction fee paid in ETH for a simple transfer varies based on prevailing gas prices.
In order to keep the Ethereum blockchain manageable to run for individual participants, there is a limit to the amount of computation (as measured by gas) that can be performed each block. This is the gas limit, and it's voted on by miners. You can see how the per block gas limit has evolved over time in the chart below.