Програми дозволяють використовувати апаратні компоненти компʼютера для виконання цифрових операцій користувача.

Програмне забезпечення пристрою складається з кількох рівнів. Це необхідно для сумісності різних видів програм та апаратних компонентів. Зазвичай воно функціонує на трьох взаємоповʼязаних рівнях.

1. Низькорівневі прошивки (Firmware)

Це базовий програмний код, який «зашитий» безпосередньо в апаратні компоненти компʼютера. Він забезпечує первинну ініціалізацію та безпосередній контроль обладнання (наприклад, материнської плати).

Прошивка діє як найнижчий рівень абстракції: вона готує обладнання до передачі керування операційній системі або самостійно керує всією роботою, якщо пристрій простий і не має повноцінної ОС (як-от електронний термометр).

Приклади:

  • мобільні пристрої — Bootloader (зазвичай закритий і жорстко привʼязаний до компонентів конкретного смартфона);
  • ПК та ноутбуки — BIOS / UEFI та інші.

2. Операційні системи (ОС)

ОС розподіляє ресурси пристрою, керує памʼяттю і створює середовище для запуску потрібних програм як процесів. Операційні системи завжди розробляються під певну архітектуру процесора (наприклад, x86_64 для компʼютерів або ARM64 для смартфонів).

Від обраної ОС залежить, які програми можна встановити та які будуть доступні за замовчуванням.

Для ПК (архітектура x86_64)

  • Закритий код: Windows, macOS (працює лише на техніці Apple).
  • Відкритий код: різноманітні Linux- та BSD-дистрибутиви.

Для мобільних пристроїв (архітектура ARM64)

  • Закритий код: iOS (лише для Apple).
  • Відкритий код (база): Android.

3. Прикладне ПЗ — спеціалізовані програми та додатки

Розробляється та оптимізується під певне середовище виконання (операційну систему). Це дозволяє створювати програми одразу для широкого кола пристроїв, які підтримують цільову ОС — від доступу в Інтернет і спілкування в месенджерах до складної роботи з 3D-графікою.

Основні відмінності визначаються методами встановлення та ліцензіями розповсюдження.

Методи встановлення: програма та додаток

Функціонально вони можуть не відрізнятися.

  • Програми — завантажуються вручну з офіційних сайтів у вигляді файлів для встановлення.
  • Додатки — встановлюються через централізовані «магазини» (App Store, Google Play), які є частиною операційної системи. Це робить процес встановлення та оновлення централізованим.

Ліцензії розповсюдження: закритий і відкритий код

Закритий код

Розробляється та фінансується приватними компаніями. Код прихований.

  • Безкоштовні: браузер Google Chrome.
  • Платні (купівля або підписка): Microsoft Office (документи), Adobe Photoshop (графіка), Autodesk Maya, SolidWorks (3D-моделювання).

Відкритий код (Open Source)

Розробляється спільнотами інженерів та ентузіастів. Код відкритий для всіх; такі програми типово розповсюджуються безкоштовно. Розробка фінансується пожертвами, комерційними ліцензіями на розповсюдження або платною підтримкою. Відкритість коду дозволяє спільноті проводити власні аудити безпеки.

Приклади: LibreWolf (браузер), Keepass (парольний менеджер), LibreOffice (офісні задачі), GIMP (растрова графіка), Blender і FreeCAD (3D-моделювання), VirtualBox (віртуалізація), MySQL (база даних), Busybox (системні утиліти) та інші.