Программное обеспечение — это не только программы, а весь зоопарк из инструкций, данных и документации, который заставляет компьютер хоть как-то работать. Без него железо просто кусок пластика и меди. Ни запустить, ни выключить.

Что вообще такое программное обеспечение

Если коротко — это:

  • программы (очевидно)
  • функции и процедуры внутри этих программ
  • документация (да, кто-то её всё ещё читает)
  • и данные, с которыми всё это работает

Программное обеспечение — один из видов обеспечения вычислительных систем. Помимо него есть ещё аппаратное, математическое, лингвистическое и прочее занудство, про которое даже инженеры стараются не вспоминать. Информатика и софтверная инженерия — это уже про академиков, не про нас.

Классификация ПО

По способу запуска:

  • интерпретируемые (работают «на лету»)
  • компилируемые (сначала собираются, потом работают)

По переносимости:

  • платформозависимые (завязаны на конкретное железо или ОС)
  • кроссплатформенные (более живучие, работают где угодно)

По распространению:

  • закрытые (плати и молчи)
  • открытые (код есть, но не факт что можно всё)
  • свободные (делай, что хочешь)

По назначению:

  • системные
  • прикладные
  • инструментальные

По составу:

  • компонент (одиночка, выполняет конкретную задачу)
  • комплекс (несколько компонентов, работает в связке)

Системное ПО

Системное ПО — это то, без чего не взлетит вообще ничего. Оно рулит железом: процессором, памятью, видюхой, сетью. Это прослойка между операционной системой и тем, что вы запускаете.

Если прикладной софт решает задачи вроде “написать текст” или “посчитать финансы”, то системное — даёт всем остальным ПО возможность вообще запуститься и работать.

Примеры:

  • операционные системы (Windows, Linux, macOS)
  • драйверы
  • утилиты
  • СУБД

и прочие «бэкграундные» штуки

Встроенные программы

Это то, что «вшито» в железо — например, BIOS. Без него ПК не узнает, что он ПК. В микроконтроллерах и простых системах таких встроенных программ может быть с десяток: инициализация, диагностика, подгрузка чего-нибудь из памяти и т.д.

Утилиты

Утилиты — это такие помощники. Не делают ничего суперважного напрямую, но без них вы проклянёте всё. Они настраивают систему, чистят мусор, показывают, где память утекает.

Некоторые встроены в ОС, некоторые идут в комплекте с железом, а некоторые — качаешь отдельно и молишься, чтобы не было вируса.

Прикладное ПО

Это то, с чем сталкивается пользователь: браузеры, почтовики, офисные пакеты, графические редакторы, игры. То, ради чего вообще всё и запускалось. Работает в тесной связке с человеком — кнопки, окна, интерфейс.

Инструментальное ПО

Инструментальное ПО — это уже для тех, кто пишет софт. Без него девелоперы бы всё ещё паяли на бумаге. В эту категорию входят:

  • среды разработки (IDE)
  • SDK
  • системы контроля версий (Git и всё, что с ним)
  • баг-трекеры (Jira, вырви глаз)

Это не для обычных смертных, а для тех, кто пишет код, а потом ещё три дня дебажит, почему он не работает.