Smart Contract deployment environment
Let us first see how a hello world program is written in the remix ide.

Now after compilation the next step is to deploy this smart contract in a network. For deployment we have the following options available with us in the Remix IDE.

Here the Javascript VM stands for javascript virtual machine which is a program which is used when we want to test our smart contract. In JVM the transaction will be executed in a sandbox environment which is the testing environment. The JVM has its own memory blockchain and its main purpose is for testing
Now we also see an option of injected web3. This is to deploy our contract with real ether in the mainnet or fake ether in the testnet with the help of the metamask wallet.
Web3 provider is used to deploy the contract in the githash