old-www/LDP/LG/issue36/cooper.html

379 lines
15 KiB
HTML

<!--startcut ==========================================================-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<title>X Windows versus Windows 95/98/NT: No contest LG #36</title>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#A000A0"
ALINK="#FF0000">
<!--endcut ============================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">X Windows versus Windows 95/98/NT: No contest</font></H1>
<H4>By <a href="mailto:pgc@maths.warwick.ac.uk">Paul Gregory Cooper</a></H4>
</center>
<P> <HR> <P>
In the December Issue of the Linux Journal Sergio Martinez wrote in
asking for a (quick) article about the differences between X and
Windows 95/98/NT (w95) -- see below. This is my attempt to answer his
questions - I remember asking similar things when I started using UNIX
4 years ago. [More answers can be found in the <A
HREF="./lg_tips36.html#sergio">2 Cent Tips</A> Column.
--Editor] I've tried to aim this article at the 'Linux newbie' and
as I am not an X hacker, and never been a w95 hacker, there may well
be inaccuracies, but I have tried to capture the ideas and spirit of X
(and w95, such as it has any). I would be pleased to hear from Xperts
and newbies alike.
<p>
Sergio has asked questions relating to GNOME and KDE and for the most
part I treat them as equivalent (in the same way I'm treating all
window managers as equivalent). I should state now that I prefer using
GNOME over KDE, irrespective of the ongoing KDE / Open Source debate,
hence I have more experience in GNOME than in KDE. This too may lead
to inaccuracies.
<p>
Mail criticisms to <a
href="mailto:pgc@maths.warwick.ac.uk">pgc@maths.warwick.ac.uk</a>.
<hr>
<P>
This is Sergios mail;
<p>
I'm just writing in with an idea for a quick article. I've been using
the GNOME desktop. I'm a relative Linux newbie though, and I think
that many of your less experienced readers could probably benefit from
a short article about window managers. These are some things I
currently don't quite understand:
<p>
1.Terminology: The differences (if any) among a GUI, a window
manager, a desktop, and an interface. How do they differ from X
windows?
<p>
2.Do all window managers (like GNOME or KDE or FVWM95) run on top
of X windows?
<p>
3.What exactly does it mean for an application to be GNOME or KDE
aware? What happens if it's not? Can you still run it?
<p>
4.What exactly do the GTK+ (for GNOME) or Troll (for KDE) libraries
do?
<p>
5.How does the history of Linux (or UNIX) window managers compare
to that of say, the desktop given to Win98/95 users? How,
specifically, does Microsoft limit consumer's choices by giving them
just one kind of desktop, supposedly one designed for ease of use?
<p>
6.What's happening with Common Desktop Environment? Is it correct
that it's not widely adopted among Linux users because it's a resource
hog, or not open source?
<p>
These are some questions that might make an enlightening, short
article. Thank you for your consideration.
<p>
--
Sergio E. Martinez
<hr>
<p>
Before I try to answer each point I'll try to give a quick intro into
X-windows.
<p> Think of X as just another program. When you type startx what
happens is that X starts (shock!), in the background, and runs the
.xinitrc file. The .xinitrc tells X what programs to start once X
itself has started - more on this later. (Some systems use the
.Xclients file instead of .xinitrc - I'll just use .xinintrc).
<p>
So X is just another program but what does it do? Roughly speaking X
takes control of the screen from the command line and provides the
system with the ability to create windows and communicate with them.
Basically that's ALL it does - decorating, moving, resizing, focus,
etc, (i.e. managing the windows X provides) is left to the window
manager.
<p> What's clever about X is uses a client/server model and is network
transparent. This is a bunch of jargon - what does it mean?
<p> When you type startx you are starting the X-server, when you run
an 'X-application', e.g. netscape, this is a client to which the
X-server gives a window. Similarly xterm is an X-app which puts the
command line in a window.
<p>
Network transparency doesn't mean much if you're not networked so
let's suppose the computer you started X on is called fourier and is
networked. Now a program on any computer on the network can ask the
X-server on fourier to start a window for it (on fourier), for
instance from fourier you could telnet to cauchy (another computer on
your network) and run netscape and have the netscape window appear on
your screen (connected to fourier).
<p> In fact it works the other way round too - an X-server can have
many screens (or, as it calls them, displays) connected to it at once
- all different - and those screens can be at the other end of a
network. This goes back to (one of) the original design purpose(s) of
X which was for X-terminals, i.e. things that looked like a computer
but were no more than a screen, some memory, a bios, and a network
card connected to one (or many) UNIX mainframe(s). See <a href="
http://www.menet.umn.edu/~kaszeta/unix/xterminal/index.html">this
page</a> for details of how to turn old 386/486's into xterminals.
<p>
<b>
1.Terminology: The differences (if any) among a GUI, a window
manager, a desktop, and an interface. How do they differ from X
windows?
</b>
<p> Ok, so we have more jargon - I hope I get this right ;-). An
interface is the way in which a piece of software interacts with the
user. Unix commands use a command line interface (CLI) whereas
X-applications use a graphical user interface (GUI). However
different applications tend to use different approaches to the GUI, for
instance when you select a menu does one click bring the menu up
(e.g. netscape) or do you have to hold the mouse button down
(e.g. ghostview). What GNOME, KDE, and w95 try to provide a consistent
GUI amongst all applications, or at least amongst the common parts of
applications, e.g. menus, file selection, window controls, scrollbars,
etc. See the <a href="http://www.iarchitect.com/">GUI hall of
fame/shame</a> for examples of good/bad GUI design (in windows
environment).
<p>
As was mentioned above a window manager takes over where X leaves
of - that is, controlling the windows X gives it. Window managers
usually give you alot more that the just the ability to move, resize,
or iconify windows. Many also provide virtual desktops, taskbars,
themes, app managers, etc. See <a
href="http://www.PLiG.org/xwinman/">Window managers for X</a> for a
list of most, if not all, wm's.
<p> Desktop has (as far as I can tell) two usages. We use 'the
desktop' to refer to the background part of the screen. GNOME, KDE,
W95, and MacOS all 'provide a desktop' meaning the background is more
that just a canvas for a nice picture - it acts like any directory in
the system. Technically all this means is that you can place files
onto it. However these may be data (like a letter to gran) or
programs, (e.g. netscape, emacs, etc). Usually this 'background as
directory' philosophy is coupled with a graphical file manager, so
that when you (double) click on a file either it runs (if it's a
program) or a suitable program is started to read the data in the
file. In this context 'desktop' can also include a GUI, so that when
people say that all Linux/UNIX is missing is a 'desktop' what they
mean is a consistent design of common parts of programs, a graphical
file manager, and the ability to leave files littered on the desktop
;-)
<p>
<b>
2.Do all window managers (like GNOME or KDE or FVWM95) run on top
of X windows?
</b>
<p> I like to think of the window manager, fvwm95, window maker, etc,
and the desktop, GNOME or KDE, as running in conjunction with X - but
this is just semantics. The window manager and/or desktop is started
(in the .xinitrc file) after X has started.
<p> The traditional (i.e. pre KDE/GNOME) setup of .xinitrc (after some
environment settings) is to have some xterms and a window manager, so
the last lines of the .xinitrc might look like;
<pre>
xterm &
xterm &
fvwm95
</pre>
The window manager is the last thing started by .xinitrc and when the
wm exits, .xinitrc finishes and then X terminates.
<p>
If you were using GNOME the last few lines of the .xinitrc would now
be;
<pre>
fvwm95 &
gnome-session
</pre>
And for KDE it would be;
<pre>
startkde
</pre>
As before GNOME (KDE) are the last things started by .xinitrc and so
when you logout of GNOME (KDE) the <tt> gnome-session </tt>
(<tt>startkde</tt>) termintes, .xinitrc finishes, and then X
terminates.
<p>
In both these examples the xterms are left out as GNOME and KDE
provide sessions management, which means any application left running
when the session ends get started when you startup the next
time. Windows has some session management too.
<p>
See the next answer as to why the window manager is started for GNOME
but not for KDE.
<p>
<b>
3.What exactly does it mean for an application to be GNOME or KDE
aware? What happens if it's not? Can you still run it?
</b>
<p>
AFAIK an application is a GNOME (KDE) application of it conforms to the
GNOME (KDE) GUI guidelines/specifications and uses the Gtk+ (qt)
libraries. All this means is that GNOME apps use Gtk+ to build menu's,
buttons, scroll bars, file selectors, etc and they do so in a
consistent way (as defined by the GNOME team), e.g. all menus are left
justified, all apps have a FILE menu as the left-most menu, etc. Same
for KDE except they use the qt library by Troll Tech (and possibly a
different set of design guidelines).
<p>
Any GNOME app will run provided you have Gtk+ (and the other GNOME
libraries) installed and similarly any KDE app will run so long as you
have qt (and other KDE libraries) installed - you do not have to be
running GNOME/KDE to use a GNOME/KDE application. The only other
additional thing GNOME/KDE apps may have is drag and drop awareness,
e.g. in GNOME you can drag a JPG from a GMC (file manger) window into
an ElectricEyes (graphics viewer) window and ElecticEyes will display
this file. You can do similar things in KDE.
<p>
GNOME and KDE have different attitudes to window managers. KDE prefers
to work with its own window manager Kvm, and GNOME is 'window manager
agnostic' - well those are the 'party lines'. You can get other wm's
to work with KDE (so I'm told) and GNOME should work with any wm but
prefers to work with a window manager that is ICCCM compliant and
'GNOME aware'. I'm not sure what this means but I know the only
totally compliant wm is Enlightenment DR0.15 (which is only available
through CVS at the moment) followed by icewm, and with blackbox and
windowmaker a little way behind. I think that the KDE team are working
towards making KDE less dependent on Kvm and defining what a KDE wm
should be.
<p>
<b>
4.What exactly do the GTK+ (for GNOME) or Troll (for KDE) libraries
do?
</b>
<p>
Whoops - I think I answered this above. Gtk+ and qt are toolkits for
building menu's, buttons, scrollbars, dialog boxes, and loads more.
<p>
<b>
5.How does the history of Linux (or UNIX) window managers compare
to that of say, the desktop given to Win98/95 users? How,
specifically, does Microsoft limit consumer's choices by giving them
just one kind of desktop, supposedly one designed for ease of use?
</b>
<p>
I'm not sure I understand this question let alone know how to answer
it, so instead I'll answer what I think you might be asking which is;
What's the difference between UNIX + X and W95/98/NT.
<p> The first thing to point out is the component nature of the UNIX
approach to a GUI/Desktop. First we have the OS itself, in our case
Linux, on top of that we have the window system, X, and in conjunction
with that we have the window manager, fvwm (for example), and in
conjunction with these two we have the desktop/gui, either GNOME or
KDE. This follows the general philosophy of UNIX which is to build
small tools that interact which each other in well defined ways. It
may seem shambolic but it is a strength. It means that one or other of
the pieces can be interchanged, which gives the user lots of choice
(perhaps too much), and also allows for technological
improvements. For instance X is just one windowing system and may not
last forever (gasp!) There are others, e.g. the hungry programmers
<a href="http://www.hungry.com/products/Ywindows/">Y</a>.
<p> This also gives the user the choice of which window manager or
desktop to use, or in fact whether to use windows and desktops at all
- it may seem strange but some people prefer the command line, and
others use X and a window manager but don't like GNOME or KDE.
<p>
Windows95/98/NT on the other hand is a different kettle of
fish. Here the OS, GUI, WM, and desktop aren't clearly separated (as
in UNIX) but are all rolled into one. Thus you have whatever choice
Microsoft happen to give you, i.e. windows themes.
<p>
For Microsoft this is an advantage - it stops people butting in and
rewriting parts of their OS which could potentially lose them
money. For instance they realized that with the old windows 2/3.1 you
could simply replace MS DOS with another compatible DOS such as DR DOS
from Caldera. In an ongoing court case Caldera allege that MS added
code to windows to make it seem like there was a bug in DR DOS. With
9*/NT being all rolled in one there is no need to resort to such
tactics.
<p> IMO the W95 desktop is inferior because the user is limited to one
design whereas on a linux system there is a wm + desktop to suit just
about everybody (including those that don't want either a wm or a
desktop).
<p>
<b>
6.What's happening with Common Desktop Environment? Is it correct
that it's not widely adopted among Linux users because it's a resource
hog, or not open source?
</b>
<p>
It's not widely adopted because it is commercial, not open source, a
resourse hog, has security problems (RedHat stopped selling it for
this reason), and is IMHO outdated.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright &copy; 1999, Paul Gregory Cooper <BR>
Published in Issue 36 of <i>Linux Gazette</i>, January 1999</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./lussier.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./richardson.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<!--startcut ==========================================================-->
</BODY>
</HTML>
<!--endcut ============================================================-->