The Facebook FBOSS (Open Switching System) is a network operating system for data center switches. It provides a modular architecture with a central agent daemon that controls the switch hardware (via HALs like SAI and Broadcom), manages routing protocols (BGP, etc.), and offers telemetry via FSDB. The system includes a CLI for configuration, various services (QSFP, LED, fan, sensor), and extensive testing. Key entry points are the agent main (fboss/agent/Main.cpp), CLI main (fboss/cli/fboss2/Main.cpp), and service daemons. Data flows involve configuration pushing to hardware, telemetry publishing via FSDB, and packet processing by the ASIC.
This repository is the build system and platform integration layer for SONiC, a Linux-based network operating system for switches. It produces installer images for dozens of vendor hardware platforms by orchestrating Debian-based Docker containers, kernel modules, and system services. The codebase is highly fragmented across vendor-specific directories with massive duplication of platform abstraction code (e.g., PSU, fan, SFP plugins) and a shared PDDF (Platform Device Driver Framework) that reduces some of this duplication. It contains network control-plane daemons (BGP, DHCP, MACsec, authentication), system health monitoring, configuration generation via sonic-cfggen, and build tooling. While the repository is actively maintained, the code quality is uneven: many files are near-identical copies across platforms, several implementations are stubs or incomplete, and there is a mix of Python 2/3 and hardcoded sysfs paths. The true value lies in the PDDF abstraction layer and the reusable daemon patterns (e.g., GracefulExitter).