Программное обеспечение (ПО, software) — это совокупность программ, данных и документации, которая позволяет компьютеру или другому устройству выполнять определённые задачи. ПО «оживляет» аппаратную часть (железо): без него компьютер — набор микросхем и плат, а с ним — инструмент для работы, учёбы, развлечений и т. д.
Что входит в понятие ПО
Помимо самих исполняемых файлов, в понятие ПО часто включают:
- Программы и скрипты — непосредственно код, который выполняется процессором.
- Данные и конфигурации — настройки, файлы ресурсов (картинки, шрифты, шаблоны), базы данных, необходимые для работы программы.
- Документацию — руководства пользователя, API‑документацию, инструкции по установке и миграции. В регламентированных проектах (например, по ГОСТ) документация — обязательная часть ПО.
Термин впервые использовал математик Джон Тьюки в 1958 году как противопоставление «железу» (hardware — «твёрдое», а software — «мягкое», то есть изменяемое).
Отличие ПО от программы
Часто эти слова используют как синонимы, но в инженерии между ними есть нюанс:
- Программа — это отдельный набор инструкций для решения конкретной задачи (например, калькулятор).
- Программное обеспечение — более широкое понятие: это может быть одна программа, комплекс программ, библиотеки, данные и документация, которые вместе решают класс задач (например, офисный пакет или операционная система).
Основные виды ПО
По назначению
- Системное ПО. Обеспечивает работу компьютера и других программ. Примеры: операционные системы (Windows, Linux, macOS), драйверы устройств, утилиты, загрузчики. Главная задача — управлять ресурсами (память, процессор, диски) и предоставлять интерфейс для запуска других программ.
- Прикладное ПО. Решает задачи конечного пользователя. Примеры: браузеры, текстовые редакторы, мессенджеры, игры, CRM‑системы, банковские приложения.
- Инструментальное ПО. Нужно для создания, тестирования и поддержки других программ. Примеры: компиляторы и интерпретаторы, отладчики, среды разработки (IDE), системы контроля версий, средства статического анализа.
По способу распространения и доступа к коду
- Проприетарное ПО. Код закрыт, права принадлежат правообладателю, использование регулируется лицензией (например, Microsoft Office, Adobe Photoshop).
- Свободное ПО (free software). Даёт пользователю четыре свободы: запускать, изучать, изменять и распространять программу (пример — Linux, GIMP).
- Открытое ПО (open source). Исходный код доступен для просмотра и изменений; условия использования определяются конкретной лицензией (MIT, Apache, GPL и др.). Не всегда бесплатно в денежном смысле, но открыто для изучения.
- Бесплатное ПО (freeware). Можно использовать без оплаты, но не обязательно с открытым кодом и не всегда с правом модификации (некоторые утилиты, антивирусы).
По среде исполнения
- Десктопное ПО — для персональных компьютеров.
- Веб‑приложения — работают в браузере, серверная часть на удалённом сервере.
- Мобильные приложения — для смартфонов и планшетов (нативные, кроссплатформенные, PWA).
- Встроенное ПО (firmware) — прошивка для устройств (роутеры, телевизоры, автомобили, станки). Часто работает без прямого взаимодействия с пользователем.
Роль ПО в системе «железо — софт — пользователь»
- Аппаратное обеспечение даёт вычислительную мощность и каналы ввода‑вывода.
- ПО преобразует эти возможности в понятные действия: интерфейс, логику, обработку данных, хранение и передачу информации.
- Пользователь получает готовый инструмент: не нужно знать, как работает процессор, — достаточно нажать кнопку.
Юридические и управленческие аспекты
С точки зрения бизнеса и права ПО — это:
- Объект авторского права. Код охраняется как литературное произведение; права могут принадлежать разработчику или заказчику.
- Активы компании. Лицензии, подписки, собственные разработки — это статьи бюджета и нематериальные активы.
- Продукт или услуга. ПО продают как коробку/лицензию либо как сервис (SaaS), где доступ и обновления включены в подписку.
Примеры для понимания
- Операционная система (Windows, Android) — системное ПО: управляет устройством и запускает остальные программы.
- Текстовый редактор (Notepad, Word) — прикладное ПО: решает конкретную задачу пользователя.
- Компилятор C++ — инструментальное ПО: нужен, чтобы превратить исходный код в исполняемый файл.