Архитектура операционной системы Windows
Характеристика режима ядра и пользовательского порядка. Изучение внутреннего устройства Windows. Анализ модели операционной системы. Различия между клиентскими и серверными версиями. Уровень абстрагирования от оборудования. Суть драйверов устройств.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 12.01.2016 |
Размер файла | 70,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
10. Ntdll.dll
Ntdll.dll -- специальная библиотека системной поддержки, нужная в основном при использовании DLL подсистем. Она содержит функции двух типов:
• интерфейсы диспетчера системных сервисов (system service dispatch stubs) к сервисам исполнительной системы Windows;
• внутренние функции поддержки, используемые подсистемами DLL, подсистем и другими компонентами ОС.
Первая группа функций предоставляет интерфейс к сервисам исполнительной системы Windows, которые можно вызывать из пользовательского режима. Таких функций более 200, например NtCreateFile, NtSetEvent и т. д. Как уже говорилось, большинство из них доступно через Windows API (однако некоторые из них предназначены только для применения внутри самой ОС).
Для каждой из этих функций в Ntdll существует точка входа с тем же именем. Код внутри функции содержит специфичную для конкретной аппаратной архитектуры команду перехода в режим ядра для вызова диспетчера системных сервисов, который после проверки некоторых параметров вызывает уже настоящий сервис режима ядра из Ntoskrnl.exe.
Исполнительная система
Исполнительная система (executive) находится на верхнем уровне Ntoskrnl.exe (ядро располагается на более низком уровне). В ее состав входят функции следующего типа:
• Экспортируемые функции, доступные для вызова из пользовательского режима. Эти функции называются системными сервисами и экспортируются через Ntdll. Большинство сервисов доступно через Windows API или API других подсистем окружения. Однако некоторые из них недоступны через документированные функции (примером могут служить LPC, функции запросов вроде NtQuerylnformationProcess, специализированные функции типа NtCreatePagingFile и т.д.).
• Функции драйверов устройств, вызываемые через функцию DeviceloControl. Последняя является универсальным интерфейсом от пользовательского режима к режиму ядра для вызова функций в драйверах устройств, не связанных с чтением или записью.
• Экспортируемые функции, доступные для вызова только из режима ядра и документированные в Windows DDK или Windows Installable File System (IFS) Kit (см. www.microsoft.com/whdc/ddk/ifskit.default.mspx).
• Экспортируемые функции, доступные для вызова только из режима ядра, но не описанные в Windows DDK или IFS Kit (например, функции, которые используются видеодрайвером, работающим на этапе загрузки, и чьи имена начинаются с Inbv).
• Функции, определенные как глобальные, но не экспортируемые символы. Включают внутренние функции поддержки, вызываемые в Ntoskrnl; их имена начинаются с lop (функции поддержки диспетчера ввода-вывода) или с Mi (функции поддержки управления памятью).
• Внутренние функции в каком-либо модуле, не определенные как глобальные символы.
Исполнительная система состоит из следующих основных компонентов.
• Диспетчер конфигурации, отвечающий за реализацию и управление системным реестром.
• Диспетчер процессов и потоков, создающий и завершающий процессы и потоки. Низкоуровневая поддержка процессов и потоков реализована в ядре Windows, а исполнительная система дополняет эти низкоуровневые объекты своей семантикой и функциями.
• Монитор состояния защиты, реализующий политики безопасности на локальном компьютере. Он охраняет ресурсы ОС, осуществляя аудит и контролируя доступ к объектам в период выполнения.
• Диспетчер ввода-вывода, реализующий аппаратно-независимый ввод-вывод и отвечающий за пересылку ввода-вывода нужным драйверам устройств для дальнейшей обработки.
• Диспетчер Plug and Play, определяющий, какие драйверы нужны для поддержки конкретного устройства, и загружающий их. Требования каждого устройства в аппаратных ресурсах определяются в процессе перечисления. В зависимости от требований каждого устройства диспетчер РnР распределяет такие ресурсы, как порты ввода-вывода, IRQ, каналы DMA и области памяти. Он также отвечает за посылку соответствующих уведомлений об изменениях в аппаратном обеспечении системы (при добавлении или удалении устройств).
• Диспетчер электропитания, который координирует события, связанные с электропитанием, и генерирует уведомления системы управления электропитанием, посылаемые драйверам. Когда система не занята, диспетчер можно настроить на остановку CPU для снижения энергопотребления. Изменение энергопотребления отдельных устройств возлагается на их драйверы, но координируется диспетчером электропитания.
• Подпрограммы WDM Windows Management Instrumentation, позволяющие драйверам публиковать информацию о своих рабочих характеристиках и конфигурации, а также получать команды от службы WMI пользовательского режима. Потребители информации WMI могут находиться как на локальной машине, так и на любом компьютере в сети.
• Диспетчер кэша, повышающий производительность файлового ввода-вывода за счет сохранения в основной памяти дисковых данных, к которым недавно было обращение (это также уменьшает число обращений к диску для записи, поскольку модифицированные данные предварительно накапливаются в памяти в течение определенного периода). Как видите, диспетчер кэша выполняет эту задачу, используя поддержку проецируемых файлов со стороны диспетчера памяти.
• Диспетчер памяти, реализующий виртуальную память -- схему управления памятью, позволяющую выделять каждому процессу большое закрытое адресное пространство, объем которого может превышать доступную физическую память. Диспетчер памяти также обеспечивает низкоуровневую поддержку диспетчера кэша.
• Средство логической предвыборки, ускоряющее запуск системы и процессов за счет оптимизации загрузки данных, к которым происходит обращение при запуске системы или процессов.
Кроме того, в состав исполнительной системы входят четыре основные группы функций поддержки, используемые вышеперечисленными компонентами. Примерно треть из них описана в DDK, поскольку драйверы тоже используют их.
• Диспетчер объектов -- создает, управляет и удаляет объекты и абстрактные типы данных исполнительной системы, используемые для представления таких ресурсов операционной системы, как процессы, потоки и различные синхронизирующие объекты.
• Механизм LPC -- передает сообщения между клиентским и серверным процессами на одном компьютере. LPC является гибкой, оптимизированной версией RPC (remote procedure call), стандартного механизма взаимодействия между клиентскими и серверными процессами через сеть.
• Большой набор стандартных библиотечных функций для обработки строк, арифметических операций, преобразования типов данных и обработки структур безопасности.
• Подпрограммы поддержки исполнительной системы, например, для выделения системной памяти (пулов подкачиваемых и не подкачиваемых страниц), доступа к памяти со взаимоблокировкой, а также два специальных типа синхронизирующих объектов - ресурс (resource) и быстродействующий мьютекс (fast mutex).
Ядро
Ядро состоит из набора функций в Ntoskrnl.exe, предоставляющих фундаментальные механизмы, которые используются компонентами исполнительной системы и низкоуровневыми аппаратно-зависимыми средствами поддержки (диспетчеризации прерываний и исключений), различными в каждой архитектуре CPU. Код ядра написан в основном на С, а ассемблер использовали лишь для решения специфических задач, трудно реализуемых на С.
Как и функции поддержки исполнительной системы, часть функций ядра описана в DDK, поскольку они необходимы для реализации драйверов устройств.
Объекты ядра
Ядро состоит из низкоуровневых, четко определенных и хорошо предсказуемых примитивов и механизмов ОС, позволяющих компонентам исполнительной системы более высокого уровня выполнять свои функции. Ядро отделено от остальной части исполнительной системы; оно реализует системные механизмы и не участвует в принятии решений, связанных с системной политикой.
Вне ядра исполнительная система представляет потоки и другие разделяемые ресурсы в виде объектов. Управление этими объектами требует определенных издержек, так как нужны описатели, позволяющие манипулировать объектами, средства защиты и квоты ресурсов, резервируемых при их создании. В ядре можно избежать таких издержек, поскольку оно реализует набор более простых объектов, называемых объектами ядра (kernel objects). Эти объекты позволяют ядру контролировать обработку данных CPU и поддерживают объекты исполнительной системы.
Одна из групп объектов ядра, называемых управляющими (control objects), определяет семантику управления различными функциями ОС. В эту группу входят объекты АРС, DPC (deferred procedure call) и несколько объектов, используемых диспетчером ввода-вывода (например, объект прерывания).
Другая группа объектов - объекты диспетчера (dispatcher objects) реализует средства синхронизации, позволяющие изменять планирование потоков. В группу таких объектов входят:
• поток ядра (kernel thread),
• мьютекс (mutex),
• событие (event),
• семафор (semaphore),
• таймер (timer), ожидаемый таймер (waitable timer) ? и некоторые другие.
С помощью функций ядра исполнительная система создает объекты ядра, манипулирует ими и конструирует более сложные объекты, предоставляемые в пользовательском режиме.
Поддержка оборудования
Другая важная задача ядра -- абстрагирование или изоляция исполнительной системы и драйверов устройств от различий между аппаратными архитектурами, поддерживаемыми Windows (т.е. различий в обработке прерываний, диспетчеризации исключений и синхронизации между несколькими CPU).
Архитектура ядра нацелена на максимальное обобщение кода -- даже в случае аппаратно-зависимых функций. Ядро поддерживает набор семантически идентичных и переносимых между архитектурами интерфейсов. Большая часть кода, реализующего переносимые интерфейсы, также идентична для разных архитектур.
Но одна часть этих интерфейсов по-разному реализуется на разных архитектурах, а другая включает код, специфичный для конкретной архитектуры. Архитектурнонезависимые интерфейсы могут быть вызваны на любой машине, причем семантика интерфейса будет одинаковой -- независимо от специфического кода для той или иной архитектуры. Некоторые интерфейсы ядра на самом деле реализуются в HAL, поскольку их реализация может отличаться даже в пределах семейства CPU с одинаковой архитектурой.
В ядре также содержится небольшая порция кода с х8б-специфичными интерфейсами, необходимыми для поддержки старых программ MS-DOS. Эти интерфейсы не являются переносимыми в том смысле, что их нельзя вызывать на машине с другой архитектурой, где они попросту отсутствуют. Этот х8б-специфичный код, например, поддерживает манипуляции с GDT (global descriptor tables) и LDT (local descriptor tables) -- аппаратными средствами х8б.
Уровень абстрагирования от оборудования
Как отмечалось, одной из важнейших особенностей архитектуры Windows является переносимость между различными аппаратными платформами. Ключевой компонент, обеспечивающий такую переносимость, -- уровень абстрагирования от оборудования (hardware abstraction layer, HAL). HAL -- это загружаемый модуль режима ядра (Hal.dll), предоставляющий низкоуровневый интерфейс с аппаратной платформой, на которой выполняется Windows. Он скрывает от ОС специфику конкретной аппаратной платформы, в том числе ее интерфейсов ввода-вывода, контроллеров прерываний и механизмов взаимодействия между CPU, т. е. все функции, зависимые от архитектуры и от конкретной машины.
Когда внутренним компонентам Windows и драйверам устройств нужна платформеннозависимая информация, они обращаются не к самому оборудованию, а к подпрограммам HAL, что и обеспечивает переносимость этой ОС. По этой причине подпрограммы HAL документированы в Windows DDK, где можно найти более подробные сведения о HAL и о его использовании драйверами.
11. Драйверы устройств
Драйверы устройств являются загружаемыми модулями режима ядра (как правило, это файлы с расширением .sys); они образуют интерфейс между диспетчером вводавывода и соответствующим оборудованием. Эти драйверы выполняются в режиме ядра в одном из трех контекстов:
• в контексте пользовательского потока, инициировавшего функцию вводавывода;
• в контексте системного потока режима ядра;
• как результат прерывания (а значит, не в контексте какого-либо процесса или потока, который был текущим на момент прерывания).
Драйверы, как правило, пишутся на С (иногда на C++), поэтому при правильном использовании процедур HAL они являются переносимыми между поддерживаемыми Windows архитектурами на уровне исходного кода, а на уровне двоичных файлов -- внутри семейства с одинаковой архитектурой. Существует несколько типов драйверов устройств.
• Драйверы аппаратных устройств, которые управляют (через HAL) оборудованием, записывают на них выводимые данные и получают вводимые данные от физического устройства или из сети. Есть множество типов таких драйверов -- драйверы шин, интерфейсов, устройств массовой памяти и т.д.
• Драйверы файловой системы -- драйверы Windows, принимающие запросы на файловый ввод-вывод и транслирующие их в запросы ввода-вывода для конкретного устройства.
• Драйверы фильтра файловой системы, которые обеспечивают зеркалирование и шифрование дисков, перехват ввода-вывода и некоторую дополнительную обработку информации перед передачей ее на следующий уровень.
• Сетевые редиректоры и серверы, являющиеся драйверами файловых систем, которые передают запросы файловой системы на ввод-вывод другим компьютерам в сети и принимают от них аналогичные запросы.
• Драйверы протоколов, реализующие сетевые протоколы вроде TCP/IP, NetBIOS и IPX/SPX.
• Драйверы потоковых фильтров ядра, действующие по цепочке для обработки потоковых данных, например при записи и воспроизведении аудио- и видеоинформации.
Поскольку установка драйвера устройства -- единственный способ добавления в систему стороннего кода режима ядра, некоторые программисты пишут драйверы просто для того, чтобы получить доступ к внутренним функциям или структурам данных ОС, недоступным из пользовательского режима. Усовершенствования в модели драйверов Windows
С точки зрения WDM, существует три типа драйверов.
• Драйвер шины (bus driver), обслуживающий контроллер шины, адаптер, мост или любые другие устройства, имеющие дочерние устройства. Драйверы шин нужны для работы системы и в общем случае поставляются Microsoft. Для каждого типа шины (PCI, PCMCIA и USB) в системе имеется свой драйвер. Сторонние разработчики создают драйверы для поддержки новых шин вроде VMEbus, Multibus и Futurebus.
• Функциональный драйвер (function driver) -- основной драйвер устройства, предоставляющий его функциональный интерфейс. Обязателен, кроме тех случаев, когда устройство используется без драйверов (т.е. ввод-вывод осуществляется драйвером шины или драйверами фильтров шины, как в случае SCSI PassThru). Функциональный драйвер по определению обладает наиболее полной информацией о своем устройстве. Обычно только этот драйвер имеет доступ к специфическим регистрам устройства.
• Драйвер фильтра (filter driver) поддерживает дополнительную функциональность устройства (или существующего драйвера) или изменяющий запросы на ввод-вывод и ответы на них от других драйверов (это часто используется для коррекции устройств, предоставляющих неверную информацию о своих требованиях к аппаратным ресурсам). Такие драйверы не обязательны, и их может быть несколько. Они могут работать как на более высоком уровне, чем функциональный драйвер или драйвер шины, так и на более низком. Обычно эти драйверы предоставляются OEM-производителями или независимыми поставщиками оборудования (IHV).
В среде WDM один драйвер не может контролировать все аспекты устройства: драйвер шины информирует диспетчер PnP об устройствах, подключенных к шине, в то время как функциональный драйвер управляет устройством.
В большинстве случаев драйвер фильтра более низкого уровня модифицирует поведение устройства. Драйвер фильтра более высокого уровня обычно придает устройству дополнительную функциональность. Так, высокоуровневый драйвер фильтра для клавиатуры может обеспечивать дополнительную защиту.
Системные процессы
В каждой системе Windows выполняются перечисленные ниже процессы. (Два из них, Idle и System, не являются процессами в строгом смысле этого слова, поскольку они не выполняют какой-либо код пользовательского режима).
• Процесс Idle (включает по одному потоку на CPU для учета времени простоя CPU).
• Процесс System (содержит большинство системных потоков режима ядра).
• Диспетчер сеансов (Smss.exe).
• Подсистема Windows (Csrss.exe).
• Процесс входа в систему (Winlogon.exe).
• Диспетчер управления сервисами (Services.exe) и создаваемые им дочерние процессы сервисов (например, универсальный процесс для хостинга сервисов, Svchost.exe).
• Серверный процесс локальной аутентификации (Lsass.exe).
Размещено на Allbest.ru
...Подобные документы
Знакомство с техническими характеристиками персонального компьютера. Установка операционной системы и драйверов Windows 7. Способы чистки Windows XP Professional SP3. Методы восстановления операционной системы. Выполнение установки Microsoft Office 2010.
отчет по практике [5,6 M], добавлен 22.09.2014Знакомство с операционной системой Windows. Исследование её устройства, истории, возможностей, особенностей работы с ней для получения новых знаний. Описание наиболее использующихся и важных функций этой операционной системы, их практическое освоение.
контрольная работа [2,9 M], добавлен 14.12.2009Разработка драйверов ядра Windows. Драйвер виртуальных устройств Windows - компьютерная программа, с помощью которой другая программа получает доступ к аппаратному обеспечению стандартным образом. Доступ к драйверам из приложений пользовательского режима.
курсовая работа [436,1 K], добавлен 25.10.2012Изучение процесса создания новой версии Windows Vista. Исследование особенностей установки и интерфейса операционной системы. Характеристика требований к аппаратному обеспечению компьютера. Анализ основных средств навигации и работы в Windows Vista.
реферат [33,6 K], добавлен 25.11.2014Использование операционных систем Microsoft Windows. Разработка операционной системы Windows 1.0. Возможности и характеристика последующих версий. Выпуск пользовательских операционных систем компании, доработки и нововведения, версии Windows XP и Vista.
реферат [23,3 K], добавлен 10.01.2012Правовые основы защиты информации на предприятии. Анализ среды пользователей. Автоматизированная система предприятия. Краткие сведения об операционной системе Windows XP. Классификация троянских программ. Способы защиты операционной системы Windows XP.
дипломная работа [187,3 K], добавлен 14.07.2013Анализ архитектуры ОС Windows 8. Сравнение с предыдущими версиями (интерфейс Modern UI, работа с учетными записями, модель безопасности, диспетчер задач, история файлов, восстановление системы, Storage Spaces). Особенности различных версий Windows 8.
курсовая работа [289,1 K], добавлен 25.01.2016Характеристика операционной системы. История развития Windows. Сравнительная характеристика версий Windows. Элементы и инструменты Windows XP. Прикладные программы в Windows XP. Работа настольных и портативных компьютеров под управлением Windows.
доклад [19,1 K], добавлен 16.10.2011Операционная система MS-DOS: история и характеристика. Обзор стандартных программ операционной системы Windows. Способы запуска программ. Служебные приложения Windows и их назначение: диспетчер задач, проверка, очистка, дефрагментация и архивация диска.
реферат [221,4 K], добавлен 06.01.2015Понятие, сущность, структура и виды операционных систем. Характеристика операционной системы Windows XP, требования к ее установке, сравнительный анализ версий, особенности настройки, обновления версии, установки драйверов устройств и добавление новых.
реферат [558,8 K], добавлен 20.10.2009Общая характеристика, история разработки и возможности Windows Vista - операционной системы, одной из ведущих продуктов на мировом рынке. Описание аппаратных требований и процесса установки. Отличительные черты, преимущества и недостатки Windows Vista.
презентация [4,7 M], добавлен 24.05.2010Операционная система в роли связующего звена между аппаратурой компьютера и выполняемыми программами. Управление процессами операционной системы. Операционная система Windows. Различные виды Windows для определенных задач пользователей, их отличия.
реферат [28,5 K], добавлен 23.01.2012Изучение общих возможностей операционной системы Windows, осуществление навигации по ее структурам с помощью мышки. Порядок работы с программами, окнами и справочной информацией. Основные операции над папками и файлами. Построение структуры каталогов.
лабораторная работа [156,1 K], добавлен 23.10.2013Прикладные программы и утилиты. Простейшие функции операционной системы. История разработки корпорацией Microsoft Corporation графической операционной оболочки Windows. Версия семейства сетевых ОС Windows NT (Millennium Edition, 2000, XP, Vista, Seven)
презентация [965,2 K], добавлен 12.10.2013Vista: понятие, методика проектирования. Зараженность персональных компьютеров с различными версиями операционных систем Windows. Оснастка "Брандмауэр Windows в режиме повышенной безопасности". Режим работы IE 7.0, возможности, безопасные соединения.
лекция [2,3 M], добавлен 20.12.2013Windows как посредник пользователя и операционной системы, облегчая процесс общения между ними, история становления и развития ее первых версий. Функциональные особенности и отличия Windows 95/98/ME и Windows NT/2000/XP/Vista/7, их архитектурные решения.
презентация [12,7 K], добавлен 23.10.2013Изучение механизма работы программных инструментов как трудная часть отладочного процесса. Отладчики пользовательского режима, их основные типы. Автоматический запуск приложений в отладчике. Быстрые клавиши прерываний. Отладка ядра операционной системы.
реферат [260,0 K], добавлен 25.11.2016Совместное функционирование всех устройств компьютера и доступ к его ресурсам. Понятие и функции графической операционной системы Windows. Справочная служба Windows. Управление файловой системой. Технология "Plug and Play". Графический интерфейс Windows.
контрольная работа [22,2 K], добавлен 22.01.2011Понятия вычислительной системы, ее аппаратное обеспечение. Конфигурация и устройство компьютера. Элементы управления операционной системы Windows ХР. Стандартные и служебные приложения ОС. Архитектура фон Нейман. Работа в программе Microsoft Excel.
шпаргалка [47,0 K], добавлен 29.12.2010Особые режимы работы операционной системы Microsoft Windows. Характеристика стандартного и диагностического режимов. Безопасный режим и его основные виды. Дополнительные варианты загрузки MS Windows. Режимы работы с пониженным энергопотреблением.
реферат [626,5 K], добавлен 17.06.2012