If you register a domain with Bluehost when signing up for a hosting account, there is a domain fee that is non-refundable. This not only covers our costs, but ensures that you won't lose your domain name. Regardless of the status of your hosting service, you'll be free to manage it, transfer it after any required lock periods, or simply point it elsewhere at your convenience. You retain ownership of your domain until the end of its registration period unless you elect to extend it.
Building your website on a shared server means that your pages may be affected by a neighboring site that devours too many server resources. For example, if that site receives a huge spike in traffic, your pages might load slowly—or not at all. Investing in a dedicated server greatly reduces this potential problem, plus it gives system administrators greater control over the apps and scripts that they can install on the server, too. Shared hosting is far more limited when it comes to what you're allowed to do, because everything you do could potentially affect the other sites with which you share the server. When you've got the server all to yourself, your scripts and apps won't impinge on anyone else's bandwidth or RAM.
The answer to this question largely depends on two factors. Are you new to server technology and not very interested? In this case, Windows is the easiest option to get where you want to go. Do you already have experience with Linux or would you like to familiarize yourself with this operating system? If so, Linux gives you more freedoms to configure your server, and you will be using an operating system that is less vulnerable to attacks from the Internet. Linux is also open source and therefore free.