http://tldp.org/HOWTO/XWindow-Overview-HOWTO/index.html
http://tldp.org/HOWTO/XWindow-User-HOWTO/index.html
http://www.plig.org/xwinman/intro.html
Before I take a crack at James' Final Exam questions, let me address a more direct question. Chuck wrote:
> Sawfish, twm, Gnome, KDE, fvwm, fvwm95, are meaningless to me.
> I don't see the difference. :-|
> Why cannot any GUI application run on any 'window'?
The answer is that any GUI (Graphical User Interface) is an illusion, a techie version of trompe l'oeil. Applications need to communicate with the GUI they run under, and they do it by making calls to shared libraries (dlls in the WinXX world). These calls invoke procedures that work with the GUI itself to translate real events, like the physical movement of a mouse, typing on a keyboard, and various events generated internally by hardware and applications, into the visual illusion (moving the mouse pointer, selecting windows or text, etc.) you see on the screen.
If a particular GUI application does not run correctly in some particular GUI environment, that is because it makes some system calls that this GUI environment does not support.
You don't see support failures (much) in Microsoft Windows, because it has a single, unified API (Aplications Programming Intefface) that everyone doing applications writes to ... or at least one API per major version of Windows. Linux (and Unix) is subject to less central control, so there are competing APIs around that don't always mesh exactly.
OK. Now to James' questions. There are really 4 distinct concepts, not 3 ... a Desktop is a small part of a Window Manager, while a Desktop Environment is quite different and more elaborate (and is probably what James meant when he wrote "desktop" in the exam questions). The following are first drafts of answers; I hope others will suggest refinements that clarify without turning what should be succinct responses into tomes.
1. X or X Window (not X Windows or xwindows) is a server that controls the basics of a video display -- it provides a standard API that allows control of the hardware of the video card and the display, as well as other hardware like the keyboard and a pointing device. It gets customized on the hardware side, and on the application side it provides only a single, low-level API for dealing with the hardware. The only X server for Linux (the only free and Open Source one, that is) is xFree86. To run X, you must run this.
2. A Window Manager provides a "wrapper" that delivers additional functionality to X. It handles mid-level stuff, mainly offering a better API for drawing windows, detecting events like mouse clicks, adding pre- or user-defined "widgets" (close to what Microsoft calls tools in VB and Apple used to call resources) that developers can uswe when drawing windows on the screen. Typically, a Window Managers also includes menus (to launch applications and to modify the display) and the possibility of multiple desktops (analogous to the virtual terminals available with the text display). Examples of Window Managers are Sawfish, Blackbox, fvwm, fvwm, twm, Ice, Enlightenment, and WindowMaker. To run X successfully, you *almost* must run a Window Manager.
3. A Desktop Environment provides a suite of high-level services to an X user and an X developer. A Desktop Environment has two, separable parts:
A. A set of applications that provide user services. Examples are visual file manager and icon-based or tray-based application launchers.
B. A high-level API that provides advanced features to developers.
The two principal Desktop Environments are Gnome (with the associated API gtk) and KDE (with the associated API qt).
You can run X quite successfully without running the user-services part of any Desktop Environment; whether you need to run one or more APIs depends on the specific applications you want to run ... though there are occasional failures, for the most part, the APIs will work with any Window Manager.
At 05:14 AM 10/22/02 -0500, James Miller wrote:
On Tue, 22 Oct 2002, Chuck Gelm wrote: > > I have RedHat8.0 ('tho I see that this distro is not liked! :-|). > I'll try a few GUI install choices and what I can learn. > > Although I am still confused about who is doing what, > with which, and to whom. > > IOW, I do not understand the difference among: > Xwindows, Gnome, & Sawfish. > > To me, windows is windows, windows is what a GUI application needs > for I/O; a text console is what a text console application needs. > Sawfish, twm, Gnome, KDE, fvwm, fvwm95, are meaningless to me. > I don't see the difference. :-| > Why cannot any GUI application run on any 'window'? > Why is not Xwindows a 'window manager'? > Why is not fvwm a 'Xwindow'? >I'm kind of confused on these fundamental matters, too, though posts on this thread have been helping clarify things, or maybe just helping me to ask the right questions. The right questions being, in my mind: 1) what is "X" or "xwindows"? (be sure to address in your answer the relation of this entity to 2 other entities with which it can be easily confused - namely a "window manager" and a "desktop.") 2) what is a window manager? (be sure to address in your answer the relation of this entity to 2 other entities with which it can be easily confused - namely "X" or "xwindows" and a "desktop.") 3) what is a "desktop"? (be sure to address in your answer the relation of this entity to 2 other entities with which it can be easily confused - namely "X" or "xwindows" and a "window mananger.") Anyone care to take a crack at these? James - To unsubscribe from this list: send the line "unsubscribe linux-newbie" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.linux-learn.org/faqs
-- -------------------------------------------"Never tell me the odds!"-------- Ray Olszewski -- Han Solo Palo Alto, California, USA [EMAIL PROTECTED] ------------------------------------------------------------------------------- - To unsubscribe from this list: send the line "unsubscribe linux-newbie" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.linux-learn.org/faqs
