7.5. Runlevels and XFree86
	In most cases, the default installation of Red Hat Linux configures a machine to
	boot into a graphical login environment, known as runlevel 5. It is
	possible, however, to boot into the
	text-only multi-user mode called runlevel 3 and begin an X session from
	there. 
      
	For more information about runlevels, refer to Section 1.4 SysV Init Runlevels.
      
	This section reviews how XFree86 starts in both runlevel 3 and runlevel 5.
      
7.5.1. Runlevel 3
	  When in runlevel 3, the best way to start an X session is to log in
	  and type startx. The startx
	  command is a front-end to the xinit command which
	  launches the XFree86 server and connects X clients applications to it.
	  Because the user is already logged into the system at runlevel 3,
	  startx does not launch a display manager or
	  authenticate users. Refer to Section 7.5.2 Runlevel 5 for
	  more information about display managers.
	
	  When the startx command is executed, it searches
	  for a .xinitrc file in the user's home directory
	  to define the desktop environment and possibly other X client
	  applications to run. If no .xinitrc file is
	  present, it will use the system default /etc/X11/xinit/xinitrc
	  file instead. 
	
	  The default xinitrc script then looks for
	  user-defined files and default system files, including
	  .Xresources, .Xmodmap, and
	  .Xkbmap in the user's home directory and
	  Xresources, Xmodmap, and
	  Xkbmap in the /etc/X11/
	  directory. The Xmodmap and
	  Xkbmap files, if they exist, are used by the
	  xmodmap utility to configure the keyboard. The
	  Xresources files are read to assign specific
	  preference values to applications.
	
	  After setting these options, the xinitrc script
	  executes all scripts located in the
	  /etc/X11/xinit/xinitrc.d/ directory. One
	  important script in this directory is xinput,
	  which configures settings such as the default language.
	
	  Next, the xinitrc script tries to execute
	  .Xclients in the user's home directory and turns
	  to /etc/X11/xinit/Xclients if it cannot be
	  found. The purpose of the Xclients file is to
	  start the desktop environment or, possibly, just a basic window
	  manager. The .Xclients script in the user's home
	  directory starts the user-specified desktop environment in the
	  .Xclients-default file. If
	  .Xclients does not exist in the user's home
	  directory, the standard /etc/X11/init/Xclients
	  script attempts to start another desktop environment, trying GNOME
	  first and then KDE followed by twm.
	
	  The user is returned to a text mode user session after logging out of
	  X from runlevel 3.
	
7.5.2. Runlevel 5
	   When the system boots into runlevel 5 a special X client application,
	   called a display manager is launched. A user must authenticate using
	   the display manager before any desktop environments or window
	   managers are launched.
	
	  Depending on the desktop environments installed on the system, three
	  different display managers are available to handle user
	  authentication.
	
- gdm — The default display manager for
	    Red Hat Linux, gdm allows the user to configure language
	    settings, shutdown, restart or log in to the system.
	     
- kdm — KDE's display manager which
	    allows the user to shutdown, restart or log in to the system.
	     
- xdm — A very basic display manager
	    which only lets the user log in to the system.
	     
	  When booting into runlevel 5, the prefdm script
	  determines the preferred display manager by referencing the
	  /etc/sysconfig/desktop file. Refer to the
	  /usr/share/doc/initscripts-<version-number>/sysconfig.txt
	  file (where <version-number> is the
	  version number of the initscripts package) for a
	  listing of options available for this file.
	
	  Each of the display managers references the
	  /etc/X11/xdm/Xsetup_0 file to set up the login
	  screen. Once the user logs into the system, the
	  /etc/X11/xdm/GiveConsole script runs to assign
	  ownership of the console to the user. Then, the
	  /etc/X11/xdm/Xsession script runs to accomplish
	  many of the tasks normally performed by the xinitrc
	  script when starting X from runlevel 3, including setting system and
	  user resources, as well as running the scripts in the
	  /etc/X11/xinit/xinitrc.d/ directory.
	
	  The user can specify which desktop environment they want to utilize
	  when they authenticate using the gdm or
	  kdm display managers by selecting it from the
	   menu (accessed by selecting  [on the Panel] =>
	   =>  => ). If
	  the desktop environment is not specified in the display manager, the
	  /etc/X11/xdm/Xsession script will check the
	  .xsession and .Xclients
	  files in the user's home directory to decide which desktop environment
	  to load. As a last resort, the
	  /etc/X11/xinit/Xclients file is used to select a
	  desktop environment or window manager to use in the same way as
	  runlevel 3.
	
	  When the user finishes an X session on the default display
	  (:0) and logs out, the
	  /etc/X11/xdm/TakeConsole script runs and
	  reassigns ownership of the console to the root user. The original
	  display manager, which continued running after the user logged in,
	  takes control by spawning a new display manager. This restarts the
	  XFree86 server, displays a new login window, and starts the entire
	  process over again.
	
	  The user is returned to the display manager after logging out of X
	  from runlevel 5.
	
	  For more information about how display managers control user
	  authentication, refer to the
	  /usr/share/doc/gdm-<version-number>/README
	  (where <version-number> is the
	  version number for the gdm package installed) and
	  the xdm man page.