Welcome to the Open Network Operating System (ONOS) Wiki!
This wiki aims to provide up-to-date information about the ONOS Project. This is a community effort - if you are interested in helping out, or would like to write about something, please refer to this page.
All information on this wiki is publicly accessible. If you would like to contribute to this space, you will need an ONOS account: https://onosproject.org/register/
Introduction: What is ONOS?
ONOS stands for Open Network Operating System. ONOS provides the control plane for a software-defined network (SDN), managing network components, such as switches and links, and running software programs or modules to provide communication services to end hosts and neighboring networks.
- If you are familiar with server operating systems, you will find that ONOS provides some analogous types of functionality, including APIs and abstractions, resource allocation, and permissions, as well as user-facing software such as a CLI, a GUI, and system applications.
- If you are familiar with traditional "inside the box" switch operating systems, you will find that ONOS manages your entire network rather than a single device, which can dramatically simplify management, configuration, and deployment of new software, hardware and services.
- If you are familiar with SDN controllers, you should feel right at home because the ONOS platform and applications act as an extensible, modular, distributed SDN controller.
The most important benefit of an operating system is that it provides a useful and usable platform for software programs designed for a particular application or use case. ONOS applications and use cases often consist of customized communication routing, management, or monitoring services for software-defined networks.
ONOS can run as a distributed system across multiple servers, allowing it to use the CPU and memory resources of multiple servers while providing fault tolerance in the face of server failure and potentially supporting live/rolling upgrades of hardware and software without interrupting network traffic.
The ONOS kernel and core services, as well as ONOS applications, are written in Java as bundles that are loaded into the Karaf OSGi container. OSGi is a component system for Java that allows modules to be installed and run dynamically in a single JVM. Since ONOS runs in the JVM, it can run on several underlying OS platforms. More information on the internal design of ONOS may be found in Architecture and Internals Guide, and information on developing ONOS applications may be found in the Developer Guide.
ONOS is an open source project backed by an expanding community of developers and users, and you are invited and encouraged to join in discussion, development, documentation, and improvement of the ONOS system. This document itself is part of the ONOS wiki, so please feel free to fix any errors, add clarifying comments, and improve it as you see fit.
Welcome to ONOS!
Key People & Communication Channels
- ONOS Governance - a look into our project model and governing body organization.
- Documentation Section Owners - people to reach out to for wiki updates and additions.
- Developer mailing list: https://groups.google.com/a/onosproject.org/forum/#!forum/onos-dev
- Deployment mailing list: https://groups.google.com/a/onosproject.org/forum/#!forum/onos-discuss
- Announcements mailing list: https://groups.google.com/a/onosproject.org/forum/#!forum/onos-announce
- Slack channel: #onos-dev https://onf-community.slack.com/archives/C017FHBGBC5
- To join, please click here: https://join.slack.com/t/onf-community/shared_invite/zt-g2ed9rid-t9mAGa4Y2RrKfBWbY665tA
NOTE: these meetings are PUBLIC and RECORDED and the recordings are typically uploaded to YouTube.
If you would like to get involved and to keep track of the latest news about ONOS, the following might be interesting:
- Contributor Guide - information about how to get involved in contribution opportunities
- Collaborate - Process for an organization to become an official collaborator.
- Guides - the core reference manuals for anyone who wants to use ONOS or develop ONOS applications or components
- Tutorials - tutorials, videos, presentations, and a quick tour of this wiki for those interested in learning about ONOS.
- Apps and Use Cases - various projects that have been built using ONOS as their SDN platform.
- Code - This repo uses Apache License v 2.0.
If you are interested in using or working with ONOS, you may find the following useful:
- Tutorials - learn how to use ONOS and develop applications
- Screencasts - watch a series of short how-to videos
- Guides - home page for the ONOS guides for users and developers
- ONOS System Test - ONOS system test guidelines
- System Test Plans and Results - Plans and results of ONOS system test
- Release Process - project release notes and release model
- Logo - Official ONOS logo in eps format
Come help out!
ONOS is a dynamic open-source project. Help us evolve ONOS and keep the information here up-to date!
Find out how to begin in A Beginner's Guide to Contribution.
ONOS is distributed under the Apache 2.0 license.
We expect all ONF employees, member companies, and participants to abide by our Code of Conduct. If you have any questions or concerns, please notify a member of the ONF team or email firstname.lastname@example.org.
Having trouble getting started? First, reach out to the mailing list or Slack team. If you still have questions or concerns, please email email@example.com.