EOS is Arista's network operating system, and comes as one image that runs across all Arista devices or in a Virtual Machine (VM). EOS runs on an unmodified Linux kernel under a Fedora-based userland. There are more than 100 independent regular processes, called agents, responsible for different aspects and features of the switch, including drivers that manage the switching Application Specific Integrated Circuit (ASIC), the command-line interface (CLI), Simple Network Management Protocol (SNMP), Spanning Tree Protocol, and various routing protocols. All the state of the switch and its various protocols is centralized in another process, called Sysdb. Separating processing (carried by the agents) from the state (in Sysdb) gives EOS two important properties. The first is software fault containment, which means that if a software fault occurs, any damage is limited to one agent. The second is stateful restarts, since the state is stored in Sysdb, when an agent restarts it picks up where it left off. Since agents are independent processes, they can also be upgraded while the switch is running (a feature called ISSU – In-Service Software Upgrade).
The fact that EOS runs on Linux allows the usage of common Linux tools on the switch itself, such as tcpdump or configuration management systems. EOS provides extensive Application Programming Interface (API) to communicate with and control all aspects of the switch. To showcase EOS' extensibility, Arista developed a module named CloudVision that extends the CLI to use Extensible Messaging and Presence Protocol (XMPP) as a shared message bus to manage and configure switches. This was implemented simply by integrating an existing open-source XMPP Python library with the CLI.
|Open source and Closed source
|IA-32, x86-64, Itanium
|Default user interface
|Open source and Proprietary