| # Fuchsia Driver Framework (DFv1) |
| |
| Caution: This page may contain information that is specific to the legacy |
| version of the driver framework (DFv1). |
| |
| ## Overview |
| Fuchsia Driver Framework (FDF) is a collection of libraries, tools, metadata and images that enables |
| driver writers to develop, test and distribute drivers targeting Fuchsia. It aims to provide a |
| stable ABI allowing driver developers to potentially write a driver once and use it on multiple |
| versions of the Fuchsia kernel and platform. |
| |
| At the moment, the FDF is composed of a driver manager, driver host, core library (libdriver), |
| FIDL interfaces, banjo interfaces and guidelines to develop drivers for Fuchsia. |
| FDF is constantly evolving and has yet to achieve ABI stability. |
| |
| ## Driver manager |
| |
| Driver manager is a binary maintained and developed as part of FDF. It is responsible for |
| loading drivers and managing devices on all platforms. This is one of the initial process to be started |
| on device bootup. It finds driver packages in pre-configured paths, tries to match a |
| driver for every device by running the driver's bind rules, and manages the device lifecycle. |
| It hosts a virtual filesystem named as Device Filesystem (`devfs`), that provides |
| a deprecated method of driver access to non-driver components. New drivers |
| do not use `devfs`, and instead [use services directly][driver-communication]. |
| |
| ## Driver host |
| |
| Driver host is a binary that is launched by driver manager to host one or more drivers. It |
| facilitates sandboxing of drivers. |
| |
| <!-- Reference links --> |
| <!-- Other Docs --> |
| [driver-communication]: /docs/concepts/drivers/driver_communication.md |