Часто мы не знаем, как программные продукты устроены изнутри — в этом и не всегда есть необходимость. Используемые решения нередко скрываются за «черным ящиком» и многими слоями абстракции, что делает их удобными для пользователей. Такие абстрактные уровни заметно ускоряют разработку, ведь возможно использовать уже готовые варианты для добавления функций. Это распространенная практика. Например, в большинстве ОС есть собственные API system, рассмотрим, для чего они нужны:
- работают с файлами;
 - отображают графику;
 - управляют данными;
 - подключаются к сети;
 - воспроизводят звук и многое другое.
 
Windows, Linux и macOS самостоятельно определяют, какая именно функциональность и параметры нужны для выполнения определенных операций. Вся эта информация указана в документации.