How Xlib Is Implemented (And What We're Doing About It)

How Xlib Is Implemented (And What We're Doing About It)

How Xlib Is Implemented (And What We're Doing About It) Jamey Sharp Computer Science Department Portland State University Portland, OR USA 97207-0751 [email protected] http://xcb.freedesktop.org X Window System Architecture Client Client Client Server Toolkit I18N Protocol Utility Protocol Xlib Transport Transport Xlib Architecture Transport layer: conveys requests and re- sponses between client and server Protocol layer: constructs requests and un- packs replies Utilities layer: does everything else utility cut buffers gc image icccm i18n xlc resource db cms xkb region xom xim core protocol events protocol transport Some Xlib Issues Xlib Component Sizes Large size Inflexible code Unpredictable transport behavior core protocol cms Excessive la- xkb xom tency xlc Confusing xim other thread support Starting Over: XCB Simpler, smaller implementation Focus on transport, protocol New domain-specific language for X proto- col description provides flexibility maintainability Xlib XCB 0 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 Kilobytes of code, compiled for Intel x86 Porting Xlib to XCB Goal: provide a migration path for Xlib- based applications and libraries First try: XCL Idea: re-implement Xlib's API from scratch using XCB Problem: Xlib's API is huge Current approach: start migration at bottom Replace transport and locking with XCB Prototype implemented in a few days! Slowly migrate protocol layer to XCB Results X Test Suite and real workloads confirm substantial correctness; some bugs remain Locking and transport are simpler and smaller; protocol port not yet complete Xlib extensions protocol Xlib/ XCB transport locking 0 25 50 75 100 125 Kilobytes of code, compiled for Intel x86 Any changes in performance are impercep- tible Other Xlib Projects Xlib Component Sizes Redesigning oth- er Xlib compo- nents transport cms core protocol cms xkb xkb xom xom/xlc/xim xlc xim other Conclusion Installed size of X client libraries are re- duced significantly Clarity, maintainability, and extensibility are improved as well Acknowledgements Keith Packard helped us comprehend Xlib and the X Window System. Prof. Bart Massey guides the design and implementation of XCB. Jim Gettys' continued support of this effort is greatly appreciated. Portland State University students Sheridan Mahoney and Mick Thomure provided valuable feedback on the current paper. USENIX Availability XCB: http://xcb.freedesktop.org/ Xlib: http://freedesktop.org/Software/X11.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    11 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us