Learn from a particle physicist

Sep 11, 2016 learning Linux phys-492/592

Linux inherits the Unix Philosophy that a program should do only one thing and do it well. A complicated job should be done with a combination of many small tools. You probably won’t call logging in to a PC and opening a file from a file browser a complicated task. But it takes the following programs to complete the task in Linux:

  1. a display manager to show the login screen,
  2. an X-window server to handle the graphical display,
  3. a window manager to arrange windows on your desktop, and
  4. a file browser to navigate through the directory tree and open the target file.

There are normally multiple programs that are available for each of the above tasks. This is one of the reasons why Linux desktops do not have a universal look as Windows desktops do.

The display manager and file browser are not the essential parts of the Linux GUI. The X server plus a window manager is enough. This is normally the choice of an experienced Linux user. However, such a simple setup lacks some features that a regular end user would expect to have, such as desktop gadgets, etc. A complete desktop experience as that in Windows is provided through something called the Desktop Environment in Linux. The most notable ones are Gnome and KDE.

When you SSH to a Linux server from a Windows PC and try to run Linux GUI through a slow network, it is painfully slow to display the whole remote desktop to your local machine. It makes more sense to run just the programs that you really need. You don’t even need a window manager, since the Windows desktop is already managing your program windows. This can be achieved through the so-called multi-window mode provided by most of the X servers running on Windows.