2002 FREENIX Track Technical Program - Abstract
XCL : An Xlib Compatibility Layer For XCB
Jamey Sharp and Bart Massey, Computer Science Department, Portland State University
Abstract
The X Window System has provided the standard graphical user
interface for UNIX systems for more than 15 years. One
result is a large installed base of X applications written
in C and C++. In almost all cases, these programs rely on
the Xlib library to manage their interactions with the X
server. The reference implementation of Xlib is as old as X
itself, and has been freely available in source form since
its inception: it currently is a part of the
XFree86 [xfr] distribution.
Unfortunately, Xlib suffers from a number of implementation
issues that have made it unsuitable for some classes of
application. Most notably, Xlib is a large body of code.
This is of most significance on small platforms such as
hand-held computers, where permanent and temporary storage
are both limited, but can also have performance
disadvantages on any modern architecture due to factors such
as cache size. In addition, because of Xlib's monolithic
nature, it is difficult to maintain.
The authors' prior work on the X protocol C Binding (XCB) is
intended to provide a high-quality but incompatible
replacement for Xlib. While XCB is believed to be suitable
for most new application and toolkit construction, it is
desirable to support the large installed base of legacy code
and experience by augmenting XCB with an Xlib-compatible
API.
This desire has led to the construction of a new library,
the Xlib Compatibility Layer (XCL), that is
binary-compatible with frequently-used portions of Xlib
while being significantly smaller and easier to maintain.
Benefits are demonstrated for both existing and new
applications written for Xlib. In particular, the
significant share of existing knowledge and written material
about Xlib remains applicable to XCL. Also, XCL can
significantly ease the migration path from Xlib to XCB.
- View the full text of this paper in
HTML and
PDF.
The Proceedings are published as a collective work, © 2002 by the USENIX Association. All Rights Reserved. Rights
to individual papers remain with the author or the author's employer.
Permission is granted for the noncommercial reproduction of the complete
work for educational or research purposes. USENIX acknowledges all
trademarks within this paper.
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.
- To become a USENIX Member, please see our Membership Information.
|