Arvo is the Urbit operating system and kernel. Arvo's state is a pure function of its event log, and it serves as the Urbit event manager. It contains vanes, which are kernel modules that perform essential system operations.
Arvo being purely functional means that the state of the operating system at a given moment is completely determined by the sequence of events in the event log. In other words, the state of an Arvo instance is given by a lifecycle function
L: History ➜ State
where History
consists of the set of all possible sequences of events in an Arvo event log.
Arvo coordinates and reloads vanes. It can be thought of as a traffic-director. Any vane needs to go through Arvo before reaching another vane. Events and their effects happen like so:
Unix event -> Vere -> Arvo -> vane -> Arvo
Here, Vere is the virtual machine running Urbit.
Arvo is located in /base/sys/arvo.hoon
within your urbit.
Arvo vanes include Ames for networking, Behn for timing, Clay for filesystem and typed revision control, Dill for terminal driving, Eyre for web services, Ford for building, and Gall for application management.
Vanes and other programs for Arvo are written in Hoon.
A ship creates its own copy of Arvo via a bootstrap sequence known as a Pill.
Further Reading
- The Arvo tutorial: An in-depth technical guide to Arvo and its vanes.
- The Technical Overview: An overview of all of Urbit.