For the most part when you buy a computer it comes with Windows and Windows is what runs your programs, Windows is then an operating system. Windows provides a means for developers to ignore all the lower level aspects of running a computer and just make the program work. However you may have heard there are other options for operating systems and this is what this thread aims to cover. For the most part we will be looking at so called PCs as trying to cover minicomputers, phones, tablets, other devices and everything else would take forever. Running an operating system First it should be noted there are two main ways of running an operating system 1) On the hardware This typically involves downloading/buying a CD, USB drive or something similar before rebooting the machine, loading up said item and installing the operating system to the machine. You can have more than one on a machine, you can even have more than one on a single hard drive, search for "dual booting" for this one though if you need a program to handle it with Windows then http://neosmart.net/EasyBCD/ has you covered, Linux usually manages well and on Apple computers you want to look up parallels. Equally there are operating systems designed so that you can put in the disc/USB, boot from it and run entirely from that without touching the main hard drive. Such a thing is known as a live CD/live USB. 2) In a virtual machine. The concept is increasingly popular in the higher end business world for servers (to the point it is probably dominant and people get looked at oddly if they are not using it) but also available and very useful for single person use on normal desktops. The end use desktop focused stuff is what we will be looking at for this one; business focused virtualisation has a whole raft of things it needs to do differently, and often expenses associated, which will make little difference if you are more concerned with testing some operating systems, maybe doing some work in one or two at the same time, keeping one running an operating system that has legacy software you need from time to time, having a virtual machine you can pass around like a normal file that does a given task or as well as possibly have a lower powered server machine to play with. In the end user world (and the business software gets very expensive so that is another reason to ignore it) there are two main players Virtualbox https://www.virtualbox.org/ VMware (the vmware player line) http://www.vmware.com/products/player Both do quite well and have much the same functionality, which is to say both will allow you to run various versions of Linux, Windows, BSD and possibly even OSX upon your normal desktop PC (assuming it has enough memory, hard drive space and CPU -- if it has a dual core processor and a few gigs of RAM then it should be more than enough to do basic virtualisation with). Virtualbox may just have the edge in terms of licensing (there is the normal "free" version that is actually pretty free at low volumes/if you install things yourself, also a GPL version that is not quite so featured packed, vmware player on the other hand is paid for commercial use), probably also in terms of aggro caused when using it. However neither of these perks are enough to dismiss VMware player. Both software packages can also integrate the operating system they are virtualising quite tightly with the host operating system; VirtualBox's "Seamless Mode" and VMware's "Unity Mode" being what you would want to look at for that. http://www.howtogeek.com/171145/use...amlessly-run-programs-from-a-virtual-machine/ covers how to use those. Mac/OSX computers also have the option for Parallels Desktop ( http://www.parallels.com/en/products/desktop/ ) though it is paid software where virtualbox is free and works well. In the business world you do have options to do things like boot into a minimal OS and then give over the resources to the virtual machines, if you want to experiment with the minimal stuff (but for free and without as many of the traps and pitfalls) then http://www.proxmox.com/proxmox-ve might be worth a look. Otherwise you are back looking at the higher end versions of VMware, or companies like Cirtrix and their xenserver products. It should also be noted that Windows server 2008 and beyond has a virtualisation component called hyperV that is available in various capacities for free; it does not support quite as many operating systems as the others mentioned but it does officially support most post 2000 versions of Windows and several key distributions of Linux, unofficially is supports more than that. Equally there are subtle combinations of the two methods, paravirtualization is probably the biggest one here. The different types of virtualisation are usually broken down by how they act in relation to the host, which is to say how isolated they are. Paravirtualization shares more with the host system than the likes of virtualbox above, doing this allows it to be a bit lighter on resources. Linux (and similar operating systems) have support for it from the ground up and, ignoring concepts like terminal servers (which can act very similarly to how a lot of people use things), you can also kind of get it for Windows in things like http://www.aads-worldwide.hk/products.html, Unless you have a specific case it is probably best to stick with the likes of virtualbox and VMware player above; most would use paravirtualization for things like running server programs but keeping them somewhat separate and able to be split up as more servers became available. Somewhat unrelated but also worth knowing about are programs like http://www.sandboxie.com/ (a way to run programs but (hopefully) not have them know about things outside their sandbox and also prevent them from making lasting changes to a system) and knowing how to edit boot.ini to create a kind of clone of your operating system. The different operating systems Discussion here will be restricted to the popular ones. Windows Windows is the most popular operating system for the PC class of devices. It is proprietary software that you have to pay for a newer version of (it comes as part of the cost of the PC, though owing to deals made it may seem like it costs little if you add up all the other parts). Fully new versions come out every three or so years and tend to be supported for about 13 years (though new features tend to stop coming somewhat before then), somewhat recently we saw the end of Windows XP and even more recently the end of Windows Server 2003. Being the most popular it also runs the most programs, including most games, most pieces of software to interact with printers, phones, cameras and other nice devices. It typically comes in three broad versions and can be divided a few more times beyond that. 1) Home use operating systems 2) Business use operating systems 3) Servers. Each version of windows seems to come with several variations on the theme but generally 1) Does most of what people want at home. It will go on the internet, print things, type documents, organise photos, play games and have an instant messenger program of some form. 2) Does everything the home version does but will also join domains and be more able to be managed as part of a network. The main thing a home user would want this version for is because the home versions might have limitations on the hardware that can be used and many higher end gaming or workstation class systems will brush up against those (Windows 7 Home Basic for instance will only accept 8 gigabytes of RAM, Home premium is 16 and the professional/ultimate lines top out at 192 gigabytes, 16 gigabytes is nothing unusual in a current gaming/workstation class system and many can go higher still). 3) Both 1) and 2) may have limitations on how much they can be used as a server (though a lot of the time this is not enforced at software level). To this end there are server versions of windows, the server versions are also what you typically will use to deal with the lower level aspects of your network -- need a machine to manage it so people can login on the domain, you want a server rather than just giving the job to a desktop machine). On a few occasions people will use the server version of Windows on a desktop but there is typically a good reason for it. Installing software is typically done via going to a website/getting a CD and installing a file, one probably called setup.exe. Newer versions of Windows do have proper "stores" for getting programs, equally there are very nice programs like https://ninite.com/ that will allow you to install multiple programs at once. Linux Linux itself is not an operating system, it is just the core part of it called a kernel (and strictly speaking that should be called "GNU/Linux". Others can take the kernel, surround it in whatever they feel is needed and release it as a distribution (aka "distro"). There are hundreds of these distros though most will boil it down to a few core ones. http://distrowatch.com/dwres.php?resource=major covers the major ones that most people are concerned with. Until you know otherwise, or if you have a very specific need that another covers, then you are advised to stick with those. They are the most popular, have the most development, are the most well known (and thus the most well supported) and generally are the most likely to give you the least hassle when installing them. One minor exception might be for the XBMC (soon to be Kodi) media player that you can run as a standalone system http://xbmc.org/download/ Support timeframes vary widely between distros and releases within them. If a distribution is not "rolling release" (everything gets updated forever, though this can be tricky to manage) then for the longer term supported ones you will probably want to look at so called "LTS" aka long term support versions which typically go for about 7 years. For most the length of support is somewhat shorter at only 3 or so years (maybe even less) but as upgrading is free and not necessarily the hardest this is not viewed in the same light as if Windows or Apple's OSX had shorter term support. Linux is seen on any number of devices but in PC like hardware it has four main use cases 1) As a desktop/workstation. Here you can get a distro that aims to do what most people do on a desktop computer. To that end there is a web browser, office software, music players, some games... This is what a lot of people are looking into when they want Linux. There are quite a few quirks but equally you can do professional and normal user tasks on it, it comes with the added bonus that it is somewhat more secure than Windows so you can spend less time fighting malware. Also though more for the server thing if you aspire to call yourself versed in computers it is well worth taking the time to learn Linux. 2) As a server. Depending upon what stats you read then Linux may even be the most common type of server out there. It is often free (people tend to pay companies for support rather than the OS itself) and has very powerful pieces of software to have it act as all manner of servers (database, website, file sharing, network management, distributed computing....). Technically a server is just a machine that provides resources for another machine, you can even quite happily have a server running desktop software (it will just take some resources). However people that want proper servers will tend to want to set it up like that from the start, most of the popular distros from the earlier http://distrowatch.com/dwres.php?resource=major link will have a server version (Linux Mint being the main exception though being based upon Debian that is not such an issue to just use Debian, or Ubuntu server as it is also based on Debian), or at least options to set it up as a server when installing them. CentOS is the more server focused version of those but Debian's server capabilities are renowned and nobody will really blink if you have a (open)SUSE, slackware or Ubuntu server. Do note with tools like Samba you can emulate a lot of the Windows Domain controller functionality, this then allows you to have a Windows domain but with a Linux server. It can take some doing but can be a way to have Windows clients with no Windows servers ( https://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/domain-member.html ). 3) As a rescue/hacking/liveCD. As you can boot off a CD then you can boot into a CD designed to access dying machines, do something and not leave a trace behind, run a machine so that you have "your" machine on anything you can boot it on and more besides. Most desktop distributions will have a LiveCD version but for the more dedicated things then Puppy linux http://puppylinux.org/main/Overview and Getting Started.htm A very lightweight distro that runs very well as a liveCD. Kali A fork/branch of the security/penetration testing/hacking focused distribution called Backtrack. It aims to allow you to test security of networks and computers, mainly by providing you most of the tools you need to do it. Though you can do it with many other distros this is also the thing that will allow you to run the wireless network cracking tools. http://www.kali.org/ More system recovery focused Hiren's BootCD http://www.hiren.info/pages/bootcd Trinity rescue kit http://trinityhome.org/Home/index.p...R_YOUR_COMPUTER&front_id=12&lang=en&locale=en UBCD (Ultimate boot CD) http://www.ultimatebootcd.com/ 4) As an appliance. Your internet router/access point is just a computer that knows a few things. As well as the media player XBMC/kodi we mentioned a little while back you can also make a server to act as an internet router, firewall, network management computer, CNC machine manager..... http://www.clearfoundation.com/Software/overview.html is a good example of the network side of things. http://www.linuxcnc.org/ has some stuff on the CNC machine controllers. Perhaps more relevant for around here is that you can also do things like make an arcade cabinet that always boots into the arcade side of things, however for this sort of thing most will just have an autoboot on a normal desktop system. My existing Windows programs, how to use them? Seen as it is not Windows then your Windows software will not work out of the box and there may not be drivers for your hardware (though it is quite good these days). In the modern world this is not so bad for several reasons 1) A lot of what you use on Windows may have a Linux version. Pick a program on https://ninite.com/ and there is a good chance it will have a Linux version, if it was not a Linux program to begin with. 2) There are programs like Wine that aim to allow Windows programs to run on Linux. 3) You can run a virtual machine (covered elsewhere) to run Windows on top of Linux, you can even pass through USB ports and more besides. 4) A lot of things run from a web browser these days. Linux has very nice versions of Firefox and Chrome, both of which you may already use and are otherwise considered top flight web browsers. 5) There may be an alternative piece of software that does the exact same thing as the Windows program you used. Other than a virtual machine it is not a sure fire thing, though it is definitely worth a look in. Other things to note about Linux. Remember when we said Linux was the kernel and things get wrapped around that? The big ones for most people are the desktop environment and the file manager. Though there are many subtle differences the big visual one is in the desktop environment (DE for short) and what file manager it uses, many distros will have several versions aimed at different DEs. There are several options for them these days. Classically the big two were KDE and Gnome. KDE and Gnome are more than just DEs though and will have a whole load of software (including web browsers, games, media players, office programs and more) that flank them. That said you can run KDE software on Gnome, vice versa and every other combination, the worst that will happen is you have to install the relevant libraries for that software. Equally you can have more than one DE installed and switch between them at will, typically on the login screen. Other popular desktop environments include XFCE Noted for being quite lightweight it was probably the kind of distant third in the popularity stakes back when it was mainly KDE and Gnome. It has since come into its own and is a common sight among distros. There are even lighter ones available including LXDE and Openbox, for some those risk being too minimalist but they do launch programs ("who cares as long as it launches firefox" is a valid position to take) and allow you to manage files via a graphical interface. Unity Ubuntu's new DE, has come under some fire for some odd ideas and inbuilt advertising and searches (which you can disable). Many felt KDE and Gnome lost their way so they forked them (if the old source code is there and available then you can do things like this, which many people in the Linux world often do). To this end you now also have Cinnamon Started as a Gnome fork but grew into its own project along the way. MATE This is the what if Gnome was like the old Gnome (or indeed the 2.X branch continued to be developed). Trinity DE (TDE) Perhaps less well known than the above two, mainly as it does not have the driving force of Linux Mint behind it like the other two, this is a throwback to older versions of KDE (specifically 3.5). What about the one that gives all those fancy effects I see in videos? This is not technically a DE but a thing that sits on top of it. These days most of the things that did it are merged under one umbrella, though the pace of development is not the quickest, and is called Compiz. Installing programs on Linux Though you can go to a website, download a program and run/install it for the most part Linux does not do this. What you use are so called software repositories (repos). Here your distro will have a whole library of software you can search through, read up on and install with a few clicks. When everything else is said and done this is probably the biggest difference between versions of Linux. However in the graphics centric desktop world it is all much the same -- you click on the repo program, select the software you want and it installs/compiles it. If you are doing in the command line then you more or less do the same thing but for some distros you type apt-get install, for others you will type yum and others do other things, such things are covered very early in the introductions to such systems. Things to note if you are used to Windows There are no drive letters. Everything goes through the single filesystem, however in most window managers/file viewing programs it will have your USB drives, extra drives and whatever else much like you would have seen them on Windows. It is designed for multiple users. More modern Windows versions do this far better than older versions of Windows but Linux is and always was designed to be used by multiple users. You can ignore this and have it autoboot into a single user but it is designed to keep things separate. A few years back, and in some server/secure versions you might still meet it, this was quite prominent if you wanted to edit how parts of the system worked, today the permissions and su/sudo command mean this is only there if you go looking, likewise with Window's UAC feature you have already felt something like it. It is not Windows. This is mainly for the Windows "power users" and people that fix Windows a lot. The shift and slightly different ways of doing things can be something of a culture shock. This also can lead to the "if I, a Windows power user, can not grasp this Linux stuff then those worse than me at Windows have no chance", there are some extra historical reasons where that might have happened but for the most part this is wrong. Apple Apple are probably the number two in desktop systems, and have a fairly large following among younger people/university/college age people, especially in North America. There are options for running their operating systems (OSX) on non Apple hardware (see a concept called Hackintosh) but for the most part if you want OSX you will need Apple hardware. Also OSX is the main way to program for Apple devices like the iphone, ipod and ipad. Apple tends to use slightly better quality lines of hardware, place restrictions upon what hardware can be run in their machine and may even use a fair bit of custom hardware to get there. Prices tend to be higher and finding parts/getting support tends to also be more costly. Similarly it is not Windows so the problems of running Windows software on Linux return for OSX. It varies a bit but quite often developers will make OSX versions of software and drivers where they may not make them for Linux. Historically they were viewed as superior machines for media creation (video, photo, audio) and it was pretty true, today it makes no odds and Windows also has the top flight software there. Software installation is a mix between the Apple stores and downloading programs like you might on Windows. Support timeframes are considerably shorter than Windows as well, as you are also hardware limited it can mean writing a still fairly new (if you are used to Windows anyway) machine off, or at least installing Windows/Linux on it. http://www.everymac.com/systems/by_capability/maximum-macos-supported.html There are server versions of the Mac operating system. They are less commonly seen than either Linux or Windows servers. However they act in similar capacities and can share files, be web servers, deal with network logins and all the things like that. Other operating systems Linux is what is called Unix-like. Unix is/was an operating system and guidelines for operating system design. Linux was not the first to follow this design guide and some of the older versions continued on in various fashions after Linux rose up. The most well known would probably be the BSD family of operating systems. For the most part they look and feel somewhat like Linux, both because they share code/programs at various levels and because they are both Unix based. There are some subtle differences between Linux and BSD at various levels, most of these are somewhat academic unless you have to consider licensing (various BSD licenses may not require you to redistribute the source code changes or have open source versions of your software where Linux/GPL may force you to*). Otherwise you can probably have similar experiences shifting between various Linux distros where they may use a slightly different command for a given action or have a different directory layout. *in the dim and distant past Apple's OSX took a lot of code from BSD, further development on both fronts means this is more of a historical talking point these days as far as running code goes. If you want to go academic then there is more to it, as far as having a Wine like program you are out of luck. There are four main BSD variations FreeBSD Probably the most popular of the BSD variations. OpenBSD Has something of a security focus, though it also has something of a purity (as far as code, licenses and the like) focus. Is responsible for many pieces of software also seen in Linux (openSSH being one of the more notable) NetBSD Has a fairly similar philosophy to OpenBSD. DragonFly BSD Basically another BSD option, possibly less popular than the others it is actively developed and has some interesting ideas that go into it. Most of the BSD flavours do well as servers and desktops, the former being served very well. Being so similar to Linux in operation and design they tend to be able to run most of the same software and face similar issues if you are coming from Windows. Hardware support is probably less but if a company makes the effort to have something be Linux compatible (thinking wireless cards and whatever else) it will probably work here too. Technically there is a free version of something that aims to be compatible with Windows in the form of ReactOS. http://www.reactos.org/ is the site. Though it is making advancements for the most part it is still considered concept software/very early stage. Also for windows there are options to boot it as a liveCD Bartpe ( http://www.nu2.nu/pebuilder/ ) was one of the earlier attempts and does it for windows XP, newer versions have other options. There are still further systems, though these are typically for older or obscure hardware.