Knit: component composition for systems software
Alastair Reid, Matthew Flatt, Leigh Stoller, Jay Lepreau, Eric Eide
Abstract
Knit is a new component definition and linking language for systems
code. Knit helps make C code more understandable and reusable by
third parties, helps eliminate much of the performance overhead of
componentization, detects subtle errors in component composition
that cannot be caught with normal component type systems, and
provides a foundation for developing future analyses over C-based
components, such as cross-component optimization. The language is
especially designed for use with component kits, where standard
linking tools provide inadequate support for component
configuration. In particular, we developed Knit for use with the
OSKit, a large collection of components for building low-level
systems. However, Knit is not OSKit-specific, and we have
implemented parts of the Click modular router in terms of Knit
components to illustrate the expressiveness and flexibility of our
language. This paper provides an overview of the Knit language and
its applications.