11. Диспетчер объектов
Диспетчером объектов (Object Manager) называется одноименное пристыковываемое окно, содержащее в себе структурированные списки объектов и слоев, входящих в иерархию изображения текущей страницы документа CorelDRAW. С его помощью можно выполнять операции со слоями и объектами. Чтобы диспетчер объектов появился в рабочем пространстве, выберите команду Window > Dockers > Object Manager (Окно > Пристыковываемые окна > Диспетчер объектов). Окно диспетчера объектов, после его перетаскивания в середину окна документа, представлено на рис. 9.16.
Рис. 9.16. Рисунок, состоящий из трех объектов, и соответствующее ему окно диспетчера объектов
В верхней части пристыковываемого окна располагаются имя активного слоя (того слоя, на котором будут размещаться вновь создаваемые объекты) и кнопки инструментов диспетчера объектов.
Кнопка New Layer (Создать слой) добавляет в документ еще один слой, которому назначается имя Layer n (где п на единицу больше номера последнего из ранее созданных слоев). Слой помещается выше всех ранее созданных слоев, но ниже главных слоев Desktop (Монтажный стол) и Guides (Направляющие).
Пользователю предоставляется возможность сразу же переименовать вновь созданный слой, дав ему более содержательное обозначение, — текстовый курсор устанавливается на его имя. Рекомендуется не пренебрегать этой возможностью. По завершении правки имени нажмите клавишу Enter.
Кнопка Show Object Properties (Показать свойства объектов) переключает режим показа свойств объекта в окне диспетчера объектов — на рис. 9.16 этот режим включен, и справа от имени каждого объекта приведены сведения о его заливке и контурной линии. Обратите внимание, что цвета заливки и контура воспроизводятся на значке объекта, расположенном слева от его имени, вне зависимости от этого режима.
Кнопка Edit Across Layers (Доступны все слои) включает и выключает режим, позволяющий выделять объекты любого слоя, доступного для редактирования (см. ниже). Если этот включенный по умолчанию режим выключить, то выделить можно будет только объекты, принадлежащие активному слою и слоям, выделенным совместно с ним в окне диспетчера объектов.
Кнопка Layer Manager View (Вид диспетчера слоев) позволяет убрать из окна диспетчера объектов сведения о страницах и объектах, оставив в нем только записи, соответствующие слоям.
Эффективно управлять количеством строк, отображаемых в окне диспетчера объектов, можно также с помощью значков в виде квадратиков со знаками «плюс» и «минус». Щелчок на квадратике со знаком «минус» удаляет из окна сведения обо всех лежащих ниже него объектах иерархии страницы (слоях и объектах). При этом знак в квадратике сменяется на «плюс», и повторный щелчок возвратит все ранее скрытые строки в окно диспетчера.
Диспетчер объектов
Как уже говорилось для обеспечения последовательного и безопасного доступа к различным внутренним службам, реализованным в исполняющей системе, в Windows реализуется объектная модель. Дальше будет рассматриваться диспетчер объектов Windows, компонент исполняющей системы, отвечающий за создание, удаление, защиту и отслеживание объектов.
Диспетчер объектов централизует операции управления, которые в противном случае были бы разбросаны по всей операционной системе. Он был разработан для достижения целей, перечисленных далее.
Исследование диспетчера объектов.
В данном разделе будут представлены эксперименты, показывающие способы изучения базы данных диспетчера объектов. В этих экспериментах используются следующие средства, с которыми вы познакомитесь, если они вам еще не известны:
Средство WinObj предоставляет способ проникновения в пространство имен, поддерживаемое диспетчером объектов. (Чуть позже будет объяснено, что имена имеются не у всех объектов.) Запустите WinObj и изучите показанную ниже схему.
Как уже упоминалось, Windows-команда Openfiles/query требует установки глобального флага Windows, который называется флагом обслуживания списка объектов — maintain objects list.
Если набрать команду Openfiles/Local, можно получить информацию о том, установлен этот флаг или нет. Этот флаг можно установить с помощью команды Openfiles/Local ON. В любом случае, чтобы установка возымела эффект, нужно перезапустить систему. Process Explorer, Handle и Монитор ресурсов (Resource Monitor) не требуют включения отслеживания объектов, поскольку они запрашивают все системные дескрипторы и создает список объектов, принадлежащих каждому объекту.
Диспетчер объектов был разработан для достижения следующих целей:
Согласно своему внутреннему устройству у Windows есть три типа объектов: объекты исполняющей системы, объекты ядра и объекты GDI/User. Объекты исполняющей системы представлены объектами, реализованными различными компонентами исполняющей системы (такими как диспетчер процессов, диспетчер памяти, подсистема ввода-вывода и т. д.). Объекты ядра представлены более простым набором, реализованным ядром Windows.
Эти объекты не видимы коду пользовательского режима, создаются и используются только внутри исполняющей системы. Объекты ядра обеспечивают такие основные возможности, как синхронизация, на которых построены объекты исполняющей системы. Таким образом, как показано на рисунке, многие объекты исполняющей системы содержат (инкапсулируют) один или несколько объектов ядра.
Объекты исполняющей системы, содержащие объекты ядра.
ПРИМЕЧАНИЕ. С другой стороны, объекты GDI/User принадлежат подсистеме Windows (Win32k.sys) и не взаимодействуют с ядром. Получить дополнительную информацию о них можно из Windows SDK.
Подробности структуры объектов ядра и того, как они используются для реализации синхронизации, будут рассмотрены чуть позже. Вся оставшаяся часть этого раздела будет сфокусирована на том, как работает диспетчер объектов, и на структуре объектов исполняющей системы, дескрипторах и таблицах дескрипторов, в ней также будет дано краткое описание использования объектов в реализации в Windows проверки безопасности доступа.
Структура ОС Windows XP
Windows XP имеет модульную структуру (рис. 2.20), в которой код операционной системы и драйверы выполняются в привилегированном режиме процессора (режиме ядра), обеспечивающем полный доступ ко всей аппаратной части компьютера, а пользовательские приложения выполняются в непривилегированном режиме процессора – пользовательском режиме без прямого доступа к оборудованию компьютера. В режиме ядра работают следующие компоненты.
1. Уровень абстрагирования от оборудования (Hardware Abstraction Layer, HAL). Его задачей является отделение операционной системы от особенностей конкретных реализаций в аппаратном обеспечении компьютера, т. е. от различий в материнских платах, в модификациях процессоров, в наборах микросхем и др. Благодаря этому уровню управление подсистемами прерываний, прямого доступа к памяти, системными шинами и таймерами для ядра операционной системы является одинаковым. Уровень HAL реализован в системном файле Hal.dll.
![]() |
Рис. 2.20. Упрощенная структура Windows XP
2. Ядро операционной системы. Ядро содержит наиболее часто вызываемые низкоуровневые функции операционной системы: планирование и распределение ресурсов между процессами, их переключение и синхронизацию. В обязанности ядра входит также управление прерываниями и обработка ошибочных ситуаций при функционировании операционной системы. Код ядра Windows XP не разделяется на потоки, а находится только в оперативной памяти и не может быть выгружен на диск. Код ядра Windows XP находится в системном файле Ntoskrnl. exe.
3. Драйверы устройств. Драйверы представляют собой подпрограммы, транслирующие вызовы, поступившие от пользовательских программ в запросы обработки данных для конкретных устройств. Значительное число драйверов входит в состав Windows XP (они располагаются в подкаталоге Isystem32l drivers системного каталога и имеют тип файла *.sys, например, драйвер дисковой подсистемы находится в файле disk.sys), а для нестандартных периферийных устройств драйверы находятся в комплектах поставки.
4. Исполняющая подсистема (NT Executive). Модуль NT Executive состоит из микроядра и подсистем диспетчеризации управления программами с доступом к виртуальной памяти, окнам и графической подсистеме. Виртуальная память предоставляет пользовательским программам виртуальные адреса адресного пространства процессов и соответствующие физические страницы оперативной памяти компьютера. Графическая подсистема предназначена для создания оконного интерфейса, рисования элементов управления, расположенных в окнах. К исполняющей подсистеме относятся системные файлы Ntkrnlpa.exe, Kernel32.dll, Advapi32.dll, User32.dll, Gdi32.dll.
Операционная система Windows XP в значительной мере использует возможности процессоров, совместимых с семейством Intel x86. В их аппаратной архитектуре предусматривается четыре уровня привилегий выполнения кода программ от 0-го наивысшего привилегированного до 4-го пользовательского режима с ограниченным набором команд процессора. Программы режима ядра операционной системы Windows XP функционируют в нулевом, защищенном и привилегированном режиме, а остальные пользовательские программы работают в менее привилегированных режимах, находясь под контролем программ режима ядра.
Недоступные в пользовательском режиме операции и приложения обращаются к системным вызовам ядра операционной системыWin32 API. В состав API входит более 250 функций, обращение к которым осуществляется при помощи системных вызовов, основанных на подпрограммах ядра операционной системы. Все вызовы Win32 API обслуживаются как системными службами NT, так и модулем NT Executive – исполняющей системы Windows XP. Модуль NT Executive представляет собой несколько программных потоков, которые выполняются в режиме ядра. Код практически всех подсистем этого модуля находится в файле ntoskrnl.exe (кроме подсистемы Win32, код которой расположен в файле win32k.sys) и уровне абстрагирования от оборудования HAL, который содержится в файле hal.dll. В модулеNT Executive сосредоточены все самые важные части операционной системы.
Микроядро отвечает за выделение памяти для приложений и распределение процессорного времени, т. е. за реализацию многозадачности. Для этого в состав микроядра входит планировщик потоков (threads scheduler), который назначает каждому из потоков один из 32 уровней приоритета. Уровень 0 зарезервирован для системы. Уровни от 1-го до 15-го назначаются исполняемым программам, а уровни от 16-го до 31-го могут назначаться только администраторами. Планировщик делит все процессорное время на кванты фиксированного размера. При этом каждый программный поток выполняется только в течение отведенного ему времени, и если по окончании кванта он не освобождает процессор, планировщик в принудительном порядке приостанавливает этот поток и меняет программное окружение процесса, настраивая его на выполнение другого потока, обладающего тем же приоритетом. Микроядро также осуществляет всю работу, связанную с обработкой программных и аппаратных прерываний.
5. Диспетчеризация управления программами. Модуль состоит из следующего набора системных программ:
· Диспетчер ввода-вывода – интегрирует добавляемые в систему драйверы устройств в операционную систему Windows XP;
· Диспетчер объектов – служит для управления всеми разделяемыми ресурсами компьютера. В момент обращения приложения к какому-либо ресурсу диспетчер объектов сопоставляет с этим ресурсом объект (например, окно) и отдает приложению дескриптор [1] (№ окна) этого объекта. Используя дескриптор, приложение
взаимодействует с объектом, совершая в его отношении различные операции. Монитор системы безопасности следит при этом за тем, чтобы с объектом выполнялись только разрешенные действия;
· Диспетчер процессов – предоставляет интерфейс, при помощи которого другие компоненты Windows NT Executive, а также приложения пользовательского режима могут манипулировать процессами и потоками. Во время работы диспетчер процессов сопоставляет с каждым процессом и потоком идентификатор процесса (PID – Process Identifier) и идентификатор потока (TID – Thret Identifier) соответственно, а также таблицу адресов и таблицу дескрипторов;
· Диспетчер виртуальной памяти – служит для управления организации подсистемы памяти, позволяет создавать таблицы адресов для процессов и следит за корректностью использования адресного пространства приложениями. Кроме того, обеспечивает возможность загрузки в оперативную память исполняемых файлов и файлов динамических библиотек. Диспетчер виртуальной памяти представляет физическую память для пользовательских приложений – каждому процессу выделяются 4 Гб виртуального адресного пространства, из которых младшие 2 Гб используются процессом, а старшие 2 Гб (общие для всех процессов) отводятся на нужды системы. Каждый процесс работает в своем изолированном адресном пространстве и «не знает» о других процессах. Процессы обмениваются данными через разделяемую память, которая может быть спроецирована на виртуальное адресное пространство нескольких процессов. Главная задача диспетчера виртуальной памяти – организация логической памяти, размер которой больше размера физической, установленной на компьютере. Это достигается благодаря тому, что страницы памяти, к которым долго не было обращений, и которые не имеют атрибута неперемещаемых, сохраняются диспетчером в файле pagefile.sys на жестком диске и удаляются из оперативной памяти, освобождая ее для других приложений. В момент, когда происходит обращение к данным, находящимся в перемещенной на винчестер странице, диспетчер виртуальной памяти копирует страницу обратно в оперативную память, затем обеспечивает доступ к ней. Этот механизм обеспечивает выделение дополнительной памяти программам, которые нуждаются в ней, и при этом следит за тем, чтобы все работающие в системе программы обладали достаточным объемом физической памяти для того, чтобы продолжать функционирование;
· Диспетчер кэша – используется для кэшированного чтения и записи и позволяет существенно ускорить работу жестких дисков и других устройств. При этом наиболее востребованные файлы дублируются диспетчером кэша в оперативной памяти компьютера, и обращение к ним обслуживается с использованием этой копии, а не оригинала, расположенного на сравнительно медленном долговременном носителе. Кэш в Windows XP является единым для всех логических дисков, вне зависимости от используемой файловой системы. Кроме того, он является динамическим, а это значит, что диспетчер управляет его размерами в зависимости от доступного объема свободной физической памяти в каждый конкретный момент;
· Диспетчеры окон и графики – выполняют все функции, связанные с пересылкой системных сообщений и отображением информации на экране.
Процесс функционирования Windows XP условно подразделяется на три фазы: процесс начальной нагрузки, штатный режим работы и завершение работы. Для загрузки Windows XP используется следующий минимальный набор файлов:
– файлы, располагающиеся в корневом каталоге загрузочного диска: Ntldr, Boot.ini, Bootsect.dos (файл необходим только при использовании мультизагрузки), Ntdetect.com;
– файлы, располагающиеся в системном подкаталоге /system32: Ntoskrnl.exe, Hal.dll, разделы реестра SYSTEM;
– файлы, располагающиеся в системном подкаталоге /system32/drivers: (необходимые драйверы устройств).
Процесс загрузки компьютера начинается с процедуры начального тестирования оборудования (POST – Power-On Self Test). Код, выполняющий POST, зашит в базовой системе ввода-вывода (BIOS) каждого компьютера, при включении питания ему передается управление. Если в процессе тестирования обнаруживаются какие-либо ошибки, то BIOS генерирует коды ошибок (POSTcodes), которые отличаются для BIOS разных производителей, и звуковые коды. Если процедура POST завершается успешно, то BIOS передает управление главной загрузочной записи (MBR – Master Boot Record) и первая «аппаратная» стадия загрузки компьютера, когда процесс зависит только от аппаратуры компьютера, завершается.
Далее загрузочная запись, оперируя данными о разбиении жесткого диска на логические тома, передает управление исполняемому коду, загрузчику Ntldr, расположенному в загрузочном секторе.Загрузчик переходит в защищенный режим и производит необходимые для успешного функционирования манипуляции с памятью, кроме этого, Ntldr имеет модули, позволяющие работать с файловой системой и некоторыми другими базовыми ресурсами системы. Все другие действия выполняются с помощью вызова прерываний BIOS.
Если в файле boot.ini зарегистрировано более одной операционной системы, то после первичной инициализации загрузчик предоставляет пользователю возможность выбора путем вывода Ntldr приглашения о выборе операционной системы. Если выбрана операционная система Windows XP, загрузчик запускает файл Ntdetect. сот. Этот компонент считывает из CMOS-памяти системную дату и время, после чего производит поиск и распознавание аппаратных средств, подключенных в данный момент к компьютеру. Завершив работу,Ntdetect возвращает управление и собранную им информацию обратно в Ntldr. Далее загружается и инициализируется ядро операционной системы Ntoskrnl.exe и уровень абстрагирования от оборудования Hal.dll. При инициализации ядро производит ряд действий в определенной последовательности:
– инициализация диспетчера памяти;
– инициализация диспетчера объектов;
– установка системы безопасности;
– настройка драйвера файловой системы;
– загрузка и инициализация диспетчера ввода-вывода;
– загрузка системных сервисов, которые реализуют взаимодействие с пользователем.
В состав системных сервисов входят следующие модули:
– Smss.exe (диспетчер сеансов) – модуль управляет другими сервисами и службами Windows; запускает: Win32 (Csrss) и некоторые системные утилиты, выполняемые на этапе загрузки; реализует графический пользовательский интерфейс и запуск процессов Csrss.exe иWinLogon.exe;
– Csrss.exe – модуль предназначен для организации взаимодействия между компьютером и пользователем;
– Lsass.exe – служба, запускаемая WinLogon.exe и отвечающая за безопасность системы (предоставляет возможность пользователю зарегистрироваться в системе).
После загрузки операционной системы пользователь должен пройти процедуру аутентификации – ввести собственное регистрационное имя (логин) и пароль. Процедура подключения к системе позволяет определить, обладает ли пользователь правом входа и работы с системой. Эту процедуру выполняет служба WinLogon. При этом в системе происходят следующие события:
– процесс WinLogon отображает на экране фон рабочего стола и приглашение к вводу пользователем логина и пароля. Введенные данные передаются подсистеме безопасности;
– подсистема безопасности обращается к базе данных SAM (Security Accounts Manager) и проверяет, обладает ли пользователь полномочиями работы с системой.
Если пользователь является авторизированным пользователем системы, то подсистема безопасности формирует для негоидентификатор доступа, который вместе с управлением передает обратно процессу WinLogon. Процесс WinLogon посредством обращения к подсистеме Win32 создает новый процесс для пользователя и прикрепляет ему идентификатор доступа. Каждый процесс, в дальнейшем создаваемый пользователем, отмечается принадлежащим ему идентификатором доступа, поэтому доступ пользователя к ресурсам системы контролируется и отслеживается. Благодаря обязательной процедуре подключения к системе упрощается реализация механизмов: аудит системы и квоты на использование ресурсов. Пользовательский идентификатор доступа содержит идентификатор пользователя, а также идентификаторы всех групп, к которым принадлежит данный пользователь.
Если операционная система не загружается корректно, то при нажатии в процессе загрузки Windows XP клавиши F8 происходит переход в расширенное меню запуска, содержащее пункты:
– Безопасный режим – загрузка Windows XP с минимальным требуемым количеством системных файлов и драйверов устройств;
– Безопасный режим с загрузкой сетевых драйверов –загрузка Windows XP с минимальным требуемым количеством системных файлов и драйверов устройств с поддержкой подключения к сети;
– Безопасный режим с поддержкой командной строки – загрузка Windows XP с минимальным требуемым количеством системных файлов и драйверов устройств с загрузкой режима командной строки;
– Включить протоколирование загрузки – режим позволяет записать этапы загрузки Windows XP в файл Ntbtlog. txt;
– Включить режим VGA – режим, загружает драйвер стандартного монитора VGA с разрешением 640 на 480 точек на дюйм и 16 цветами;
– Загрузка последней удачной конфигурации – режим, восстанавливает последнюю неиспорченную копию реестра Windows XP.
Практическая часть:
1. Установить Windows XP на виртуальную машину с образа, полученного от преподавателя. (название виртуальной машины должна иметь формат Windows XP Иванов Иван)
2. Изучить теорию по структуре ОС.
Контрольные вопросы к защите:
1. Каковы минимальные требования к аппаратной платформе, которые рекомендует Microsoft для установки Windows XP?
2. В чем преимущества файловой системы NTFS?
3. На какие фазы условно можно разделить работу ОС Windows?
4. Какие цели достигаются на уровне абстрагирования?
5. Что такое ядро системы?
6. Что такое драйвера устройств?
7. Что такое исполняющая система?
8. Что такое диспетчер ввода-вывода?
9. Что такое диспетчер объектов?
10. Что такое диспетчер процессов?
11. Что такое диспетчер кэша?
12. Опишите ряд действий выполняемых ядром при инициализации?
Архитектура Windows
Общая схема архитектуры
Windows представляет собой операционную систему с гибридным ядром (см. лекцию 1 «Введение в операционные системы»). В ней основные системные функции по управлению процессами, памятью, устройствами, файловой системой и безопасностью реализованы в компонентах, работающих в режиме ядра; но существует ряд важных системных компонентов пользовательского режима, например системные процессы входа в систему, локальной аутентификации, диспетчера сеансов, а также подсистемы окружения.
Архитектура Windows представлена на рис.4.1 [5; 2].
Компоненты пользовательского режима
В пользовательском режиме работают следующие виды процессов:
Все перечисленные процессы пользовательского режима (кроме подсистемы POSIX 1 Подсистема POSIX использует библиотеку Psxdll.dll. ) для взаимодействия с модулями режима ядра используют библиотеки Windows DLL ( Dynamic Link Library – динамически подключаемая библиотека). Каждая DLL экспортирует набор Windows API функций, которые может вызывать процесс.
Основные Windows DLL следующие:
Библиотека Ntdll. dll экспортирует в большинстве своем недокументированные системные функции, реализованные, в основном, в Ntoskrnl.exe. Набор таких функций называется Native API («родной» API ).
Библиотеки Windows DLL преобразуют вызовы документированных WinAPI функций в вызовы функций Native API и переключают процессор на режим ядра.
Компоненты режима ядра
Исполнительная система и ядро содержатся в Ntoskrnl.exe (NT Operating System Kernel – ядро операционной системы NT) (по поводу использования термина » ядро » в Windows см. лекцию 1 «Введение в операционные системы»).
Исполнительная система ( Executive ) представляет собой совокупность компонентов (называемых диспетчерами – manager ), которые реализуют основные задачи операционной системы:
Ядро ( Kernel ) содержит функции, обеспечивающие поддержку компонентам исполнительной системы и осуществляющие планирование потоков (см. лекцию 7 «Планирование потоков»), механизмы синхронизации, обработку прерываний.
Взаимодействие диспетчера ввода вывода с устройствами обеспечивают драйверы (drivers) – программные модули, работающие в режиме ядра, обладающие максимально полной информацией о конкретном устройстве (драйверы подробнее рассматриваются в лекции 10 «Управление устройствами»).
Резюме
В лекции представлена архитектура операционной системы Windows и описаны основные компоненты пользовательского режима и режима ядра.







