Gas is its own unit, decoupled from ETH. Opcodes cost a certain amount of gas to execute [1]. When creating a transaction, a sender sets the maximum amount of gas that they are willing to pay. This is the "gas limit."
[1] https://docs.google.com/spreadsheets/d/1m89CVujrQe5LAFJ8-YAU...