# Kernel

Guides and API documentation for the Urbit OS kernel, including Arvo and the various modules.

* [Arvo](https://docs.urbit.org/urbit-os/kernel/arvo) - The kernel itself. Implements the event loop and otherwise acts as air-traffic-control between the modules.
* [Ames](https://docs.urbit.org/urbit-os/kernel/ames) - Ames is the name of our encrypted peer-to-peer networking protocol and the module that communicates over it.
* [Behn](https://docs.urbit.org/urbit-os/kernel/behn) - Timer module. Allows Urbit OS and third-party applications to set and respond to timer events.
* [Clay](https://docs.urbit.org/urbit-os/kernel/clay) - Revision-controlled filesystem.
* [Dill](https://docs.urbit.org/urbit-os/kernel/dill) - Terminal driver. The Urbit runtime sends keyboard events to Dill from the terminal, and Dill produces terminal output.
* [Eyre](https://docs.urbit.org/urbit-os/kernel/eyre) - HTTP server. The runtime sends HTTP requests to Eyre, and Eyre forms HTTP responses.
* [Gall](https://docs.urbit.org/urbit-os/kernel/gall) - A framework for running state machines and third-party applications.
* [Iris](https://docs.urbit.org/urbit-os/kernel/iris) - HTTP client.
* [Jael](https://docs.urbit.org/urbit-os/kernel/jael) - Manages networking keys and Azimuth state.
* [Khan](https://docs.urbit.org/urbit-os/kernel/khan) - Thread dispatcher, the kernel's alternative to spider.
* [Lick](https://docs.urbit.org/urbit-os/kernel/lick) - IPC module for communicating with processes on the host machine.
