ONOS is an open source SDN controller developed by ON.Lab. It uses a distributed architecture with a symmetric, fault-tolerant design. ONOS provides APIs for networking applications to manage network resources through its distributed core, which handles state management, notifications, high availability and scalability. It supports protocols like OpenFlow, NETCONF and OVSDB. ONOS can be run on Linux systems or via Docker and supports clustering of multiple controller instances for high availability. It includes a GUI, CLI and REST APIs and can work with Mininet for network emulation and testing.