The difficult part of understanding the different components of a Linux system versus Windows is that Windows rolls everything up into a ball and gives you the ball as a whole (filesystem, kernel, console, gui, applications, servies, etc...). Linux gives you alternative choices for nearly everything. It's like comparing a toy boat to a lego boat. The toy boat you're stuck with as it comes, the lego boat you can rip apart, extend, shrink, or swap out tons of pieces.
–
STWSep 15 '09 at 21:35

exactly, now I am beginning to understand..
–
LazerSep 15 '09 at 21:50

15 Answers
15

One important thing to note before we start is that Microsoft is the single source for the Windows operating system, and "Microsoft Windows" might be seen as a single product, but technically it consists of multiple layers of software, working together transparently from the user's point of view. In the Linux world, however, there are multiple software packages available for each of these layers. This array of choices makes it easy for an unaccustomed user to get confused with the terms.

I'll try to explain the multiple layers below.

1st layer — Command line interface / kernel

To understand the multiple layer aspect of Linux and describe it in simple Windows-like terms, let's pretend we're back in the days of Windows 95.

In this analogy, the "Linux" operating system is similar to DOS where everything is executed from a command line interface (abbreviated "CLI"). In fact, on most server installations of Linux, a CLI is the only way to access the machine. After Linux starts up, depending on configuration, it will either stay in command line mode, or start a graphical user interface (abbreviated "GUI") automatically. Additionally, on some machines that stay in CLI mode, a user who logs into the CLI can manually start a GUI.

2nd layer — Graphical user interface

On top of the command line interface sits the GUI. Modern Linux systems typically use an X Server, which is essentially just like the Windows desktop — think of it as a blank canvas.

This layer handles the hardware level of the GUI, managing the input from the keyboard, mouse, etc., and output to monitors, etc. Basically, it handles how things are drawn to the screen; what is drawn on the screen is controlled by a window manager.

3rd layer — Window manager

Sitting on top of the X window system is a window manager. It's responsible for drawing each application on the "canvas", and attaches common window elements like borders, the title bar and minimize/maximize buttons to the window. Switching window managers can be likened to switching between "Classic mode" and "Aero mode" in Windows: the frame of the window will change, while the content of the window stay the same.

The most high-profile window managers in the Linux world are KDE and Gnome, and generally a Linux distribution will focus on one window manager as the primary interface. However, in general, you are able to install any window manager on any distribution and be able to run it without issue.

Ultimately, it's a matter of choice which platform you would want to use. Each provides a large number of applications that run under them, using their framework. Also important to know is that multiple window managers can be running at the same time (Enlightenment can be used under Gnome, etc), but that's typically outside the need of normal users.

With regards to Gnome and KDE, these two projects have grown much larger than being only window managers. Among other things, they also include development frameworks to create applications from. The KDE framework is known as Qt and the Gnome framework is known as GTK. To state the entire scope of these two projects in this post would be information overload.

To help confuse the issue for normal users, the KDE and Gnome frameworks are now also available for use on the MS Windows platform, typically used by applications that are trying to be used on multiple platforms (like the IM client Pidgin). In most instances, however, when you see mentions of Gnome or KDE, a Linux desktop is being described.

Good overview. One correction: KDE & Gnome are not window managers, but "desktop environments". A DE is a bundle of software (config tools, helper programs, file managers, start menu, panel etc.) that provides everything people need on their desktop. A window manager is part of KDE & Gnome, but they're much more.
–
sleskeFeb 16 '10 at 23:11

1

Also note that while you can use KDE & Gnome in parallel, you can not (normally) run more than one window manager at a time. One program has to decide where your windows will go :-).
–
sleskeFeb 16 '10 at 23:12

1

Finally "KDE framework is known as Qt, and the Gnome framework is known as GTK" is rather misphrased. KDE is built on the Qt framework, while Gnome is built on GTK.
–
sleskeFeb 16 '10 at 23:13

Edit - Some people have downvoted this due to the definition, so I will explain some more.

