O'Reilly Open Source Convention.
Books Safari Bookshelf Conferences O'Reilly Network

Arrow Home
Arrow Registration
Arrow Speakers
Arrow Keynotes
Arrow Tutorials
Arrow Sessions
Arrow At-a-Glance
Arrow BOFs
Arrow Events
Arrow Community
Arrow Exhibitors
Arrow Sponsors
Arrow Hotel/Travel
Arrow Venue Map
Arrow See & Do
Arrow Press
Arrow Mail List

O'Reilly Open Source Convention


Designing and Creating Great Shared Libraries
Theodore Ts'o, IBM

Track: Apps
Date: Monday, July 07
Time: 1:45pm - 5:15pm
Location: Salon G

The magic of dynamic linking allows shared libraries to be replaced without requiring the recompilation of all the programs that use them. However, this is true only if proper care is taken when designing the data structures and interfaces presented by these libraries. Unfortunately, as efforts by the Linux Standards Base workgroup has sometimes uncovered, many open source projects have not taken this care, with the result that incompatible changes are made to shared library interfaces as frequently as every month.

This tutorial will describe design principles for creating portable, stable, and yet extensible shared library interfaces. It will cover guidelines for designing Application Programming Interfaces (API's) and Application Binary Interfaces (ABI's) as well as how to use ELF symbol versioning. In addition, this course will cover the design of interfaces which allow applications to be dynamically extended with plugins.

After completing this session, a developer will be able to design and implement extensible applications and shared libraries with stable ABI's. If the key attribute of a successful open source project, one that is widely used, then the principles covered in this tutorial will help make such a project successful, by encouraging the use -- and re-use -- of the project's codebase.

O'Reilly Home | Privacy Policy

© 2003, O'Reilly Media, Inc.