David Dawes
a long-time XFree86 developer
dawes@XFree86.Org
I am the current, and second, President of The XFree86 Project. That's
mainly because I am one of the original "gang of four" who founded XFree86® way back when, in
1992, when the original code as released by the X Consortium did not run
on my x86-based hardware (something about it being considered
an immature and unimportant hardware platform by the established
X Window System developers).
I am a graduate of The University
of Sydney and received the University Medal in Physics. I started
working on XFree86 while working part-time on my doctorate in
electro-magnetic theory in Physics and working full-time maintaining
the Physics department's
heterogeneous UNIX® network. Needless to say, XFree86 became a
big thing in the department, and they were proud to help out and be
the first host for the Project, something I have always been very
proud of; it was and remains a great department and I cannot thank
them enough for all that they have done.
Throughout the years, I have worked everywhere on the code base;
but I guess what I enjoy the most is the overall project design and
direction, like the X server internals. That would be lost if not
for ensuring the code portability by keeping a close eye on the
source integration issues. That is an important part of my role as
the release engineer. When I was interviewed
by a fellow physicist I discussed how my role grew out of the needs
of the project and of course I had to admit to my dreams as well.
I left
Sydney
in late 1999, a little after that interview, and though all of my family
is still there, I'm feeling at home in the US; but I do miss the cricket.
Since arriving in the US in 1999, I have worked for a few
Linux-based companies, which did foot some of the bills for my release
work and so the releases
came out pretty regularly thanks to them; but eventually I realised
that my vision was not totally in tune with theirs. So like most,
if not all, XFree86 developers, my time spent on the integration
and release issues are my own; they are basically a labour of love.
Releases are basically on a yearly schedule, which pretty much
coincide with the calendar year: 4.0 came out in 2000, 4.1 in 2001
and so on. Right now for 2006 we are working on 4.6.
So now I am self-employed with a company which appropriately got
called X-Oz Technologies as a
pun on the X Windows System and my homeland, Australia, or as we
call it Oz; a name that my best mate, Dr. C, yes another physicist,
dreamt up. I met some people from XFree86 who shared my vision and
once the work became more than us few could manage we brought on
others; it's been fun though nothing in the uni prepared me for
this.
Projects that I am working on, either as part of X-Oz commissions
or in my spare time, in no particular order, include:
- XFree86 dynamic configuration -- this is allowing
on the fly configuration and reconfiguration support including hot
pluggable hardware. People who are looking to get the first peeks,
full documentation and working copies of this should contact X-Oz
about our early code preview support.
- XFree86 loader++ -- this is an objectified
version of the current XFree86 loader, and is an essential component
of dynamic configuration.
- XFree86 auto-configuration -- this is the mechanism
that allows the user to automatically start up its X Server and so
no longer have to get involved with antiquated tools, manuals and
such. Right now most of my work here is getting it on as many operating
system platforms as XFree86 supports.
- Small footprint XFree86 -- this is basically integrating
a small X server into the main XFree86 server. This has been
particularly useful for applications that need a small memory footprint
and testing. Actually this is how I test a lot of my dynamic work, so
I can see what can be offloaded from the main server and put into
optional extensions.
- Multi-display support -- this is supporting hardware
with multiple displays that are attached to a single logical
framebuffer.
Projects that I have recently completed:
- Reworking the Intel® 830M and 845G XFree86 driver support and adding support
for the new Intel® 852GM, 855GM and 865G chipsets
(2002-2003).
- A Linux fbdev driver for Intel®
830M-865G chipsets 2002-2003)
A selection of past projects that I have worked on:
- XFree86 4.0 design and release (1996-2000). This included:
- Setting the design goals for XFree86 4.0.
- Establishing the video driver design principles and interface,
and writing the documentation
thereof.
- Porting the mga driver to the 4.0 interface. This was the
prototype 4.0 video driver.
- Reworking the Metro Link-donated loader to better fit the
XFree86 architectural goals.
- Reworking the input driver interface from 3.3 to more closely
match the video driver interface, unifying the handling of core
and extended input devices, and rewriting the mouse driver to split
the platform independent parts into an input driver module.
- Designing and implementing a lot of the original "common" layer
code.
- Writing the platform-independent binary distribution installation
script.
- Release engineering for the 4.0 release, prior test snapshots,
and all subsequent releases.
- ... and lots of other stuff.
- More pre-4.0 XFree86 stuff than I care to remember, including
all of the release engineering but for a few releases in the
1992-2000 period.
- Initial multi-monitor support for the XFree86 mga driver
(2000).
- Multihead DRI support for some combinations of video cards
(2001).
- Distributed Multihead
X initial design (2001).
- Email handling and spam filtering scripts for the XFree86 community
lists (1992-present).
- A distributed data backup/archiving system (1996-1998).
- Misc contributions to FreeBSD, tcsh, CVS, including the initial
SVR4.0 support for tcsh (1991-1996). I tend to contribute to those
projects I use; I think it's a good open-source habit.
- Ported lots of software to SVR3.2 and SVR4.0 (1990-1993).
- Utilities for reading/writing MS-DOS diskettes on UNIX®
systems which I think pre-dates mtools. This was my "learn to
program in C" project (1987).
- Made several generations of hardware enhancements and their
associated software for lots of ancient PC video cards as well as
their graphics hardware on an old Z80-based Australian-made computer
(Microbee).
This was all done back when video hardware was built using discrete
logic chips (1984-1988).
The more I think about it, and I thought about it a lot putting this
list together; I have been interested in hardware and video graphics
for a long long time.
Links to some useful stuff
copyright © 2002-2006 David H. Dawes.
Last modified: 16 January 2006