1. PURPOSE

The Simple Driver Interface (SDI) defines a portable and minimal contract between operating systems and hardware drivers.

SDI uses the normative language defined by BCP 14 (RFC 2119 and RFC 8174). In this document, the terms MUST, MUST NOT, SHOULD, SHOULD NOT, MAY, and OPTIONAL are to be interpreted as defined by BCP 14.

SDI is designed to:

SDI does not define a full operating system model.
SDI does not define scheduling, user space, or system policy.

SDI only defines how drivers interact with a kernel.

  1. SCOPE

SDI covers the following areas:

SDI does not cover:

  1. DESIGN GOALS

SDI v1.0 is built on the following principles:

  1. DRIVER MODEL

All SDI drivers MUST follow a function pointer based interface.

Drivers:

  1. HAL REQUIREMENTS

Every SDI compliant kernel MUST provide a minimal HAL compliant with the sdi_ops structure defined in defines.h.

  1. VERSIONING MODEL

SDI uses semantic versioning:

Drivers MUST declare supported SDI versions.

Kernels MUST expose supported SDI versions.

  1. CAPABILITY DISCOVERY

Kernels expose supported features through a capability table.

Drivers MUST check capabilities before using optional features.

If a feature is not present, drivers MUST fallback to defined behavior.

  1. IMPLEMENTATION NOTE

This document defines behavior only.

Reference implementations exist for validation purposes.

If behavior is unclear, it is considered undefined until specified in a future SDI version.