Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Oct 2003 13:13:39 -0800
From:      andi payn <andi_payn@speedymail.org>
To:        freebsd-questions <freebsd-questions@freebsd.org>
Cc:        "M.D. DeWar" <mark@s-wit.net>
Subject:   Re: X11 and Xfree86
Message-ID:  <1067462019.36829.1523.camel@verdammt.falcotronic.net>
In-Reply-To: <3F9EF09F.3070800@mindcore.net>
References:  <002a01c39cb4$11062e90$0501a8c0@canada> <3F9EE982.5040001@magidesign.com><3F9EF09F.3070800@mindcore.net>

next in thread | previous in thread | raw e-mail | index | archive | help
M.D. DeWar:

> What is the purpose of them exactly. I have read the sites but being 
> alien to the unix world it confuses me.
> Do they just make unix a windows type enviroment ?
> Is KDE/GNOME the same or they like themes to X windows.

The simple answer is: X plus KDE or GNOME provides Unix with a
Windows-type environment. KDE/GNOME are an integral part of that
environment. KDE and GNOME themselves _have_ themes, and those are like
themes in the Windows world.

You want either KDE or GNOME, with all the default "stuff" that comes
with it. In fact, install them both, and play with each for a while.

In fact, there's a similar separation in Windows--some of the user
environment is provided by Windows itself, and some by separate programs
(especially the "Windows Explorer" program), but this separation is much
cleaner under Unix/X. Furthermore, GNOME or KDE themselves separate into
a number of separate layers (this is also true to some extent in
Windows, but even to the application developer most of this is hidden).
This difference has some advantages, and one big disadvantage.

The biggest advantage is flexibility. You can run KDE or GNOME, or a few
other alternatives, or a more "bare-bones" X setup with no desktop
manager. You can run KDE apps under GNOME, and vice-versa (and so on for
the other alternatives). In fact, you can replace almost any piece of
the puzzle and everything will work smoothly.

The biggest disadvantage is that novices have all these different pieces
thrown at them. Instead of just Windows, they have to contend with, say,
Unix, X, Metacity, Gtk+, GNOME, Nautilus, Panel, GDM, GConf, and ESD
(and that's if you only run GNOME). 

So, let's look at these pieces briefly:

* Unix is the operating system. (Linux people like to further divide
this into the kernel and the rest of the OS.) The Windows equivalent is
the NT kernel, its Win32 executive, the "cmd" command-line shell, a slew
of command-line tools, a bunch of background services, etc.

* X (aka X/Windows, X11, etc.) is the GUI. It's equivalent to part, but
not all, of the Windows GUI. You can see what X does by just running X
on its own, as Erik Steffl suggested. X also comes with a variety of
tools, like xterm, and libraries for building X applications.

* Metacity (kwm for KDE) is the default window manager. X plus a window
manager is the equivalent to the Windows GUI itself. This is the part of
the system that lets you drag windows around, assign hotkeys like
Alt+Tab or Winkey+F, etc. You have a wide choice of other window
managers, many (but not all) of which are completely compatible with
GNOME or KDE.

* Gtk+ (Qt for KDE) is a widget toolkit. It's equivalent to (the GUI
parts of) the Win32 API. As a user, you never worry about this--you run
programs that were built with Gtk+, just as Windows users run programs
that were built with the Win32 SDK, and they just run. But unlike
Windows, Unix/X has a dozen or so toolkits. You can run apps built
against different toolkits together (although they they may not have
exactly the same look and feel--a GNOME/Gtk theme only affects Gtk+
apps, etc.). You may have noticed something similar in Windows XP--most
applications have XP-style buttons and borders, but some (including the
cmd command-line window) have the old-fashioned Win95 style instead.
(Maybe it's better to say that Windows XP has 1-1/2 toolkits?)

* Nautilus (or Konqueror, for KDE) is the default file manager. It's
almost equivalent to Explorer in Windows. Just like Explorer, Nautilus
or Konqueror manage the desktop background window and all of its icons,
and provide the "My Computer" and "Network Neighborhood" browsing, and
can even be used as web browsers if you want.

* Panel (or Kicker, for KDE) is the program that handles the "taskbar"
and "menubar" and "start menu." It's the rest of Windows' Explorer.

* GDM (or KDM, for KDE) is the login manager. This is equivalent to the
Login application in Windows. If you set up your system to boot into
graphical mode, this is the program that asks you for a username and
password (and maybe which desktop environment you want to run, etc.).
Or, if you've set things up for autologin, it runs without you ever
having to see it (just like in Windows).

* GConf (no KDE equivalent) is a preferences warehouse, like the Windows
registry. If you've never run regedit, you can probably ignore this.

* ESD (or ARtS, for KDE) is a sound server. This lets you handle sound
over the network, just as X lets you handle graphics over the network.
It also lets old apps that try to monopolize the soundcard work together
properly. You may have noticed on Windows that some programs take over
the soundcard and nothing else can make any noise, but that this is less
true with modern software. The same situation holds in Unix. Plus, like
Windows XP, FreeBSD has some tricks to make old software cooperate
(sysctl hw.snd.pcm0.vchans). And often, it's not a big deal anyway. So
often a sound server is not necessary for local use (and for network
use, you may want a different solution, like nas or rplay, anyway).

So, what is GNOME? It's a desktop environment. What exactly that means
has changed over the years. The most important part is the collection of
specifications. The next most important part is a set of libraries
(including Gtk+) that do much of the hard work of writing software to
meet those specifications. Then there's the set of default tools--like
metacity and nautilus and panel and all the others mentioned above--that
the user can install all at once, providing (together with Unix and X) a
complete and usable desktop workstation. Additional applications (like
the Galeon web browser, the Evolution mail/groupware client, the AbiWord
word processor, etc.) may or may not be part of the desktop environment,
depending on who you ask.

A few nitpicks to Scott W. and Erik Steffl's posts (which were at least
99% correct):

