Лекция №1. Введение в системное программное обеспечение
Традиционно, программы, работающие на компьютере, можно разделить на следующие категории:
- прикладные программы, непосредственно обеспечивающие выполнение необходимых пользователям работ - редактирование текстов, рисование картинок, обработка информационных массивов и т. д.;
- системные программы - служат для нормальной работы аппаратных устройств компьютера, сети, управления прикладными программами и других служебных целей.
Некоторые специалисты отдельно выделяют также и
- инструментальные системы (системы программирования), обеспечивающие создание новых программ для компьютера.
Однако последнюю категорию зачастую также относят к классу системных программ.
Прикладные программы предназначены для решения функциональных задач, они выполняют обработку информации различных предметных областей.
Это самый многочисленный класс программных продуктов.
Системное программное обеспечение (СПО) – совокупность служебных программ, предназначенных для выполнения следующих задач:
- общего управления системой на всех этапах вычислительного процесса;
- предоставления унифицированного доступа прикладных программ к ресурсам ВС;
- написания программ как таковых, представления их в виде загружаемых и исполняемых кодов;
- предоставления специализированных сервисов общего назначения;
- обеспечения защиты ВС, конфиденциальности и сохранности пользовательских данных;
- предоставления доступа к внешним ресурсам, в т.ч. других ВС.
Рассмотрение СПО неразрывно связано с понятием вычислительной системы.
Вычислительная система – совокупность аппаратных и программных средств (рис. 1), предназначенная для решения вычислительных задач (выполнения вычислительных процессов).
Аппаратное обеспечение ВС – совокупность физических устройств (электронных компонентов), связанная шинами передачи данных, реализующая вычислительный процесс.
Программное обеспечение ВС – совокупность программ и данных, обеспечивающих организацию вычислительного процесса и управление им.
Рис 1. Компоненты ВС и виды СПО
Любая ВС имеет многоуровневую иерархическую структуру, подобную приведенной на рис. 2, где цветом выделены компоненты, относящиеся к системному программному обеспечению. Системное программное обеспечение реализует связь аппаратного и программного обеспечения, выступая как "межслойный интерфейс" с одной стороны которого аппаратура, а с другой приложения пользователя.
Рис. 2. Иерархия компонентов ВС
Из этой иерархии видно, что системное ПО занимает промежуточное место между аппаратной частью ВС и прикладным ПО, что и определяет функционирование СПО как «посредника» в диалоге пользователя с компьютером. Строго говоря, СПО предоставляет интерфейс к вычислительным ресурсам системы (аппаратным и программным). В числе средств, представляемых этим интерфейсом следующие виды СПО:
- драйверы устройств – библиотеки функций, предоставляющих доступ к возможностям оборудования конкретных типов (например принтеров, сетевых адаптеров и т.п.);
- операционная система (ОС) – управляющая программа (как правил, набор программ), обеспечивающая доступ пользовательских программ к аппаратным ресурсам компьютера;
- загрузчики – программы, выполняющие загрузку исполнимого кода в основную память системы;
- трансляторы – программы, предназначенные для преобразования исходных кодов в исполняемые;
- утилиты – специализированные программы служебного назначения, предназначенные, например, для повышения надежности или производительности системы в целом;
- системные сервисы – программы, выполняющие специализированные функции общего назначения (например, доступ к разделяемым ресурсам).
Наиболее значимым видом системного программного обеспечения являются операционные системы.
Операционная система (ОС) - это комплекс программ, который обеспечивает управление аппаратными средствами компьютера, организует работу с файлами (в том числе запуск и управление выполнением программ), а также реализует взаимодействие с пользователем, то есть интерпретацию вводимых пользователем команд и вывод результатов обработки этих команд.
Операционная система предназначена для управления выполнением пользовательских программ, планирования и управления вычислительными ресурсами ЭВМ.
Операционная система, с одной стороны, выступает как интерфейс между аппаратурой компьютера и пользователем с его задачами, с другой стороны, предназначена для эффективного использования ресурсов вычислительной системы и организации надежных вычислений.
Помимо рассмотренных, можно выделить еще одну группу программ, занимающих промежуточное положение между СПО и прикладным программным обеспечением. Это -специальное программное обеспечение информационных и управляющих систем.
К специальному программному обеспечению информационных и управляющих систем относятся
· программы (системы) управления базами данных;
· программы управления языком интерфейса информационных систем;
· программы сбора и предварительной обработки информации (в информационно-измерительных системах, например, бортовые системы).
ПО этого класса часто оказывается скрытым в составе драйверов оборудования или поставляется в виде библиотек функционального расширения языков программирования.
Поэтому часто такие ПО относят к системному программному обеспечению.
Мы будем считать ПО такого типа отдельным классом и в курсе “СПО” рассматривать не будем.
Что касается непосредственно СПО, то данный класс программных продуктов тесно связан с типом компьютера и является его неотъемлемой частью.
Программные продукты данного класса в основном ориентированы на квалифицированных пользователей - профессионалов в компьютерной области: системного программиста, администратора сети, прикладного программиста, оператора.
Однако знание базовой технологии работы с этим классом программных продуктов требуется и конечным пользователям персонального компьютера, которые самостоятельно не только работают со своими программами, но и выполняют обслуживание компьютера, программ и данных.
К системным программным продуктам предъявляются высокие требования по надежности и технологичности работы, удобству и эффективности использования.
Классификация системного программного обеспечения
В СПО традиционно включают
· системные управляющие и
· системные обрабатывающие программы.
Управляющие системные программы организуют корректное функционирование всех устройств системы.
Основные системные функции управляющих программ -
· управление вычислительными процессами и вычислительными комплексами и
· работа с внутренними данными ОС.
Как правило, они находятся в основной памяти. Это резидентные программы, составляющие ядро ОС. Управляющие программы, которые загружаются в память непосредственно перед выполнением, называю транзитными (transitive).
В настоящее время системные управляющие программы поставляются фирмами-разработчиками и фирмами-дистрибьюторами в виде инсталляционных пакетов операционных систем и драйверов специальных устройств.
Обрабатывающие системные программы выполняются как специальные прикладные задачи, или приложения.
Эти программы поставляются чаще в виде дистрибутивных пакетов, включающих ПО
Замечание. В пакеты системных программ помимо основных программ, допускающих реконфигурацию, входят специальные настроечные программы, называемые программами инсталляции. МЫ будем создавать и такие программы.
Другая классификация
Часто Системное ПО компьютера подразделяют на БАЗОВОЕ и СЕРВИСНОЕ программное обеспечение.
БАЗОВОЕ программное обеспечение (base software) - минимальный набор программных средств, обеспечивающих работу компьютера.
К базовому программному обеспечению компьютера относятся
· · операционные системы и драйверы в составе ОС;
· · интерфейсные оболочки для взаимодействия пользователя с ОС (операционные оболочки) и программные среды;
· · системы управления файлами.
Что такое ОС и для чего она предназначена мы кратко рассмотрели ранее.
Системы управления файлами предназначены для организации более удобного доступа к данным, организованным как файлы.
Вместо низкоуровневого доступа к данным с указанием конкретных физических адресов система управления файлами позволяет использовать логический доступ с указанием имени файла.
Любая система управления файлами не существует сама по себе - она разработана для работы в конкретной ОС и с конкретной файловой системой. То есть можно было бы систему управления файлами отнести к ОС.
Но в связи с тем, что
1) ряд ОС позволяет работать с несколькими файловыми системами (либо с одной из нескольких, либо сразу с несколькими одновременно); а дополнительную файловую систему можно установить (т.е. они самостоятельны)
2) простейшие ОС могут работать и без файловых систем;
системы управления файлами выделяются в отдельную группу системных программ.
Заметим, что часто в специальной литературе системы управления файлами относят все-таки к операционным системам.
СЕРВИСНОЕ программное обеспечение - программы и программные комплексы, которые расширяют возможности базового программного обеспечения и организуют более удобную среду работы пользователя.
Это набор сервисных, дополнительно устанавливаемых программ, которые можно классифицировать по функциональному признаку следующим образом:
· драйверы специфических и специальных устройств (те, которые не поставляются в составе ОС).
· программы диагностики работоспособности компьютера;
· антивирусные программы, обеспечивающие защиту компьютера, обнаружение и восстановление зараженных файлов;
· программы обслуживания дисков, обеспечивающие проверку качества поверхности магнитного диска, контроль сохранности файловой системы на логическом и физической уровнях, сжатие дисков, создание страховых копий дисков, резервирование данных на внешних носителях и др.;
· программы архивирования данных, которые обеспечивают процесс сжатия информации в файлах с целью уменьшения объема памяти для ее хранения;
· программы обслуживания сети.
Эти программы часто называются утилитами. (Заметим, что к антивирусным средствам этот термин обычно не применяется)
Утилиты - программы, служащие для выполнения вспомогательных операций обработки данных или обслуживания компьютеров (диагностики, тестирования аппаратных и программных средств, оптимизации использования дискового пространства, восстановления разрушенной на магнитном диске информации и т.п.).
Наибольшее распространение сегодня имеют комплекты утилит: Norton Utilities - фирма Symantec; Checkit PRO Deliuxe 2.0 - фирма Touch Stone; PC Tools for Windows 2.0; программа резервного копирования HP Colorado Backup for Windows 95.
Отдельно вспомним о такой группе системного ПО как системы программирования.
Это набор специализированных программных продуктов, которые являются инструментальны средствами разработчика. Программные продукты данного класса поддерживают все этапы процесса программирования, отладки и тестирования создаваемых программ.
Система программирования включает следующие программные компоненты:
· редактор текста;
· компоновщик (редактор связей);
· отладчик;
· библиотеки подпрограмм.
Заметим, что любая система программирования может работать только в соответствующей ОС, под которую она и создана, однако при этом она может позволять разрабатывать программное обеспечение и под другие ОС.
Например, одна из популярных систем программирования на языке С/С++ от фирмы Watcom для OS/2 позволяет получать программы и для самой OS/2, и для DOS, и для Windows.
Редактор текста - это программа для ввода и модификации текста.
Трансляторы предназначены для преобразования программ, написанных на языках программирования, в программы на машинном языке. Программа, подготовленная на каком-либо языке программирования, называется исходным модулем. В качестве входной информации трансляторы применяют исходные модули и формируют в результате своей работы объектные модули, являющиеся входной информацией для редактора связей. Объектный модуль содержит текст программы на машинном языке и дополнительную информацию, обеспечивающую настройку модуля по месту его загрузки и объединение этого модуля с другими независимо оттранслированными модулями в единую программу.
Трансляторы делятся на два класса: компиляторы и интерпретаторы. Компиляторы переводят весь исходный модуль на машинный язык. Интерпретатор последовательно переводит на машинный язык и выполнят операторы исходного модуля
(У интерпретаторов два основных недостатка. Первый - низкая скорость работы интерпретируемых программ.)
Преимущество интерпретатора перед компилятором состоит в том, что программа пользователя имеет одно представление - в виде текста. При компиляции одна и та же программа имеет несколько представлений - в виде текста и в виде выполняемого файла.
Компоновщик, или редактор связей - системная обрабатывающая программа, редактирующая и объединяющая объектные (ранее оттраслированные) модули в единые загрузочные, готовые к выполнению программные модули. Загрузочный модуль может быть помещен ОС в основную память и выполнен.
Отладчик позволяет управлять процессом исполнения программы, является инструментом для поиска и исправления ошибок в программе. Базовый набор функций отладчика включает:
· пошаговое выполнение программы (режим трассировки) с отображением результатов,
· остановка в заранее определенных точках,
· возможность остановки в некотором месте программы при выполнении некоторого условия;
· изображение и изменение значений переменных.
Загрузчик -системная обрабатывающая программа, объединяющая основные функции редактора связей и программы выборки в одном пункте задания. Загрузчик помещает находящиеся в его входном наборе данных объектные и загрузочные модули в оперативную память, объединяет их в единую программу, корректирует перемещаемые адресные константы с учетом фактического адреса загрузки и передает управление в точку входа созданной программы.
Средства сетевого доступа обеспечивают обработку, передачу и хранение данных в сети.
Заметим, что чаще говорят о сетевых операционных системах, которые предоставляют пользователям различные виды сетевых служб (управление файлами, электронная почта, процессы управления сетью и др.)
Ключом к использованию этих ресурсов является сервер, специальная программа на компьютере, подключенному к сети, которая принимает запросы (или команды) и посылает ответы автоматически.
Программы, предназначенные для подачи запросов серверу, называются программами-клиентами. Сервер предназначен для их обслуживания. Клиент посылает запросы пользователя на сервер, используя стандартизированный формат, называемый протоколом. Ответ сервера содержит информацию, представленную в виде файла, содержащего данные того или иного формата.
Постоянно ведется разработка все новых программ-клиентов, предлагающих более удобные способы взаимодействия с сервером.
Пример. Приложения Mozilla Fire4fox, Internet Explorer, Google Chrome - программы-
клиенты.
Таким образом, в системном ПО мы выделилипять групп системных программ:
· операционные системы;
· интерфейсные оболочки для взаимодействия пользователя с ОС (операционная оболочка) и программные среды;
· системы управления файлами;
· системы программирования;
· утилиты;
· средства сетевого доступа.