On Sat, 1 Nov 2003, Orna Agmon wrote:

> Hello Linuxers,
>
> Consider a lecture regarding:
>
>       The Design and Implementation of X
>
>
> I find the subject very interesting.
>

Well, I wanted to say: X-Windows... *boring*, but then thought of a few
other things.

1. To read from the jargon file:

<<<
[after the name of an
   earlier window system called `W'] An over-sized, over-featured,
   over-engineered and incredibly over-complicated window system
   developed at MIT and widely used on Unix systems.
>>>

So it is possible that covering its implementation in its entirety would
be a bit hard.

2. I think one can learn a lot about the X internals from the XLib API.
This is the library that is used by all the widget libraries, and has a
more or less one-to-one mapping to the X operations.

During the brief time I worked with it, I found it extremely tedious to
get many operations done (in regards to article #1 above). I wish I could
call this process enlightening, but it was just tedious. (much more so
than the Win32 API that I worked with in the past)

3. I think the X server is a single-process, single thread monolith. This
is mainly because synchronizing multiple access to a single hardware
graphical device is very hard. So, they just handle each transaction at a
time.

4. How interesting are the algorithms behind X-Windows? Standard graphics
and windowing algorithms can be found in many textbooks and simplistic
ones can be invented and implemented even by quite inexperienced
programmers. I think X delegates all the job of layout and typesetting
into the client libraries.

5. Things that interest me:

        1. Framebuffer acceleration, 3d effects, etc. and how they work.

        2. Managing of fonts and internationlization.

6. X-Windows did not become the de-facto standard because it was the most
superior system. Many people agreed that Sun's NeWS system for example,
was better in most respects. However, X was the only system that was open
source, and in fact, Digital Equipment Corporation at one time funded its
development in order to squash the other competition, and to maintain one
common Windowing system across all UNIX systems.

A much more recent attempt to make the core X code (at X11R6.4) deviate
from open source failed when the XFree86 developers said they will keep
their system under the original BSD-like license, and base their work on
X11R6.3. This eventually caused the X consortium to make X11 open source
again.

7. For many years, the primary toolkit for writing X11 applications was
Motif, which was sourceware but still proprietary and costed money. This
fact has made it hard for developers to develop applications for the X
Windowing System and the toolkit developed slowly. Many legacy
applications are still based on Motif and as such exhibit an unusually
ugly look, and inconsistency with the other desktop.

Now, the toolkit world is dominated by other toolkits: Qt, Gtk+,
wxWindows and the occasional FOX and Fltk. Motif can safely be declared
dead and few people will miss it. Recently the OpenMotif initiative has
made the source code of Motif and the binaries freely avaialable for use
for open-source applications under a non-open-source-license. I don't
conceive it as an attempt to revive Motif, but rather as a way to let it
die gracefully.



These are my thoughts of the moment.

Regards,

        Shlomi Fish

> The only question is: Who can (and wishes to) talk about this subject?
>
> Thanks,
>       Orna.
>
> --------------------------------------------------------------------------
> Haifa Linux Club Mailing List (http://www.haifux.org)
> To unsub send an empty message to [EMAIL PROTECTED]
>
>



----------------------------------------------------------------------
Shlomi Fish        [EMAIL PROTECTED]
Home Page:         http://t2.technion.ac.il/~shlomif/

An apple a day will keep a doctor away. Two apples a day will keep two
doctors away.

        Falk Fish

=================================================================
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]

Reply via email to