The POSIX standard, developed 25 years ago, comprises a set of operating
system (OS) abstractions that aid application portability across
UNIX-based OSes. While OSes and applications have evolved tremendously
the last 25 years, POSIX, and the basic
set of abstractions it provides, has remained largely unchanged. Yet,
little has been done to measure how and to what extend traditional POSIX
abstractions are being used in modern OSes, and whether new abstractions
are taking form dethroning traditional ones.
Our goal is to provide a rigorous characterization of any changes across the
wide range of system abstractions standardized in POSIX. We are interested
in a broad set of questions that are intimately entwined with the future of
systems design and application development, such as:
Which POSIX abstractions are still being used and are relevant for
today's application workloads?
Which abstractions are being replaced by new and non-standard
Are there any specific limitations of traditional abstractions
that motivate these transitions?
Are the replacement abstractions similar in the various OSes, or
are they diverging?
Are there any abstractions completely missing from POSIX that modern
workloads appear to require? If so, how are the gaps currently being filled?
Are any traditional abstractions being used in ways for which they
were not intended? If so, what are the performance or security implications
of these uses?
We believe that the answers to these questions are relevant to a wide
audience, including: researchers, who can design and
optimize their systems by leveraging current, broadly applicable trends in
application developers, who may take advantage of new and more powerful
abstractions available in modern OSes; standard bodies, such as
OpenGroup, who may wish to reconsider certain, obsolete aspects of their
standard in light of the new trends; and educators, who may wish to refresh
their courses with coverage of the new, prominent OS abstractions that are
replacing traditional ones.
Our tools and methodology as well as the application traces and our paper
answering the above questions are nicely structured and publicly available
Some useful resources are:
Authors and Contributors