Senior project ideas

Adam Jackson ajax at
Tue Sep 2 09:28:11 PDT 2008

On Mon, 2008-09-01 at 19:10 -0700, William Tracy wrote:
> Hello,

> I would really like to produce something that is actually helpful,
> rather than producing yet another [raytracer|compiler|network stack]
> that is only interesting in an academic context. I have always been
> interested in Linux/Unix on the desktop, and think that Xorg is a
> beautiful piece of software. After hearing how perennially
> understaffed Xorg is, I had to pop in and see if I could build a
> senior project around that.

Excellent!  Thanks for taking an interest.

> I don't want to barge in and dump a bunch of unwanted patches on you,
> so I'm here asking: Where could I actually be helpful?
> Unfortunately, "Writing documentation" and "Fixing miscellaneous bugs"
> don't look very good as senior project ideas. I'm looking for one
> coherent entity I could work on for the next quarter or two. Either a
> moderate-sized chunk of new functionality, or a swath of rotten old
> code that just needs to be re-written and replaced would be good.
> I have a lot of experience in C (and C++) and am quite comfortable
> with system-level programming on Unix. However, I have never gotten
> closer to X11 than the xlib API. I have not worked with the Xorg
> internals before.

As mentioned elsewhere in the thread, there is a todo list.  I've been
terrible about keeping it up to date, but I just added a few things, and
I'll try to be better about keeping it full of things to do.

One of the items (now) on that list, and something that's been a
perpetual pain for us, is the bit about replacing the server's
hand-written dispatch code with something machine-generated.  Roughly
all of the security advisories we've had in the last two years or so
have been from the protocol code, either from not swapping requests
properly, or being too trusting with the data the client feeds us, like
using screen numbers as array indices without checking whether that
screen exists first.

We even already have a protocol description:

And libxcb already uses it for generating the client-side code.

- ajax

More information about the xorg mailing list