doc: Start writing some in-tree documentation
[petitboot] / doc / components.rst
1 Petitboot Components
2 ====================
3
4 Server
5 ------
6
7 The core of Petitboot is the ``pb-discover`` process. This performs initial setup, discovers and configures devices, and handles configuration options or quirks saved or set by the platform.
8
9 UI Clients
10 ----------
11
12 The ``ui/`` directory contains client processes that implement a user interface. The primary interface is ``petitboot-nc`` which is based on ncurses and provides the full range of options for interaction and configuration.
13
14 There is also a twin-based interface under ``ui/twin/`` however this is largely a remnant from the PS3 and does not implement more recent functionality.
15
16 Clients generally take no direct action themselves, instead communcating via the "pb-protocol" interface to the ``pb-discover`` server to request actions.
17
18 Utilities
19 ---------
20
21 A number of smaller utilities exist to perform some specific tasks, including:
22
23 pb-console: Initial console setup and UI startup
24 pb-config: Trimmed down 'client' that can request information from the ``pb-discover`` server.
25 pb-event: Provides a callable script to send user events to ``pb-discover`` - usually used by other utilities such as ``udhcpc`` to report network information.
26 pb-exec: Simple wrapper for running programs from the UI
27 pb-plugin: Implements the petitboot-plugin interface
28 pb-sos: Collects diagnostic and crash information
29 boot hooks: Small hooks to be run immediately before boot.