85

I posted a question and noticed people weren't distinguishing correctly between many of these things: Windows Managers vs Login Managers Vs Display Managers Vs Desktop Environment. Can someone please clear this up, i.e. tell us the difference between them and how they are related perhaps?

What category does Xorg fall under? What about Gdm/Kdm/Xdm? People also talk about X. What is X?

ptrcao
  • 5,635

4 Answers4

86

From the bottom up:

  • Xorg, XFree86 and X11 are display servers. This creates the graphical environment.
  • [gkx]dm (and others) are display managers. A login manager is a synonym. This is the first X program run by the system if the system (not the user) is starting X and allows you to log on to the local system, or network systems.
  • A window manager controls the placement and decoration of windows. That is, the window border and controls are the decoration. Some of these are stand alone (WindowMaker, sawfish, fvwm, etc). Some depend on an accompanying desktop environment.
  • A desktop environment such as XFCE, KDE, GNOME, etc. are suites of applications designed to integrate well with each other to provide a consistent experience.

In theory (and mostly so in practice) any of those components are interchangeable. You can run kmail using GNOME with WindowMaker on Xorg.

bahamat
  • 39,666
  • 4
  • 75
  • 104
  • 3
    Some other display/login managers: slim, qingy. – dubiousjim Oct 19 '12 at 19:06
  • 3
    Some other window managers: metacity and twm – Emanuel Berg Oct 19 '12 at 22:19
  • 2
    @EmanuelBerg: metacity is mostly useless without GNOME and twm is mostly useless. That aside, my intention is only to provide examples, not an exhaustive list. – bahamat Oct 20 '12 at 00:39
  • Well, I didn't ask for an exhaustive list, if that was your interpretation. Just gave two more examples. But, as for what is useless or not, that's for everyone to find out for himself. For one, I use metacity every day, and I haven't had GNOME in ages (check out my post below). The more information, the better. – Emanuel Berg Oct 20 '12 at 00:49
  • Doesn't all desktop environments require a window manager? And all window managers a display manager? That would seem logic to me, but I have installed LXDE but apparently don't have LXDM... – TheStoryCoder Oct 23 '18 at 16:16
  • No, you can log in on the text console and run startx to run X11 directly without using a display manager. – bahamat Oct 28 '18 at 16:56
  • @TheStoryCoder You can use a desktop environment (which is just a set of programs) without a window manager but in that case you will most likely not be able to move or resize the windows. – Martin Zeltin Mar 19 '21 at 20:38
29

If you experiment with this, it'll be clear:

In /etc/rc2.d, you'll find files that are instructions what your computer should do when it starts.

If you use GNOME, look for a file with gdm in its name, then replace the S (first letter of the name) by a lowercase s. (GDM is as you might have guessed the GNOME display manager. If you use some other suite, of course, find out what display manager it uses, then disable it in the same way.)

Now, reboot your computer and you'll notice that the login screen no longer shows up. Conclusion 1: No display manager, no login screen.

Instead, you'll log in to the console. Now, try for example to play a movie (or do anything with graphics). Won't work! This is because X isn't running. Conclusion 2: No X, no graphics.

Third step, starting X: By typing xinit, depending on your ~/.xinitrc file, a set of applications might get started. But, to illustrate, try running X with only a terminal, say, urxvt. So, put urxvt in .xinitrc and comment-out (with #) everything else, then type xinit.

You should now see the urxvt window. Here, you could play movies, etc. But instead, let's move the urxvt window somewhere else. Can't do it. Conclusion 3: No window manager, none of the usual GUI functionality you are probably used to. So, type exit in urxvt. (That command will exit the terminal, but, as that was the only process run as specified in .xinitrc, X will terminate as well.)

Last step, modify .xinitrc once more:

urxvt &
metacity

(note the & so the processes will run concurrently)

Run X again and see the result. The last part of the puzzle: metacity, a window manager.

To get out, type pkill -9 metacity. (On this, urxvt will terminate as well, possibly because, as it was run in the background (with &), metacity is the only process X monitors.)

Good luck. Probably, you'll get stuck on some detail, but it's worth it, to gain understanding.

Emanuel Berg
  • 6,903
  • 8
  • 44
  • 65
9

@bahamat answer is complete for the question. However, I am adding definitions of more terms as this question shows up first on related google searches:

  • X Window System (aka X11): A network protocol encoding things such as graphic primitives, images, pointer motion, and key presses.
  • X Display Server (e.g. Xorg and XFree86): X server implementing X11 and providing an interface to keyboards, mice, and video cards.
  • X Display Manager (e.g. SDDM, GDM, and LightDM): Graphical login manager which starts a session on an X server from the same or another computer
  • Widget/GUI toolkit/framework/library (e.g. GTK+ and Qt): Providing things such as buttons, scrollbars, edit boxes, etc.
  • Window Managers (e.g. Metacity and Compiz): Decorating X window primitives and supporting various operations such as moving, resizing, and maximizing of windows.
  • Desktop Environments (e.g. GNOME, KDE, XFCE, and LXDE): Providing libraries and specifications that applications use and follow in order to "play nice" with other applications.

Reference:

https://superuser.com/questions/291298/window-manager-vs-desktop-environment-vs-window-system-whats-the-difference

lashgar
  • 275
6

In one sentence: Your display manager create a nice graphical display where you can use a login manager to login to your X session which will start a window manager and may start a desktop manager.