SONiC/FBOSS/OpenSwitch/ONL/Cumulus都属性网络操作系统,SONiC和FBOSS(以及snaproute)一样强调是网络软件集合,而非Linux发行版本,app级;ONL和Cumulus则强调做Linux的发行版本(网络操作系统类),OpenSwitch使用Yocto构建内核和基础文件系统,所以它也算是Linux的发行版本。
什么是Linux发行版本,就是内核+文件系统+工具集+应用软件包(仓库),各发行版本之间内核的差异应该是最小的,基本都是基于Linux内核的某个发行版本,文件系统遵循FHS规范
NOS的基础服务:配置管理(CLI、netconf、Jason、SNMP等)、系统管理(诊断维护、补丁管理、进程监控、时间管理等)、设备管理(整机管理、设备管理、时钟管理、固件管理、电子标签、故障管理、能力管理、License)、信息中心(Log\告警)、数据库(订阅/发布机制、系统配置信息、系统状态信息、统计信息、可编程API等)、虚拟化(KVM\DOCKER\LXC\libvirt)
网络应用:传统网络业务(如VRP\quagga实现的业务,二层的、三层的)和SDN网络业务(Openflow)
应用:网络自动化等应用,如puppet、chef、ansible
BCM贡献OpenNSL和BroadView
协议收包:socket(netlink?)或pcap。