A study of modern Linux API usage and compatibility Conference Paper uri icon

abstract

  • Copyright 2016 held by owner/author(s). This paper presents a study of Linux API usage across all applications and libraries in the Ubuntu Linux 15.04 distribution. We propose metrics for reasoning about the importance of various system APIs, including system calls, pseudo-files, and libc functions. Our metrics are designed for evaluating the relative maturity of a prototype system or compatibility layer, and this paper focuses on compatibility with Linux applications. This study uses a combination of static analysis to understand API usage and survey data to weight the relative importance of applications to end users. This paper yields several insights for developers and researchers, which are useful for assessing the complexity and security of Linux APIs. For example, every Ubuntu installation requires 224 system calls, 208 ioctl, fcntl, and prctl codes and hundreds of pseudo files. For each API type, a significant number of APIs are rarely used, if ever. Moreover, several security-relevant API changes, such as replacing access with faccessat, have met with slow adoption. Finally, hundreds of libc interfaces are effectively unused, yielding opportunities to improve security and efficiency by restructuring libc.

name of conference

  • EuroSys '16: Eleventh EuroSys Conference 2016

published proceedings

  • Proceedings of the Eleventh European Conference on Computer Systems

author list (cited authors)

  • Tsai, C., Jain, B., Abdul, N. A., & Porter, D. E.

publication date

  • January 1, 2016 11:11 AM

publisher

  • ACM  Publisher