I've been trying to understand the difference between an NOS and an SDN Controller, because in many sources, this term is used interchangeably. For example: https://arxiv.org/pdf/1406.0440.pdf

But then I go searching for OpenFlow enabled switches and I find that they are running a "Network Operating System," such as PicOS or Cumulus Linux and that they are also compatible with SDN Controllers such as Ryu. This leads me to believe that these are two separate designations. The NOS being housed on the forwarding device's hardware in the data plane and the SDN Controller being housed on a separate, commodity hardware platform with an ethernet connection.

Were these once an interchangeable term but has since become two separate things? Or do PicOS and Ryu do essentially the same thing?

  • Did any answer help you? If so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you can provide and accept your own answer.
    – Ron Maupin
    Dec 25, 2018 at 9:20

3 Answers 3


Welcome to NE! We hope you will become a contributing member of this community.

The terms you mention, like a lot of networking terms, are often defined by the system manufacturers, and they are free to have them mean whatever they want in order to sell their products. In other words, the definitions are not precise and can change over time. Different manufacturers can use the same term differently. This is especially true of new, developing technologies like SDN.

  • 1
    The term "network operating system" has been widely abused over the course of my 20 years in the business. To me it is essentially meaningless without extensive context. E.g., if Microsoft uses it, they mean a Windows Server OS. If Cisco uses it, they probably mean a switch OS. But I think both of those manufacturers have largely abandoned the term because of how confusing it has become. Aug 22, 2018 at 19:05
  • Novell Netware! SCNR
    – Zac67
    Aug 22, 2018 at 19:06

In the context of SDN, they are different things. The NOS is the operating system (and proprietary hardware driver bits) running on the physical switch hardware. The controller is an application (or suite of apps) that can run within the same NOS -- or any other OS -- either on the switch hardware, on dedicated hardware, or a virtual machine somewhere. In the first case, you're collapsing everything into a traditional (albeit much more complicated) switch.

Put another way, the NOS is just like any other OS -- ubuntu, centos, windows -- with the notable exception that a NOS comes with the vendor specific, proprietary bits necessary to interface with the hardware. While it's possible to build drivers for any random OS/distribution, access to source code to do so is extremely limited. What Broadcom (etc.) has released as their "open source" NDK is a very bad joke.


Network Operating System (NOS) is a concept that looks to abstract away lower level network details. The Windows or Linux OS both do this for computers and are both Operating Systems. The advantage an OS brings is that we no longer need to program in binary or assembler and that programs are portable between computers using the same OS.

SDN is an implementation of a NOS. Network Operators are moving away from programming the network by installing rules on every server or switch. They (ideally) should be able to interact with a SDN controller derived abstraction and leave the network implementation details to the SDN controller (as the NOS chosen).

At some point there may be a second widely acknowledged NOS that competes with SDN.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.