• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: A map of X11
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A map of X11


  • Subject: Re: A map of X11
  • From: Jeremy Huddleston <email@hidden>
  • Date: Thu, 29 Nov 2007 23:48:19 -0800

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)
This email sent to email@hidden

_______________________________________________ Do not post admin requests to the list. They will be ignored. X11-users mailing list (email@hidden) This email sent to email@hidden
  • Follow-Ups:
    • Re: A map of X11
      • From: Ben Byer <email@hidden>
    • Re: A map of X11
      • From: Harald Hanche-Olsen <email@hidden>
References: 
 >A map of X11 (From: "Nathaniel Gray" <email@hidden>)

  • Prev by Date: applewmstr.h
  • Next by Date: Re: Hacking question
  • Previous by thread: Re: A map of X11
  • Next by thread: Re: A map of X11
  • Index(es):
    • Date
    • Thread