183 lines
4.6 KiB
HTML
183 lines
4.6 KiB
HTML
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>Introduction</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.63
|
|
"><LINK
|
|
REL="HOME"
|
|
TITLE="X Window System Architecture Overview HOWTO"
|
|
HREF="index.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="Preface"
|
|
HREF="preface.html"><LINK
|
|
REL="NEXT"
|
|
TITLE="The X Window System Architecture: overview"
|
|
HREF="arch-overview.html"></HEAD
|
|
><BODY
|
|
CLASS="SECT1"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>X Window System Architecture Overview HOWTO</TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="preface.html"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="arch-overview.html"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="SECT1"
|
|
><H1
|
|
CLASS="SECT1"
|
|
><A
|
|
NAME="INTRODUCTION"
|
|
>2. Introduction</A
|
|
></H1
|
|
><P
|
|
>Back when UNIX was a new thing, around 1970, graphical user
|
|
interfaces were only a weird thing being played with in a laboratory
|
|
(Xerox's PARC to be precise). Nowadays, however, any operating system
|
|
in hopes of being competitive needs to have a GUI subsystem. GUIs are
|
|
supposed to be easier to use. This is not much of a concern under
|
|
UNIX, which has traditionally been, to some extent, pretty
|
|
user-hostile, preferring versatility over ease of use. However, there
|
|
are several reasons why a GUI is desirable even on a UNIX system. For
|
|
instance, given UNIX's multitasking nature, it's natural to have a lot
|
|
of programs running at any given time. A GUI gives more control over
|
|
how things are displayed on-screen, thus providing with better
|
|
facilities for having a lot of programs on-screen at the same time.
|
|
Also, some kinds of information are better displayed in graphical form
|
|
(some, even, can only be displayed in graphical form; like pr0n and
|
|
other inherently graphical data).</P
|
|
><P
|
|
>Historically, UNIX has had a lot of improvements done by
|
|
academic types. A good example is the BSD networking code added to it
|
|
in the late 1970's, which was, of course, the product of work at
|
|
the University of California at
|
|
Berkeley. As it turns out, the X Window System (also called X, but
|
|
never X Windows), which is the foundation for most GUI subsystems
|
|
found in modern UNIX (unices?), Linux and the BSD's included, was also
|
|
the result of an academic project, namely the Athena project at the Massachusetts Institute of Technology (MIT).</P
|
|
><P
|
|
>Unix has been a multiuser, multitasking, timesharing operating
|
|
system since its beginnings. Also, since the incorporation of
|
|
networking technologies, it's had the ability to allow a user to
|
|
connect remotely and perform work on the system. Previously this was
|
|
accomplished either via dumb serial terminals, or network connections
|
|
(the legendary telnet).</P
|
|
><P
|
|
>When the time came to develop a GUI system that could run
|
|
primarily under Unix, these concepts were kept in mind and
|
|
incorporated into the design. Actually, X has a pretty complex design,
|
|
which has often been mentioned as a disadvantage. However, because of
|
|
its design, it's also a really versatile system, and this will become
|
|
quite clear as we explain how all the parts comprising a GUI under
|
|
Unix fit together.</P
|
|
><P
|
|
>Before taking a look at X's architecture, a really brief tour of
|
|
its history, and how it ended up on your Linux system, is in order.</P
|
|
><P
|
|
>X was developed by the Athena project, and released in 1984. In
|
|
1988 an entity called the "X Consortium" took over X, and to this day
|
|
handles its development and distribution. The X specification is
|
|
freely available, this was a smart move as it has made X almost
|
|
ubiquitous. This is how XFree86 came to be. XFree86 is the
|
|
implementation of X we use on our Linux computers. XFree86 also works
|
|
on other operating systems, like the *BSD lineage, OS/2 and maybe
|
|
others. Also, despite its name, XFree86 is also available for other
|
|
CPU architectures. </P
|
|
></DIV
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="preface.html"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="arch-overview.html"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>Preface</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
> </TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>The X Window System Architecture: overview</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |