September 27-30, 2021
Seattle, Washington, USA + Virtual
View More Details & Registration

The Sched app allows you to build your schedule but is not a substitute for your event registration. You must be registered for Open Source Summit + Embedded Linux Conference + OSPOCon 2021 to participate in the sessions. If you have not registered but would like to join us, please go to the event registration page to purchase a registration.

This schedule is automatically displayed in Pacific Daylight Time (UTC -7). To see the schedule in your preferred timezone, please select from the drop-down menu to the right, above "Filter by Date." The schedule is subject to change.

IMPORTANT NOTE: Timing of sessions and room locations are subject to change.

Wednesday, September 29 • 10:30am - 11:20am
(VIRTUAL) "Plan to Throw One Away" - Pitfalls of API Design for Low-level User-space Libraries and Kernel Interfaces - Bartosz Golaszewski, BayLibre

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Feedback form is now closed.
Ever wondered why so many of the popular plumbing-layer user-space libraries are usually called libfoobar2, gstreamer1.0 etc.? Why we have cgroup and crgroup2? Why a lot of kernel uAPI headers define SOMETHING_SOMETHING_IOCTL_V2? Unlike the in-kernel interfaces, user-space libraries usually promise a certain level of stability of the API and ABI - especially across a single major release. The kernel is even more strict on that - user-space programs must not be broken with incompatible changes to the kernel uAPI and it's extremely rare to see any kernel interface modified or removed. This presentation will try to answer the question: why is it so difficult to design new programming interfaces correctly the first time? Why are minor, backward-compatible changes often not enough to address design issues and why do we need to always "plan to throw one away"? The author has hands-on experience with this problem - having helped design the GPIO uAPI and developed the user-space part of the kernel interface, only to see the kernel interface redesigned and ending up working on version 2 of the userland library. This presentation hopes to shed light on the aspects of good API design and help programmers avoid having to release multiple major versions of their open-source projects.


Bartosz Golaszewski

Embedded systems developer, UXLITE SOLUTIONS SARL
Bartosz Golaszewski has over 13 years of engineering experience in the embedded systems domain ranging from low-level, real-time operating systems, through the linux kernel to user-space programs, libraries and build systems. He has worked on international projects in a broad range... Read More →

Wednesday September 29, 2021 10:30am - 11:20am PDT
MeetingPlay Platform + Virtual Learning Lab