Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A map of X11



This is my current understanding of everything which has been formed over the past month of cleanup and small fixes. I'm sure Ben can refine/fix my comments.

The bulk of our code is on three main locations: GL/apple, miext/ rootless, and hw/darwin. You can think of miext/rootless as the portion of hw/darwin that is cross-platform for rootless servers. Realistically this just means us, but it's there for the bitrotting Xwin.

GL/apple contains the code that essentially provides glx. I don't know how this works, and it's not working at all in the master branch.

hw/darwin/launcher is /A/U/X11.app... it's independent of anything else and just launches xterm.

hw/darwin/apple is /u/X/X11.app. It is self contained by by its launch process loads Xquartz.

hw/darwin/quartz/*.[cm] and hw/darwin/*.[cm] should probably be merged together at some point (refactoring for 1.4 or 1.5 perhaps). They're separated for legacy reasons with the original XDarwin and XDarwin.app codebase that we built off of and have since purged.

Now, for the launch process... this is ugly... and I am not sure I understand it entirely...

/u/X/X11.app starts (via launchd or whatever)*. X11.app does a fork/ execv to launch Xquartz as a child process (like xinit I believe... but I haven't looked at xinit source to compare exactly). Xquartz's main() is from dix/main.c. This is the ugly part that calls DarwinHandleGUI() in quartz/quartzStartup.c This whole startup process is using Carbon, is broken (we shouldn't be introducing Xquartz specific stuff into dix/* as that breaks Xephyr, Xnest, etc when built together), and is really hackishly ugly. See Ben's post from yesterday about this.

*: I believe the "duplicate dock icon" when launcing it directly is caused by this weird launch process. The bouncing icon belonging to / u/X/X11.app/C/M/X11 and the "usable" one belonging to /u/X/bin/ Xquartz. The bouncing one doesn't show up when launchd starts it because it's not user initiated... this is ENTIRELY speculation though. Ben, have you been able to sit down with the Dock guys about this?

On Nov 29, 2007, at 17:42, Nathaniel Gray wrote:

Hi folks,

I've started looking at adding very basic accessibility support in the
server but I'm having a hard time internalizing the design of the
server itself.  I can't figure out what the boundaries of the various
modules/processes/threads are.  It would be *really* helpful if
somebody (named Ben or Jeremy ;^) would write up a quick map of X11.
It doesn't have to be ultra-detailed, but it would help to know:

* What processes are running (Xquartz, X11, etc?)

* What their roles are

* Some kind of block-diagram-like description of the components of the
server as it relates to OS X.  (Meaning, no need to go into the
various X protocol extensions and things that are part of the X server
on all platforms, just "this module translates Quartz events to X
events" and so on.)

* What the various directories in the darwin portion of the source are for

Once this document exists, it would be nice to add it to git so the
project was a little more self-documenting.

Cheers,
-n8

--
-- Nathaniel Gray -- Caltech Computer Science ------>
-- Mojave Project -- http://mojave.cs.caltech.edu -->
_______________________________________________
Do not post admin requests to the list. They will be ignored.
X11-users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/x11-users/email@hidden

This email sent to email@hidden

_______________________________________________ Do not post admin requests to the list. They will be ignored. X11-users mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/x11-users/email@hidden

This email sent to email@hidden
References: 
 >A map of X11 (From: "Nathaniel Gray" <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.