Scott W.:
> Back to your question- KDE and GNOME both sit on top of X, like any/all 
> X Window Managers.  KDE and GNOME both go a step 'further' and also 
> provide session and desktop management.

Actually, neither one is a window manager--both can work with a variety
of window managers, although each does include a default window manager.

> KDE and GNOME actually include 
> Window Managers of their own (KDE and Sawfish respectively), 

Actually, KDE's is called kwm, and GNOME is currently including metacity
(they used to include Sawfish, and before that Enlightenment).

Erik Steffl:
> widget libraries: there is number of them, these are various buttons, 
> menus, combo boxes etc. the common ones are motif (or free 
> implementation lesstif), athena, qt (used by kde), gnome has its own 
> widgets etc...

GNOME uses Gtk+, although it also adds a few of its own widgets on top
of those. Actually, Gtk+ 1 and Gtk+ 2 are completely independent widget
toolkits, and a typical GNOME system currently uses both (to increase
the confusion).

> there is a large number of widgets libraries and this is 
> a source of constant criticism (they all look and behave differently
> and make user experience inconsistent, which might or might not be a
> problem:-)

Plus, the window decorations are controlled by the window manager, not
the widget toolkit. So, getting everything to look and feel consistent
means finding themes that go together for your window manager, and all
of the widget toolkits you use--and replacing apps that don't use a
compatibly-themeable toolkit (e.g., replace xterm or rxvt with
gnome-terminal). The big linux distributors hire people to do exactly
this, and the end result is generally that everything looks really
spiffy until the first time you use an app that they forgot about....

> window manager: makes it possible to manage windows, it is 
> responsible for windows decorations (borders, titlebar, titlebar 
> buttons), it provides ways to move and otherwise manipulate windows, 
> usually has some kind of menu/program launcher etc.

Most window managers can provide a menu/launcher if you want to use them
standalone, or can leave it up to a desktop environment (or whatever)
instead. (You wouldn't want a Metacity menubar sitting under your
panel....)

> fun experiment

After all that, try running konsole, the KDE xterm replacement, from
your xterm window, and you'll see that there's even more to KDE than I
indicated above....




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1067462019.36829.1523.camel>