Windows is the operating system, Explorer is the name of the "shell" that both is the taskbar and file manager. Whilst I would say 99% of people use Explorer as the Windows shell, it is possible to use others and very easy to switch.

Best not to recommend one over the other. I've seen some fierce competition between Gnome and KDE apologists. Try them both out and see which one you prefer.
–
TomSep 15 '09 at 20:51

4

-1: While this is a nice answer, it's not useful for someone who has never used Linux and has no idea of what window managers are or what are the differences between them.
–
Javier BadiaSep 15 '09 at 21:02

7

To most normal user - Explorer is the part where they do file management. They don't see it as the windows mgt system - in that aspect, they would not understand your statement comparing Explorer to Gnome/KDE.
–
calibanSep 15 '09 at 21:02

Right, thanks guys! I did say easiest definition - especially as the original poster said "without being getting too technical" I have edited it to make it a bit more accurate... But I do think that most people who even know about this site, (especially a programmer), knows what explorer is.
–
William HilsumSep 15 '09 at 21:10

1

@Wil : Judging from some of the questions I have seen asked around SU... Wouldn't bet on it that most people know what Explorer(.exe) really is... ;) Usually, when someone says something like "don't get too technical", it's more like saying "I'm complete clueless about tech, but I am too proud to admit it!" Tech support hears these kind of stuff, they go real slow, heheh.
–
calibanSep 15 '09 at 21:21

i don't want to troll, but how do screenshots explain the what KDE & Gnome are? They may explain what the differences between the two are, but if you don't know what either of them is in the first place, I don't think its of any help. Don't get me wrong, i like screen caps, but there is no mention of what a window manager is, or even the basic premise that they mostly run on the Linux operating system.
–
Roy RicoSep 15 '09 at 23:06

-1 from a Windows user, by the defiition of "this answer is not useful." Sorry, but I don't understand any difference from these images. It could be three user's desktops they've configured the way they want; you could do that on any system. It's not apparent what the actual differences are. I've just begun using Linux, and I've not understood this difference yet.
–
Torben Gundtofte-BruunNov 14 '09 at 17:26

Linux is actually just the kernel of the OS, that is the part of the OS connected to hardware and a part you don't really see.

In unix-type OS'es graphical application usually runs in X (a.k.a X Window System), on top of X one run a window manager, a special application that handles other applications windows. One might also want toolbars/taskbars/docks etc these are usually part of the desktop enviromment. KDE and Gnome are two different desktop environments, these define the look and feel of your OS, they include window manager, toolbars, taskbars, file explorer etc.

In simple, windows-centric terms, let's pretend we're back at windows 95. "Linux" is similar to DOS (Lots of variations, entirely Command Line), and KDE, GNOME, are similar to the windows shell that ran on top of DOS.
This doesn't, however, mean KDE and GNOME are 'outdated' compared to windows, it's just a different method of reaching the same goal.

Gnome and KDE are the two most popular window managers for Linux. The Unix operating systems were originally command-line only. Eventually, a program called an X server was added. This program provides facilities for programmers to make graphical software. Gnome and KDE (and others) use these programming utilities to provide a unified desktop, with windows and menus and stuff.

In Linux, the set of programs that does things like show you windows, show your start menu, your taskbar, etc., is not directly tied to the operating system in general. You can run a GNU/Linux distribution without any graphics at all, or with windowing and task management handled by one of a dozen different systems: Gnome, KDE, Xfce, Fluxbox. These are called Window Managers, because they provide the interface for interacting with all the graphical applications on your GNU/Linux installation.

For a better idea of what I'm talking about, you can simply look at screenshots of all these different things in action; since much of their user-facing distinctiveness is in how they differentiate as interfaces, you can see the different ways they're set up.

Sitting at a Windows computer, I'm looking at screens with windows on them, and the windows have various controls I can click. If I select a window by clicking on it, I might be able to type into it. There's icons down the left side, and a task bar on the bottom.

That's basically what Gnome or KDE do: they provide the same sort of GUI controls I've just mentioned. There are other programs that do much the same thing, but they're not as popular on Linux machines.

