Системное программное обеспечение

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
(перенаправлено с «Системный программист»)

Систе́мное программное обеспечение — программы, решающие задачи общевычислительного характера — вы­де­ле­ния и разделения ресурсов, доступа к устройствам, обеспечивающие среды для разработки, запуска и выполнения других про­грамм.

Системное программирование — создание системного программного обеспечения; системный программист' — разработчик системного программного обеспечения.

В отличие от прикладного программного обеспечения, системное не решает конкретные практические задачи, а лишь обеспечивает работу других программ, предоставляя им сервисные функции, абстрагирующие детали аппаратной и микропрограммной реализации вычислительной системы, управляет аппаратными ресурсами вычислительной системы.

Отнесение того или иного программного обеспечения к системному условно и зависит от соглашений, используемых в конкретном контексте. Как правило, к системному программному обеспечению относятся операционные системы[⇨], утилиты[⇨], системы программирования[⇨], системы управления базами данных[⇨], широкий класс связующего программного обеспечения.

Место системного программного обеспечения (выделено зелёным) в многоуровневой схеме вычислительной системы

Операционные системы

Операционная система — комплекс системных программ, расширяющий возможности вычислительной системы, а также обеспечивающий управление её ресурсами, загрузку и выполнение прикладных программ, взаимодействие с пользователями. В большинстве вычислительных систем операционные системы являются основной, наиболее важной (а иногда единственной) частью системного программного обеспечения.

Функции операционных систем

Основные функции (простейшие операционные системы):

  • Загрузка приложений в оперативную память и их выполнение.
  • Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода).
  • Управление оперативной памятью (распределение между процессами, виртуальная память).
  • Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск, компакт-диск и т. д.), организованным в той или иной файловой системе.
  • Пользовательский интерфейс.
  • Сетевые операции, поддержка стека протоколов.

Понятие операционной системы

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

Есть приложения вычислительной техники, для которых операционные системы излишни. Например, встроенные микрокомпьютеры содержатся сегодня во многих бытовых приборах, автомобилях (иногда по десятку в каждом), сотовых телефонах и т. п. Зачастую такой компьютер постоянно исполняет лишь одну программу, запускающуюся по включении. И простые игровые приставки — также представляющие собой специализированные микрокомпьютеры — могут обходиться без операционной системы, запуская при включении программу, записанную на вставленном в устройство «картридже» или компакт-диске. Тем не менее некоторые микрокомпьютеры и игровые приставки всё же работают под управлением особых собственных операционных систем. В большинстве случаев, это UNIX-подобные системы (последнее особенно верно в отношении программируемого коммутационного оборудования: файрволов, маршрутизаторов).

Основные идеи операционных систем

Предшественником операционных систем следует считать служебные программы (загрузчики и мониторы), а также библиотеки часто используемых подпрограмм, начавшие разрабатываться с появлением универсальных компьютеров 1-го поколения (конец 1940-х годов). Служебные программы минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли избежать многократного программирования одних и тех же действий (осуществления операций ввода-вывода, вычисления математических функций и т. п.).

В 19501960-х годах сформировались и были реализованы основные идеи, определяющие функциональные возможности операционных систем: пакетный режим, разделение времени и многозадачность, разделение полномочий, реальный масштаб времени, файловые структуры файловые системы.

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

Встроенные программы или firmware — это программы, «зашитые» в цифровые электронные устройства. В ряде случаев (например, BIOS IBM-PC совместимых компьютеров) являются по сути частью операционной системы, хранящейся в постоянной памяти. В достаточно простых устройствах вся операционная система может быть встроенной. Многие устройства современных компьютеров имеют собственные «прошивки», осуществляющие управление этими устройствами и упрощающие взаимодействие с ними.

Утилиты

Утилиты (англ. utility или tool) — программы, предназначенные для решения узкого круга вспомогательных задач. Иногда утилиты относят к классу сервисного программного обеспечения.

Утилиты используются для мониторинга показателей датчиков и производительности оборудования (например, мониторинга температур процессора или видеоадаптера), управления параметрами оборудования (ограничение максимальной скорости вращения CD-привода; изменение скорости вращения вентиляторов), контроля показателей (проверка ссылочной целостности; правильности записи данных), расширения возможностей (форматирование или переразметка диска с сохранением данных, удаление без возможности восстановления).

Типы утилит

  • Дисковые утилиты
    • Дефрагментаторы
    • Проверка диска — поиск неправильно записанных либо повреждённых различным путём файлов и участков диска и их последующее удаление для эффективного использования дискового пространства.
    • Очистка диска — удаление временных файлов, ненужных файлов, чистка «корзины».
    • Разметка диска — деление диска на логические диски, которые могут иметь различные файловые системы и восприниматься операционной системой как несколько различных дисков.
    • Резервное копирование — создание резервных копий целых дисков и отдельных файлов, а также восстановление из этих копий.
    • Сжатие дисков — сжатие информации на дисках для увеличения вместимости жёстких дисков.
  • Утилиты работы с реестром
  • Утилиты мониторинга оборудования
  • Тесты оборудования

Системы программирования

К этой категории относятся системные программы, предназначенные для разработки программного обеспечения:

  • ассемблеры — компьютерные программы, осуществляющие преобразование программы в форме исходного текста на языке ассемблера в машинные команды в виде объектного кода;
  • трансляторы — программы или технические средства, выполняющее трансляцию программы;
    • компиляторы — Программы, переводящие текст программы на языке высокого уровня, в эквивалентную программу на машинном языке.
    • интерпретаторы — Программы (иногда аппаратные средства), анализирующие команды или операторы программы и тут же выполняющие их;
  • компоновщики (редакторы связей) — программы, которые производят компоновку — принимают на вход один или несколько объектных модулей и собирают по ним исполнимый модуль;
  • препроцессоры исходных текстов — это компьютерные программы, принимающие данные на входе, и выдающие данные, предназначенные для входа другой программы, например, такой, как компилятор;
  • отла́дчики (англ. debugger) — модули среды разработки или отдельные программы, предназначенные для поиска ошибок в программах;
  • текстовые редакторы — компьютерные программы, предназначенные для создания и изменения текстовых файлов, а также их просмотра на экране, вывода на печать, поиска фрагментов текста и т. п.;
  • библиотеки подпрограмм — сборники подпрограмм или объектов, используемых для разработки программного обеспечения;
  • редакторы графического интерфейса.

Системы управления базами данных

Система управления базами данных (СУБД) — специализированная программа (чаще комплекс программ), предназначенная для организации и ведения базы данных.

Так как системы управления базами данных не являются обязательным компонентом вычислительной системы, зачастую их не относят к системному программному обеспечению. Часто СУБД осуществляют лишь служебную функцию при работе других видов программ (веб-серверы, серверы приложений), поэтому их не всегда можно отнести к прикладному программному обеспечению. Поэтому СУБД иногда относят к промежуточному программному обеспечению (Middleware).

Основные функции СУБД

Классификация СУБД по способу доступа к базе данных

  • Файл-серверные, в которых файлы данных располагаются централизованно на файл-сервере, а программная реализация СУБД располагается на каждом клиентском компьютере целиком. Доступ к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Всплеск популярности файл-серверных систем управления базами данных относится к концу 1980-х — началу 1990-х годов.
  • Клиент-серверные СУБД состоят из клиентской части (которая входит в состав прикладной программы) и сервера (см. Клиент-сервер).
  • Встраиваемые — программные библиотеки, которые позволяют унифицированным образом хранить большие объёмы данных на локальной машине.

См. также

Литература