"Linux is not user-friendly. It _is_ user-friendly. It is not ignorant-friendly and idiot-friendly"
Keep that in mind as I explain the fundamentals of Linux to get you started :)
What Is Linux Exactly? An Operating System?
No Linux is not an operating system, Linux is a kernel, its universally supported by almost any hardware on the planet.
If you don't know what a kernel does, it does all the stuff in between your operating system and the physical hardware, it uses things called system calls, where the software sends a request to the kernel asking for more resources, the kernel then calls the hardware with the request, the hardware then responds with what the software needs, of course the kernel is much more than this, but this is the basic idea, in Linux it holds all your hardware information also, compared to how Windows works which is hold everything at the OS level, this gives you much more driver information from the first install and less reliance on the user installing drivers, it also controls power management for batteries and other things.
The difference between Microsofts NT kernel and the OSX kernel is the fact Linux can be fully opened up and edited and changed to how you wish, if can be made to support only your hardware increasing boot times and total system performance, or it can be made to sit on a specific architecture such as ARM, this freedom allows any user to create a truely one of a kind system for their box, aimed at what ever usage they need.
Linux is open source, this means the code can be viewed by anyone as explained above, but this is also extended to how the system is maintained, with Windows you use Update Centre, this used MS databases to call down updates needed to keep the system safe and productive, these are released at minimum a week each unless its a major patch, OSX does the same via their AppStore but its on a much slower time rate, Linux is updated daily, in its testing branch there is a new build every day, stable systems will get a new kernel update every weekend, this includes minor updates, this also leads me onto system updates in Linux.
Updating in Linux follows a different path, you may have herd of something called repos or repositories, these are one of the major backbones in Linux, each distro (Operating system) uses a package manager (More detail later) and when a command is issued, it calls the repos for updates, if they are ready, it will user prompt and download/install in seconds both programs and kernel patches come this way over the slow cycle of Windows and OSX.
With the Linux kernel you can contribute a piece of software if you so desire, and help it grow there is around 2/3 new revisions of the kernel a year, compared to Windows every minimum 3 years, this is thanks to open source and the repo system.
Okay so I know what Linux is, but how do I actually use it?
Okay this is where distros come into play, these are the actual operating systems, Ubuntu is a distro, Mint is also one, there are thousands out there, and dont think because Ubuntu doesnt fit you another wont, because it will trust me.
Distros power and usages can differ, Kali Linux is completely different to something like Manjaro, different users, different cases, there is not really much more to be said about the surface, lets move onto the driver intergration.
So you install the distro, this will install both the OS and the kernel, it will automatically on most times setup all drivers and need be components to make your system work, some minor tweaks maybe needed, but older hardware is normally better supported and works a lot better than Windows drivers there is a saying here in Linux
Windows is actually very driver limited, Compared to Linux.
This is actually very true, I have spent more times looking for drivers in Windows than in Linux, I spent all of 5 mins looking for a ethernet driver in Crunchbang ages ago, and its more than likely been added into linux since then, although stuff like ROG boards are not generally supported, for Linux you want to avoid ASUS like the plague but because of ROG prices Linux devs dont tend to get them, Devs are not poor, they just spend their money on better things...
This does not mean it is not supported, chances are it is, but stuff like Gigabyte and ASRock have better standing with Linux, the more common the hardware, the better support it has.
Also Linux has better driver support because there are generally two types of driver, Open Source and Closed source.
Open source is community created, freely edited by anyone and is generally for everyones benefit.
Closed Source is company developed, although some companies like Intel and soon AMD make some open source drivers, they also make closed source ones like Catalyst control centre, these days open source drivers on Intel/AMD are better than their closed source brothers, Nvidia is still lagging behind on both sides.
These updates all come from the repo system explained earlier, these updates are pulled from binary or source based files, Source is where your system will build the program its self known as compiling, Binary is pre-built, its faster to install but less made for your specific setup, regardless once these are pulled down you will be sat on the latest that repo has to offer, stuff like Fedora Rawhide can offer you the absolute greatest in technology, even tech that is not on other distros yet, it trickles down from bleeding edge systems such as fedora all down to stable ones like Debian, it can take a long long time though, this is why we here on Tek recommend bleeding edge over stability, bleeding edge is very stable still.
Repos will also update your applications, seeing as you pull a lot of applications from the repos it will also update when you tell the system terminal to update the entire system.
So that is a grasp of drivers and repo systems, Now for a major part of any distro, the Terminal
Okay so I know what the OS is, Whats this Terminal?
The terminal is your best friend, it may look scary at first but trust me this will allow you to fix anything in the syste, even without a graphics interface, its much much more advanced than CMD in Windows.
This tool allows you to edit any part of the system using commands, it can do simple things from update the system to actually pulling all components down from the internet to build your system to your specific hardware (Arch Linux/Gentoo Setup)
System commands vary from distro to distro, but UNIX commands stay the same, stuff like pwd and cd are the same in Arch as they are in Ubuntu, normally its update and repo specific commands that change in each distro.
If you ever need to call of the terminal (And you will) there are things called MAN pages, these are manual pages to teach you what each command and its sub accounts will do, its like having a offline google, but it cant actually give you a fix to your problems.
Much more can be explained about the terminal, but the best way is to open it and meet it, get to know it and watch the power of Linux flow through your hands.
Okay so all that aside, what about my Windows programs?
Okay its a shame we had to start on Windows and become so reliant on its file system, because when you see Linux file system and setup perform, you will see its a better setup, the fact you can open almost any file and inspect its code is amazing to a hacker (Dont be scared more after this) but Linux cant natively run your programs like Office and IE, thank god, this is because Windows uses .exe/.msi files, Linux uses tar files and .sh file. each system cant read the other, but in Linux there is an application to translate not emulate the programs you use in Windows, this is called Wine (Wine is not emulation, Remember that!) Sadly it cant run everything, but its getting better, if its about a year old chances are Wine can run it at some level, and chances are with better performance than Windows, but your best bet is trying to find a native linux app to replace the Windows one, its easily done and the app on Linux will more than likely perform better than the Windows native one :)
Wooh you spoke of hackers, am I less secure here or something?
Far from it, on Linux hackers are your friends, they find issues and fix them, Linux is the home of hackers, and they will do anything to make sure their home is safe, secure and stable.
Linux has been hacked before but with kernel additions like SELinux and PaX your rather secure unless your up against a hacker who is rather good, viruses dont normally exist, and explots are few/far between because of very rapid and regular updates, Linus takes care of his baby better than Bill does of his (Software not real kids) because of this Linus is very very careful on the patches he applies to Linux, he is a very specific man, and its a better world for it, if he is not happy with the kernel he will let the devs know, and chances are its fixed in the following week, Security patches will come out within hours/mins of the exploit been found, if you work in I.T linux and found an exploit, chances are devs have found out how to fix it and submitted to patch to Linus before you even had chance to panic.
AV tools are also not recommended if you run a Linux only environment, for us other mortals who cant keep ClamAV on the system for USB tools that have been plugged into a Windows PC, Linux is a bit horny in this respect and mounts everything it sees ;)
I will explain more later, but it is almost 1 AM here in the UK, so take from this what you will :) any other suggestions please post below, keep the thread clean, I have already had to do this once before lol ;P