Platform refers to the OpenDrives' "Operating System" (OS) and the collection of low level "Systems Software" that provides core functionalities on top of the OpenDrives hardware.

Operating System (OS)

The OS shipped with an OpenDrives system is a highly customized version of Debian Linux. OpenDrives customizes the OS so that it best matches our storage offering keeping in mind performance, hardware support, stability, and security updates to name a few. OpenDrives customizes the OS for multiple reasons:

  • Hardware Compatibility OpenDrives system ships with customized hardware for optimal performance. The OS has to support such hardware with appropriate device drives.

  • Core Software Stability OpenDrives makes sure that the core storage software is supported, patched, configured, and tuned to match enterprise grade performance and stability.

  • Security and Upgrades OpenDrives makes sure that the OS is stable and in line with the upstream Linux kernel. This may include interim updates to the OS due to security, performance, stability, and/or to support for new features that may not be part of standard Linux offering.

Systems Software

There are quite a few software utilities that are bundled with the OS, some of which are patched to meet our needs. OpenDrives platform software follows Debian Linux style distribution of software utilities. This helps us manage, distribute, and update software utilities. The scope of systems software utilities include but not limited to:

  • Administration Essential administration software required to create and manage the storage and networking hardare. In case of a sclae-out and/or HA system, this includes software that is responsible for coordinating and managing health of multiple systems.

  • API Support Software utilities that support our user interface and respond to call from our frontend API.

  • Diagnostics Making sure there are probes and logs available to monitor and diagnose on-field issues.

  • Containers These are "recepies" (i.e., third party software) that one can run in an isolated, sandboxed environment on our system.

In general, the end user of our software does not have to interact directly with the platform. The interaction with our platform is abstracted out via the Atlas software for ease of use and hiding the complexity of setting up and managing storage systems.