Knit: Component Composition for Systems Software

Why Components?

Why Not Components?

Goal of Knit Project

Key to Achieving Goal

Target#1: The Utah OSKit [SOSP’97]

Outline

Atomic Units [PLDI’98]

Compound Units [PLDI’98]

Initialization

Initialization

When Can We Break Cycles?

Automatic Initialization

Detecting Composition Errors

Detecting Composition Errors

Detecting Composition Errors

Detecting Composition Errors

Detecting Composition Errors

Detecting Composition Errors

Detecting Composition Errors

Detecting Composition Errors

Extensible Constraint System

Knit

Outline

Implementation (Unoptimized)

Performance

Click and Clack

Performance of Clack

Open Issues

Conclusions