Глава 1. Системное и прикладное программное обеспечение.
§1.1. Общая классификация ПО.
Программное обеспечение (ПО) принято подразделять на системное и прикладное.
К системному ПО относят программные средства, осуществляющие управление ресурсами в вычислительной системе (ВС) и обеспечивающие работу прикладных программ. Системное ПО подразделяется на следующие подклассы:
– операционные системы,
– драйверы,
– системные утилиты,
– системные оболочки, файловые процессоры,
– средства разработки.
Операционная система (ОС) может быть определена как программный комплекс, осуществляющий общее управление ресурсами ВС и обеспечивающий запуск и выполнение приложений. В качестве примеров ОС можно привести UNIX, DOS, Windows, а также различны специализированные ОС.
Драйвер – программное средство, обеспечивающее единообразный интерфейс к устройствам. Данный интерфейс, как правило, предоставляется не пользовательской программе, а самой операционной системе, которая через этот интерфейс управляет устройством.
Системные утилиты – программные продукты, оптимизирующие работу ВС. Среди программ данного класса можно выделить утилиты для обеспечения безопасности (антивирусы, файерволы), дисковые (дефрагментаторы, утилиты восстановления файловой системы, менеджеры дисковых образов), сетевые (сканеры сети, трассировщики маршрута).
Системные оболочки – программные продукты, дополняющие (или заменяющие) пользовательский интерфейс ОС. Примерами таких оболочек являются Windows 3.11, а также оконные менеджеры в Linux (Gnome, KDE). К системным оболочкам могут быть отнесены файловые процессоры – программы, предоставляющие пользователю интерфейс для манипулирования файлами (проводник, FAR, mc).
Средства разработки обеспечивают создания новых приложений и включают компиляторы, компоновщики, интегрированные среды.
Прикладное ПО решает задачи пользователя. Данную категорию можно разделить на общеупотребительное (например, мультимедийные и офисные программы) и специализированное (в частности, профессиональное) ПО.
§1.2. Принципы построения ОС.
1.2.1. Основные типы операционных систем, общая структура.
Операционные системы могут быть классифицированы по разным признакам. К основным критериям классификации относятся назначение и архитектура.
По назначению ОС можно разделить на универсальные (Windows, Linux) и специализированные. Из специализированных можно выделить ОС реального времени, системы для мобильных платформ.
По архитектуре ОС делятся на моноядерные и микроядерные.
Ядром называется основная часть ОС, которая работает в привилегированном режиме процессора и управляет всеми подсистемами.
В моноядерных архитектурах (Windows, Linux) ядро включает в себя все основные подсистемы, в том числе драйверы внешних устройств. При этом все подсистемы работают в общем контексте, то есть имеют возможность прямого доступа друг к другу. Это позволяет избежать накладных расходов на взаимодействие подсистем, но потенциально снижает безопасность ОС, поскольку любой драйвер, работая в режиме ядра, имеет полный контроль над ВС. Для моноядерных архитектур ядро обычно компилируется (собирается) как единый модуль, за исключением драйверов, которые компилируются независимо и подключаются к ядру уже после загрузки.
В микроядерных архитектурах ядро включает лишь минимум подсистем, необходимый для управления процессами, обычно это подсистема управления памятью, подсистема переключения контекстов (часто и планировщик задач) и подсистема межпроцессного взаимодействия (IPC — interprocess communication). Остальные подсистемы, а также драйверы реализуются как обычные приложения, работающие в пользовательском режиме и не имеющие прямого доступа к данным (контексту) ядра и других подсистем.
1.2.2. Программный интерфейс ОС.
Основная задача ОС — обеспечение работы приложений, в том числе выполнение их запросов на доступ к ресурсам. Это требует наличия средств взаимодействия ОС и приложений. Совокупность правил взаимодействия ОС с приложениями называется программным интерфейсом ОС.
Программный интерфейс (API – application programming interface) может рассматриваться как описание функций для обращения к ОС (системных вызовов). Примерами таких интерфейсов являются POSIX или Win API. Для программиста такой интерфейс представлен библиотеками функций.
Если разные ОС поддерживают один и тот же программный интерфейс, то они являются совместимыми на уровне исходных кодов, т.е. программа, написанная для одной системы, может быть без изменений скомпилирована и запущена под другой.
Кроме того, существует понятие так называемого бинарного интерфейса, описывающего формат системных вызовов на низком уровне (инструкций процессора). Если системы совместимы на уровне бинарного интерфейса, то программа может быть перенесена с одной из них на другую без перекомпиляции.
К бинарному интерфейсу может быть отнесена и структура исполняемого файла.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.