Needs educating: Message from Linux (fwd)

Jason unleet at qwest.net
Tue Jan 22 13:09:45 EST 2002


Actually, being familiar with X myself, I'll answer this one.

Xwindows, is a misnomer, in reality, it's just an X server, and clients. The 
server draws to the screen, and sends user input to the clients. The clients 
are the applications, the clients are usually on the same machine as the 
server, but they don't have to be.

X itself is nothing more than a network protocol for sending graphic data to 
an X workstation, the X protocol has no provisions for button, text box, or 
any widgets for that matter, it has: line, circle, filled circle, rectangle, 
filled rectangle, pixmap, etc...

X also sends keyboard input and mouse click locations to the applications 
that own the windows they occur in.  Beyond that, X's only other capability 
is to send text glyphs (rendered in a given font) back to applications that 
request them.

As for widgets, and controls, and a nice unified API for writing programs, 
you need a "toolkit library". What's a toolkit library you ask? A better 
question might be "what isn't a toolkit library?"
First of all, there are a lot of toolkit libraries out there, some are very 
simple (Athena) while some have a full-blown callback API and can be adjusted 
with themes (GTK, GTK+) and some are object-oriented C++ based APIs (QT). 
They all basically do the same thing, provide functions/objects/structures to 
the application to draw typical GUI widgets, and send draw requests to the X 
server. Here's the hairy part, each toolkit has its own look and feel, has 
its own API, has its own conventions, and basically has its own everything. 

There's also the seperate window manager, which is simply another X client 
which registers a few special functions with the X server so it can get the 
location and owner of each window and add decorations and task switching 
behavior. Some (most) window managers do more than this, but they all do at 
least this.

Windows, on the other had, has the equivalent of the toolkit library and 
window manager built into the kernel (sort of) and most applications either 
use that, or a custom one that is very similar to it.

I'm sure this is incomplete, but I've already been wracking my brain for an 
hour over it, so I'll close here, feel free to ask questions or tell me about 
parts that are unclear.
> 	Good to see you on this list.  I wonder if there are some folks out there
> familiar with XWindows to share the kind of navigation that goes on with
> it?  I have no idea.  Is it the same icons and rdio buttons and all of
> tht?  How is it different than windows and how much more easy would access
> be to develop in the XWindows environment?  These are important questions
> to your point I imagine.
>




More information about the Speakup mailing list