Before I start, please note that this is not about how much better Linux is over Windows or visa versa, I get annoyed by that stupid hatred.
Instead, this is aimed mostly at ex-Windows users and also Linux users wanting to know more about the differences between the two Operating Systems.

Background

The first thing we need to establish is the origins of both these Operating Systems in order to understand the root of their differences.

It is often thought(and to be honest it’s portrayed by Linux users too) that Linux is akin to Windows, this is only a part of the truth.
The way I like to explain it is like this:

Linux is like foundation of the Windows Operating System, but not the OS as you see it.
Ubuntu (for example) is akin to the Windows you see.

It’s like a house, when you walk in, you see the walls, the windows, the doors, the rooms etc, and that’s like Ubuntu or Windows, it’s what you, as a user see.
What you don’t see when you walk into the house is it’s foundation, but it is needed for the house to work. Thats like Linux and the core Windows system.
You don’t see it all the time, but it’s needed.

And this is where the differences begin.

From the origins of Windows, until about Windows XP, you were able to access and alter things inside the Windows and System32 folder. That is the core of the modern Windows system that make it work. You can tell, because if you remove files from System32, you are most likely to encounter serious problems.

Linux on the other hand has what is called the kernel. And this is where everything important is stored, from tools to drivers, all in there.

Now, the structure of a Linux computer is quite different. It starts with a root folder which is represented by a forward slash (/)
That is the start of the system. Inside there you have a lot of different folders like /bin, /usr, /home etc (more on the layout in a future post).

For security reasons most modern Linux systems do not start you as a root user.
A root user has the power to change anything to their system in any folder.
But modern Linux systems, like Ubuntu for instance, disables the root user by default.

But what does that mean?

Well it means that you are only able to change things inside your /home folder.

For changes outside of the home folder you need to use sudo (Super User DO), this allows you to have temporary root rights.

This is important so that when you make changes, you have to enter a password ensuring that you know exactly what you are doing.

But, it also means that if you download a program of the internet, it can’t just change things critical to your system.

Main differences

It is always said that a Linux system is more secure than a Windows system, but is this true, and why?

It is mostly true, and some of the reasons are these:

Due to the nature of the user being kept away from the kernel by means of a user account, it means viruses are hard to be installed on a system(although it IS possible).
But on the subject of viruses, there are 2 more ways in which Linux combats them.

In the early days of Linux, all software was created and put in tarballs(.tar/.tar.gz), after which you had to compile them and run them. But most of the time you were missing important libraries, or other dependencies, and had to go find them, install them…well, you can imagine, this was a hassle!
So RedHat and Debian had a solution to this; packages.
RedHat brought out RPM’s and Debian made Deb files.
In order to install them you would need the RedHat Package Manager and DPKG for Debian.
It brought something with it.
In order to fix the dependency problems, they introduced package managers with repositories to automatically install the dependencies.
The packages were maintained and meant that virus ridden packages weren’t put it in. Meaning that you had another way to stop viruses.

Another combat to viruses was by pure accident and is all because of the Free Software filosophy.
OpenSource.
Due to it’s nature, Open Source software means that the code that a program is written in is easily accessible, it means that anyone putting in anything malicious, is going to be found out with ease. And therefore you see hardly any viruses.

While Windows on the other hand is mostly closed source (can’t see the code) and software is installed by downloading it off the web and installing it, it means everyone could easily write a virus without your knowledge.
And because of the nature of it’s file structure and accounts, nothing stopped you from getting a virus.
Eventhough it seems to be the number one point for Linux users to abuse Windows users, the truth is, Microsoft couldn’t have foreseen viruses and therefore didn’t think about the structure of their system. And if they were to change that now, most software you may own on Windows wouldn’t work.

All hardware is a file?!

Okay, okay, now how can I make anyone understand this.

You know when you are on Windows and put a USB stick into your laptop and it has detected a new USB device?

Well on Linux, forget that idea.

Linux deals with everything as a file.
A good example of this is a USB device.
If you look inside the /media folder before you insert a USB device, it will most likely be empty.
Insert the device and a new folder becomes available…that is your USB device.

Everything functions like that.
Thats a difference between Linux and Windows.

Where can I download a driver for my webcam?

Whether it be webcam, printer, scanner or whatever, it doesn’t matter.
I hear this question time and time again.

This is most probably the one thing that Windows users get stuck with more than anything.

In Windows, whenever you buy a Logitech camera or anything else, you get a CD with the drivers for this.
The truth is, this is MOST times useless for Linux.

Not because Linux doesn’t understand them, but because drivers are built in to Linux.
That’s right, Linux is designed and updated to work out of the box, that hardware just works.
Now I know that’s not always the case and with Wifi cards, you may actually need Windows drivers, but in general, drivers are there inside your computer.

X

Graphics on Linux is old, I mean ANCIENT!

I will explain what I mean.

My first ever experience with Linux was a really early version of RedHat (it was free then).
And Linux was the way it started, a black screen with white writing (think DOS).
You had to login and no pretty things came up at all, just black screen and white writing.

But graphics got introduced by means of an added bit to the kernel called X11.
To kickstart it, you logged in and then typed ‘startx’ and it would start.

The thing is, that’s basically still the case, only X11 is started for you.
This is now being changed but as it stands, it’s the same as back then.

Windows doesn’t have that and is by nature designed to be graphical

Conclusion

I hear a lot of statements about how Linux just doesn’t work and that Windows is better.

The truth is this, Windows is not Linux and Linux is not Windows.
A washing machine may look similar to a dryer, but they don’t work the same.

To appreciate Linux/Windows, you have to realise this fact.
From the ground up, they are two entirely different systems and should not be compared.

If you use Windows and prefer that, you are a Windows person.
If you prefer Linux, then you are a Unix person.

Advertisements