Системное, прикладное и инструментальное ПО; операционная система и её функции
Понятие программного обеспечения
Программное обеспечение (ПО, software) — совокупность программ, обеспечивающих работу компьютера и решение с его помощью различных задач, а также документации к этим программам. В отличие от аппаратного обеспечения (hardware) — физических электронных и механических устройств компьютера, — программное обеспечение представляет собой нематериальные инструкции, хранящиеся в памяти в виде последовательностей команд. Без программного обеспечения даже самый совершенный компьютер — это лишь бесполезный набор электронных схем; именно ПО определяет, какие задачи компьютер способен решать.
Классификация программного обеспечения
По функциональному назначению программное обеспечение принято делить на три большие группы: системное (обеспечивает работу самого компьютера и служит платформой для остальных программ), прикладное (решает конкретные практические задачи пользователя) и инструментальное (предназначено для создания нового программного обеспечения — систем программирования). Эти категории не являются строго изолированными: например, интегрированная среда разработки одновременно относится к инструментальному ПО, а СУБД можно рассматривать и как системное, и как прикладное средство в зависимости от контекста использования.
Системное программное обеспечение
К системному ПО относят прежде всего операционную систему — базовый комплекс программ, без которого невозможна работа компьютера, а также драйверы устройств (программы, обеспечивающие взаимодействие ОС с конкретными моделями аппаратуры) и утилиты — вспомогательные программы для обслуживания компьютера: архиваторы (сжатие данных), антивирусные программы (защита от вредоносного ПО), программы диагностики и оптимизации диска, средства резервного копирования. Системное ПО работает «под капотом», обеспечивая базовую функциональность, на которой строятся все прикладные программы.
Операционная система: назначение и функции
Операционная система (ОС) — комплекс системных программ, обеспечивающий управление аппаратными ресурсами компьютера, запуск и выполнение прикладных программ, а также взаимодействие пользователя с компьютером. Основные функции ОС: управление процессами — распределение процессорного времени между одновременно выполняющимися программами; управление памятью — распределение оперативной памяти между процессами и организация виртуальной памяти; управление файловой системой — организация хранения данных на внешних носителях; управление устройствами ввода-вывода через драйверы; предоставление пользовательского интерфейса (командная строка или графический интерфейс); а также базовые функции обеспечения безопасности — разграничение прав доступа пользователей к ресурсам. Примеры операционных систем: семейство Windows, Linux (и его дистрибутивы), macOS, а также мобильные Android и iOS.
Файловая система
Файл — именованная область данных на носителе информации, а файловая система — часть операционной системы, определяющая способ организации, хранения и именования файлов на внешнем носителе. Файлы объединяются в иерархическую структуру каталогов (папок): каждый каталог может содержать как файлы, так и вложенные подкаталоги. Местоположение файла однозначно определяется его полным путём — последовательностью имён каталогов от корневого каталога до самого файла, например C:\Users\Ivan\Documents\report.docx в Windows или /home/ivan/documents/report.docx в Linux. Среди распространённых файловых систем — FAT32, NTFS, exFAT (Windows), ext4 (Linux), APFS (macOS); они различаются максимальным размером файла и раздела, поддержкой прав доступа и другими характеристиками.
Прикладное программное обеспечение
Прикладное ПО — программы, предназначенные для решения конкретных практических задач пользователя, а не для обслуживания самого компьютера. К нему относятся текстовые и табличные процессоры (Microsoft Word, Excel, LibreOffice), графические редакторы, браузеры для работы в интернете, программы для воспроизведения аудио и видео, системы автоматизированного проектирования (САПР), бухгалтерские программы, компьютерные игры и множество других специализированных программ. Прикладное ПО делится на ПО общего назначения (универсальные программы, применимые в разных областях, например текстовый редактор) и специализированное (ориентированное на узкую предметную область, например программа для расчёта строительных конструкций).
Инструментальное программное обеспечение
Инструментальное ПО (системы программирования) предназначено для разработки нового программного обеспечения. Оно включает текстовые редакторы кода, трансляторы (компиляторы и интерпретаторы), переводящие текст программы с языка программирования в машинный код или выполняющие его, отладчики (debugger) для поиска ошибок во время выполнения программы, а также интегрированные среды разработки (IDE) — комплексы, объединяющие редактор, транслятор и отладчик в едином удобном интерфейсе (например, PyCharm, Visual Studio, IntelliJ IDEA).
Компиляторы и интерпретаторы
Компилятор переводит весь текст программы (исходный код) в машинный код заранее, создавая исполняемый файл, который затем может запускаться многократно без повторного перевода; выполнение скомпилированной программы обычно происходит быстрее. Интерпретатор, напротив, переводит и сразу выполняет программу построчно (или по командам), без создания отдельного исполняемого файла; это упрощает отладку и делает программу переносимой между платформами, но обычно снижает быстродействие по сравнению с компилируемым кодом. Язык Python, например, традиционно использует интерпретацию (хотя современные реализации применяют элементы компиляции в промежуточный байт-код для ускорения).
| Признак | Компиляция | Интерпретация |
|---|---|---|
Момент перевода | Заранее, весь код целиком | Во время выполнения, по частям |
Результат перевода | Отдельный исполняемый файл | Исполнение без сохранения кода |
Скорость выполнения | Как правило, выше | Как правило, ниже |
Примеры языков | C, C++, Pascal | Python (классически), JavaScript |
Лицензирование программного обеспечения
Использование программного обеспечения регулируется лицензионным соглашением — документом, определяющим права и обязанности пользователя. По условиям распространения ПО делят на проприетарное (коммерческое) — распространяется за плату, исходный код закрыт (например, Microsoft Windows); freeware — распространяется бесплатно, но без предоставления исходного кода и без права изменения программы; shareware — распространяется бесплатно на пробный период или с ограниченной функциональностью, после чего требуется приобрести полную версию; свободное (открытое) программное обеспечение (Open Source) — распространяется с открытым исходным кодом, который можно изучать, изменять и распространять на определённых условиях лицензии (например, GNU GPL); к таким программам относится, в частности, операционная система Linux.
Пример: расчёт числа файлов, помещающихся на диске
Задача. Объём свободного места на диске — 8 Гбайт. Средний размер одного файла с фотографией составляет 4 Мбайт. Оцените, сколько таких файлов можно сохранить на диске (единицы измерения — в двоичных кратных: 1 Гбайт = 1024 Мбайт).
Решение. Переведём объём диска в мегабайты и разделим на размер одного файла:
Ответ. На диске поместится не более 2048 файлов (без учёта служебной информации файловой системы, которая на практике немного уменьшает доступный объём).
Типичные ошибки
Частая ошибка — путать операционную систему с прикладными программами, установленными «поверх» неё: например, считать браузер частью операционной системы, хотя это отдельное прикладное ПО. Другая ошибка — путать компиляцию и интерпретацию, забывая, что при интерпретации отдельный исполняемый файл не создаётся. Также нередко путают понятия «freeware» и «свободное ПО» (Open Source): бесплатность программы (freeware) не означает открытости её исходного кода — это принципиально разные характеристики лицензии.
Краткий словарь терминов
Программное обеспечение — совокупность программ и документации к ним, обеспечивающих работу компьютера.
Операционная система — комплекс программ, управляющий ресурсами компьютера и обеспечивающий работу прикладных программ.
Драйвер — программа, обеспечивающая взаимодействие операционной системы с конкретным устройством.
Транслятор — программа, переводящая текст на языке программирования в машинный код (компилятор) или выполняющая его (интерпретатор).
Файловая система — способ организации хранения и именования файлов на носителе информации.
Свободное ПО (Open Source) — программное обеспечение с открытым исходным кодом, доступным для изучения и изменения.
Заключение
Программное обеспечение компьютера образует три взаимосвязанных слоя: системное ПО во главе с операционной системой обеспечивает базовую работу аппаратуры, прикладное ПО решает конкретные задачи пользователя, а инструментальное ПО служит для создания новых программ. Понимание этой классификации и функций операционной системы необходимо для перехода к следующей теме — устройству компьютерных сетей, где множество отдельных компьютеров с их программным обеспечением объединяются в единую систему обмена информацией.



