Re: XWindows
I think I need to clear up the misunderstanding about XWindows before you are sorely disappointed. XWindows has absoultely nothing to do with running MS Windows apps. Nada.
The closest comparison I can think of is to think of XWindows as a graphics drawing layer for UNIX. It makes GUI's for UNIX much simpler because it handles the actual drawing of lines, boxes, bitmaps, etc and handing those images to the hardware to display. A window manager for UNIX (Gnome, KDE, WindowMaker, etc) makes calls to a widget-set (Gtk+, Qt, Motif, etc... they control scrollbars, buttons, windows, etc), which then makes calls to XWindows, which then talks to the hardware.
However, XWindows API's are nothing like MS Windows API's. In fact, unless you are using a window manager, XWindows won't do anything for you! You need a window manager to handle the GUI, because XWindows has no GUI. It's basically just a graphics layer.
(XWindows handles much more then just drawing the graphics, but it's hard to explain in a simple post... a better way to think of it would be as a GUI back-end... it handles the hard stuff, you get to write the easy stuff...)