I've been doing console programming for a few years, and now it's about time that I learned a little about the fascinating world of GUIs. I've dabbled a little in wxWidgets; compiled a Hello World program, played around with it a little, etc.
Now I'm one of those people who have the "low-level curse": I'm not happy with knowing how to use something to good effect - I want to know what's going on under the hood, even if it's of little or no practical value.
So I've been reading up on the subject (e.g. here), but I'm finding it hard to wrap my head around all the different systems, toolkits and what they do. So far I've figured out that (please correct me if I'm wrong):
Now for some questions: sticking to UNIX-like systems:
For a bonus, maybe what about the Windows OS? Does it follow similar structure at all, or does it go completely its own way?
The X server, explaining that itself would take more than 10k words. Not suitable for an SO answer. Read the code and have your eyes explode. Bare X is applicable for software rendering. OpenGL can be used in two different ways in that context (see image below).
No. This depends on X. X is just yet another library which can implement its drawing primitives as its developers desire. But X itself is a hugely complex beast with its ridiculous number of extension which makes today's X function as it does (without there would be no OpenGL support, just as an example, no xrandr).
It depends on how much pain you are willing to take. You surely can draw X primitives or OpenGL primitives on your screen, but its not the 80s anymore.
Gtk+/Qt are abstractions of OS specific APIs (X/Wayland/W*) to lessen the pain creating GUIs and reduce the amount of code to write. These abstractions themselves are of high complexity and spane thousands of lines of code (just have a look at GtkTreeView Klass which Gtk+ provides). So instead of drawing pixels you can now just define Buttons and Layouts and Packing of Widgets.
So from this wiki article you can get a basic overview of just the GLX extension to the X proto:
Also have a look at the overview of how drawing is done with X
Be warned that this will hopefully be obsolete a couple of years from now, if wayland and or Mir do jumpstart. Those are totally different stories to tell.