Системное программное обеспечение — это комплекс программ, которые обеспечивают эффективное управление компонентами компьютерной системы, такими как процессор, оперативная память, устройства ввода-вывода, сетевое оборудование, выступая как «межслойный интерфейс», с одной стороны которого аппаратура, а с другой - приложения пользователя. В отличие от прикладного программного обеспечения, системное не решает конкретные прикладные задачи, а лишь обеспечивает работу других программ, управляет аппаратными ресурсами вычислительной системы и т.д.
- Операционная система - комплекс системных программ, расширяющий возможности вычислительной системы, а также обеспечивающий управление её ресурсами, загрузку и выполнение прикладных программ, взаимодействие с пользователями. В большинстве вычислительных систем ОС являются основной, наиболее важной (а иногда единственной) частью системного ПО.
Основные функции (простейшие ОС):
- Загрузка приложений в оперативную память и их выполнение.
- Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода).
- Управление оперативной памятью (распределение между процессами, виртуальная память).
- Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск, компакт-диск и т. д.), организованным в той или иной файловой системе.
- Пользовательский интерфейс.
- Сетевые операции, поддержка стека протоколов.
Дополнительные функции:
- Параллельное или псевдопараллельное выполнение задач (многозадачность).
- Взаимодействие между процессами: обмен данными, взаимная синхронизация.
- Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений.
- Разграничение прав доступа и многопользовательский режим работы (аутентификация, авторизация).
- Встроенные программы или firmware - это программы, "зашитые" в цифровые электронные устройства. В ряде случаев (например, BIOS IBM-PC совместимых компьютеров) являются по сути частью операционной системы, хранящейся в постоянной памяти. В достаточно простых устройствах вся операционная система может быть встроенной. Многие устройства современных компьютеров имеют собственные "прошивки", осуществляющие управление этими устройствами и упрощающие взаимодействие с ними.
- Утилиты (англ. utility или tool) — программы, предназначенные для решения узкого круга вспомогательных задач.
Иногда утилиты относят к классу сервисного программного обеспечения
Утилиты используются для:
- Мониторинга показателей датчиков и производительности оборудования — мониторинг температур процессора, видеоадаптера; чтение S.M.A.R.T. жёстких дисков;
- Управления параметрами оборудования — ограничение максимальной скорости вращения CD-привода; изменение скорости вращения вентиляторов.
- Контроля показателей — проверка ссылочной целостности; правильности записи данных.
- Расширения возможностей — форматирование и/или переразметка диска с сохранением данных, удаление без возможности восстановления.
Типы утилит:
- Дисковые утилиты
- Дефрагментаторы
- Проверка диска — поиск неправильно записанных либо повреждённых различным путём файлов и участков диска и их последующее удаление для эффективного использования дискового пространства.
- Очистка диска — удаление временных файлов, ненужных файлов, чистка «корзины».
- Разметка диска — деление диска на логические диски, которые могут иметь различные файловые системы и восприниматься операционной системой как несколько различных дисков.
- Резервное копирование — создание резервных копий целых дисков и отдельных файлов, а также восстановление из этих копий.
- Сжатие дисков — сжатие информации на дисках для увеличения вместимости жёстких дисков.
- Утилиты работы с реестром
- Утилиты мониторинга оборудования
- Тесты оборудования
- Системы программирования
К этой категории относятся системные программы, предназначенные для разработки программного обеспечения:
- ассемблеры — компьютерные программы, осуществляющие преобразование программы в форме исходного текста на языке ассемблера в машинные команды в виде объектного кода.
- трансляторы - программы или технические средства, выполняющее трансляцию программы.
- компиляторы — Программы, переводящие текст программы на языке высокого уровня, в эквивалентную программу на машинном языке.
- интерпретаторы — Программы (иногда аппаратные средства), анализирующие команды или операторы программы и тут же выполняющие их
- компоновщики (редакторы связей) — программы, которые производят компоновку — принимают на вход один или несколько объектных модулей и собирают по ним исполнимый модуль.
- препроцессоры исходных текстов — это компьютерные программы, принимающие данные на входе, и выдающие данные, предназначенные для входа другой программы, например, такой, как компилятор
- Отладчик (debugger)- является модулем среды разработки или отдельным приложением, предназначенным для поиска ошибок в программе.
- текстовые редакторы — компьютерные программы, предназначенные для создания и изменения текстовых файлов, а также их просмотра на экране, вывода на печать, поиска фрагментов текста и т. п.
- специализированные редакторы исходных текстов — текстовые редакторы для создания и редактирования исходного кода программ. Специализированный редактор исходных текстов может быть отдельным приложением, или быть встроен в интегрированную среду разработки (IDE).
- библиотеки подпрограмм — сборники подпрограмм или объектов, используемых для разработки программного обеспечения.
- Редакторы графического интерфейса
- Системы управления базами данных
- Система управления базами данных (СУБД) — специализированная программа (чаще комплекс программ), предназначенная для организации и ведения базы данных.
Так как системы управления базами данных не являются обязательным компонентом вычислительной системы, зачастую их не относят к системному программному обеспечению. Иногда СУБД относят к промежуточному программному обеспечению (Middleware)
Основные функции СУБД
- управление данными во внешней памяти (на дисках);
- управление данными в оперативной памяти с использованием дискового кэша;
- журнализация изменений, резервное копирование и восстановление базы данных после сбоев;
- поддержка языков БД (язык определения данных, язык манипулирования данными).