An operating system is a piece of software that runs on your computer and makes it basically useful. It allows you to run applications. It comes in layers, more or less.

There's the kernel, which handles things like how files exist on disk or whatever, what processes get to run when, and how much memory they get to use. It doesn't talk to the user directly.

There's system tools that do various things. If you type ls into a Linux command line, or dir into a Windows one, it will give you a list of files with information attached. It fundamentally gets the information from the kernel, but processes it in other ways. (With Windows, these sorts of tools usually come with GUIs, while in Linux they usually don't.)

There's the GUI, which is what you usually work in.

There's other parts, but I'm trying to keep these simple.

In Windows, Microsoft provides all of these neatly wrapped up in large packages. With Linux operating systems, you have choices for a lot of things, and can build a system in lots of different ways.

Many Linux providers provide packages. For example, if you were to install Ubuntu Linux (a popular version), it would work much like Windows in that all sorts of things would be pre-installed, and (barring hardware incompatibilities) would just work. If you used Gentoo Linux instead, you'd find yourself doing a lot more work and making many more decisions. Some people find this fun (there's a very wide range of things some people somewhere will consider fun), and some like being able to tailor their operating system to suit themselves.

There's also cultural differences. Linux operating systems are normally made up of components you can duplicate freely, examine, and change to your liking, and so there's a strong preference for applications you can get on the same terms. (The advantage for the non-technical person is that many apps are free to download and install, quickly, easily, and safely, without worrying about licenses or transferring money around.) Windows users are more used to paying money for closed-source apps they just use. (The advantage here is that people being paid good money for things generally pay more attention to the needs of people who give them money, and so commercial applications are often easier to use, and there's more commercial apps available for things programmers find dull.) Don't exaggerate this too much. There's plenty of closed-source commercial applications that will run nicely on Linux, and plenty of open-source applications you can just grab for Windows.

It's the distinction between GUI and command line. KDE and Gnome are alternative GUIs.
I'll elaborate as to the situation with Windows as Microsoft hasn't always combined the two. There are cases where windows has run on DOS. Like a GUI and Command line, like with the linux situation.
So In addition to what has been said.. i'll give another perspective that hasn't been mentioned.

Back in the days of Windows 3.1, Windows was just the GUI. (It looks like they had to be installed separately, and could have been sold in either different boxes or the same box, but were still on separate disks, they were separate programs) Notice of the three disks in view, one says MS-DOS 6.22 and the other two seem to say Microsoft Windows and they're sold in this case, in the same box. Though you could also get them in separate boxes of course.

NT aside, Back then, Windows was -technically- not a full OS. It was an add-on for DOS.

The core part of an OS, that makes it an OS, is the Kernel. The Kernel was within DOS, not within Windows.

Windows was a GUI for DOS.

Linux is Command line, like DOS but a far more complex command line, and DOS ceased development long ago.

Linux has GUIs like KDE and Gnome.

With Windows 3.1, what'd happen was DOS would load up, and it'd run a file called autoexec.bat which ran things automatically. You could add a line pointing to the windows 3.1 executable, whatever it was and wherever it was, like C:\WIN\WIN.EXE and then Windows would be loaded like that, from DOS. Automatically.

When Windows 95/98 came along, things got blurred. It was running on DOS but it wanted to look like it wasn't.

(and as a side note, i'd point out that if you make a windows 98 boot disk and don't include a file called msdos.sys with BootGUI=0 and Logo=0 under [options] then a windows 98 splashscreen or menu comes up when it isn't even really loading windows).

Windows XP which came after Windows 98, ran completely without DOS. Windows XP was from the NT family/line, like Windows 2000, and didn't require or run on DOS or any OS.

(Note- some early NTs might've had some kind of relationship with an OS called OS2)

Get an Ubuntu "Live CD". You can get one for free. Stick it in your computer, and boot from it. Note: it will not install anything on your hard disk, or even touch your hard disk, unless you tell it to do so.

Now play around with it. Surf the web a bit. Maybe try out some games.

You will find that it is different, but not shockingly different.

If Windows is working for you, you may be done at this point. But still, tuck away that Ubuntu CD; it can serve as a handy "rescue CD" to help you if your Windows system ever gets overrun with viruses, or melts down due to a registry error, or whatever.

If you are still curious, you might want to repeat the exercise, this time with a "KUbuntu" CD. Compare how the KDE desktop in KUbuntu looks and works, compared to the GNOME desktop in Ubuntu. Some people really like KDE. Other people prefer GNOME. In Linux, you get to choose. (In Windows, the only choice you have is: run XP, or run Windows 7? If you run XP you get the XP desktop, and if you run Windows 7, you get the Windows 7 desktop. In Windows it all comes together.)

You may have a friend who can give you an Ubuntu CD. Or, you may have a Linux club in your city, where someone would be happy to give you an Ubuntu CD. Or you can make your own:

Here is a web page that describes how to download and burn your own Ubuntu CD.

To put it simply, Linux is just another choice. It's like you have been eating with a fork and knife all along, and then one day you realized that hey! you can actually eat with just your fingers!

The objectives accomplished by using your fingers, or using a full cutlery set, is the same - to move food into your mouth. However, using your fingers is free, whereas if you use a full cutlery set, it costs money, and it can be quite expensive depending on how fine the cutlery set is.

For a lot of people, eating with your fingers is unpolished, messy, and uncivilized. They are clumsy at it - lots of food gets dropped between fingers. Most of them give up after a short while. This group of people however are adept with cutlery, and is more than willing to pay for a set of fine well-crafted cutlery so they can eat with finesse, and style even.

However, there is another class of people, that has absolutely no problem eating with their fingers. In fact, they love it! They love how from having only 2 points of contact with their food, it expands to 10 suddenly. They love the choice available - and best of all, they love it that if ever one day all the cutlery disappears in the world - they will know how to use their fingers at least (not like the other bozos).

Linux - is just like eating with your fingers. If you don't know how to do it, it's really messy, and you'll probably hate it. However, once you get the hang of it, you love the choices, and best of all, you love it that you never have to pay for a cutlery set ever again if you don't wish to.

Windows - is like eating with a good, solid, if unremarkable, set of cutlery. Bland, but functional, and hey, everyone's doing it too.

:) cool explanation. What I really wanted to know is that apart from what you said, how different is the organization of the OS? How different they are at the core... I did not know the concept of Window Managers, which I think I understand now.
–
LazerSep 15 '09 at 21:19

@eSkay: i'll leave the honors for the others. It's an endless topic on the differences between OSes. P.S you don't sound very unsavvy to me, that's for sure. ;) have fun!
–
calibanSep 15 '09 at 21:35

@eSKay: and since you are from India, this analogy shouldn't be too hard to understand.
–
calibanSep 15 '09 at 21:40

Some of us (including me) think that Linux provides the gold cutlery, that Macs are the good, unremarkable set (it's just another Unix under the hood), and that Windows is like eating with your fingers. It depends on what you are attempting to do, but for me, Linux is the best option there is.
–
Matthew TalbertSep 15 '09 at 22:16

Unix and later Linux started as command line based operating systems. The nix philosophy is to provide a simple function that does one thing properly. If you want additional functionality, you take the output of one function and input it to another. When MIT was given given different types of computer workstations, they came up with a platform that allowed graphical environments to be spread across the computers. It was a distributed com;puter environment splitting out the display portion of a program from the processing portion. KDE and Gnome are two different display managers, Gnome being more object oriented than KDE.

Now then, KDE and GNOME are desktop environments. A window manager is a program that controls the way windows are displayed, but a desktop environment controls the icons and panels (equivalents to the Windows taskbar) on your desktop. If you want a desktop environment that functions exactly like Windows XP, get XPDE. Wish I could post screenshots of my KDE and GNOME, but I'm on Windows now.

Also, linux uses the / instead of C:\ for its root folder. Your Documents folder is in /home/username/Documents and your Pictures folder is in /home/username/Pictures, likewise. Same thing for your Videos, Music, and Downloads folders.