What are PHP, ASP, HTML etc?
What is MySQL, MS SQL etc?
Web hosting is a service that allows you to publish a website onto the internet. It requires a server setup with a constant connection to the internet to upload your website to. A DNS record also has to be setup to point people to that server when they type in your website address into their browser.
Your disk space is the amount of space allowed for your website. It specifies how large your website can be. The more disk space you have, the more you can have on it. This is just like the hard drive on your computer or the size of your flash drive.
The bandwidth or data transfer is how much data your website can send each month. Every time someone views your site, it has to transfer the information on the page being viewed to the computer of the person viewing it. This would include the page itself plus any images or video on the page. If someone has a video that is 5 megabytes in size, then each time someone views that video it sends 5 megabytes of information to that person. If 1000 people view that video, then it adds up to roughly 5 gigabytes worth of data transfer or bandwidth.
These are all programming languages. There are many different programming languages used to make websites. Some are for Windows based hosting environments, some are for Linux based hosting environments and some can be used on either. Each one has its own uses.
These are database systems. Databases are often used on websites to store information. It might be items for sale on an ecommerce website, or log in credentials used to access certain parts of a website. MySQL is used with Linux based hosting and MS SQL is used with Windows based hosting.
The basic difference is which operating system the server is using; either Linux or Windows. Which one to use would depend on what is being done with the website and how it is being done. Someone using PHP to write their website in would use Linux and someone using ASP or .NET to write their website in would use Windows.
The answer to this is yes you can but it is not a good idea for several reasons. One of the biggest reasons is that a DSL or cable connection are not guaranteed an uptime, and so any outages with your internet provider or problems with your phone or cable lines will also take down your website. It also can put a strain on your internet connection if you get a lot of traffic to your website. Even a connection of 10mbps will be slowed considerably if it gets a lot of traffic, not to mention the the workload put on your computer's CPU and memory which is unlikely to be of the same power as a web hosts server. You would also have to work to maintain the computer, keeping it secure, and fixing things yourself when something goes wrong.