Вы находитесь на странице: 1из 38

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

Тема 2. Архитектура
операционной системы
Windows

Авторы курса:
Б.Ф. Мишнев, И.В. Птицына
Содержание:
1. Семейства операционных систем Windows
2. Возможности ОС Windows
3. История развития Windows
4. Архитектура Windows
5. Компоненты пользовательского режима
6. Компоненты режима ядра

И.В. Птицына & Б.Ф. Мишнев 2


1. Семейства операционных
систем (ОС) Windows

И.В. Птицына & Б.Ф. Мишнев 3


Операционная система (ОС) Windows
• Microsoft Windows – операционные системы корпорации
Microsoft, различные версии которых предназначены для
широкого класса устройств – от суперкомпьютеров до
встроенных систем.
• http://gs.statcounter.com
• http://marketshare.hitslink.com

И.В. Птицына & Б.Ф. Мишнев 4


Семействa ОС Windows

• семейство клиентских операционных систем Windows NT


▫ Windows XP, Windows Vista, Windows 7, Windows 8 и др.;
• семейство серверных операционных систем Windows NT Server
▫ Windows Server 2003, Windows Server 2008 и др.;
• семейство мобильных операционных систем Windows Mobile и
Windows Phone
▫ Windows Mobile 6, Windows Phone 7 и др.;
• семейство встроенных операционных систем реального времени
Windows CE
▫ Windows CE 7.0 и др.

И.В. Птицына & Б.Ф. Мишнев 5


2. Возможности ОС Windows

И.В. Птицына & Б.Ф. Мишнев 6


Возможности ОС Windows (1)

1. поддерживает вытесняющую многозадачность;


2. работает на разных аппаратных архитектурах и
обладает способностью к сравнительно легкому
переносу на новые аппаратные архитектуры;
3. поддерживает работу с виртуальной памятью;
4. является полностью реентерабельной;
5. является распределенной вычислительной платформой,
способной выступать в роли как клиента сети, так и
сервера;

И.В. Птицына & Б.Ф. Мишнев 7


8

Возможности ОС Windows (2)


6. защищена как от внутренних сбоев, так и от внешних
деструктивных действий. У приложений нет возможности
нарушить работу операционной системы или других
приложений;
7. совместима, то есть, ее пользовательский интерфейс и API
совместимы с предыдущими версиями Windows и MS-DOS.
Она также умеет взаимодействовать с другими системами
вроде UNIX, OS/2 и NetWare;
8. обеспечивает простоту адаптации к глобальному рынку за
счет поддержки Unicode;
9. поддерживает многопоточность и объектную модель.

И.В. Птицына & Б.Ф. Мишнев 8


3. История развития
Windows
И.В. Птицына & Б.Ф. Мишнев 9
История развития Windows

Источник
http://ru.wikipedia.org/wiki/Microsoft_Windows
И.В. Птицына & Б.Ф. Мишнев 10
Популярные версии Windows (1)
• Windows XP (август, 2001) - объединение
обоих направлений клиентских систем:
• системы для профессиональных пользователей
(Windows 2000 Professional),
• системы для домашних пользователей
(Windows Me).
• Windows XP 64-bit Edition
• Количество строк кода в Windows XP – 45
миллионов*

*http://windows.microsoft.com/en-US/windows/history
И.В. Птицына & Б.Ф. Мишнев 11
12

Популярные версии Windows (2)

• Windows 7 (июль, 2009)


• расширенная поддержкой ноутбуков и планшетов,
• новые приемы работы с окнами, мгновенный
поиск информации на компьютере,
• поддержка сенсорных экранов (Windows Touch),
• большие возможности по настройке оформления
рабочей среды.
• Windows 8 (октябрь, 2012)
• одинаково рассчитанная как на обычные
настольные компьютеры и ноутбуки, так и на
планшетные компьютеры.
*http://windows.microsoft.com/en-US/windows/history
И.В. Птицына & Б.Ф. Мишнев 12
Особенности Windows 8 (1)
• Ядро Windows 8 имеет номер версии 6.2 и его код основан на коде
ядра Windows 7 (имеющего номер версии 6.1) с небольшими изменениями.
• Интерфейс Modern UI. Принцип– на первом месте содержание, а не
графическое оформление, минимизировано использование элементов
интерфейса – кнопок и меню; вместо иконок используются плитки (tiles),
внутри которых текст выводится при помощи легко читаемых шрифтов, а
для динамичного отображения информации широко используется
анимация.
• Live ID - позволяет открыть свою персональную операционную систему с
любого компьютера, мобильного или планшетного устройства, на котором
вы используете Windows 8.
• Windows Defender - ранее обладала только антишпионскими
функциями, теперь стала ещё и антивирусом.

И.В. Птицына & Б.Ф. Мишнев 13


14

Особенности Windows 8 (2)


• Механизм безопасной загрузки на системах с UEFI (Unified
Extensible Firmware Interface – унифицированный расширенный
интерфейс для встроенного программного обеспечения; стандарт,
предназначенный для замены BIOS), путем проверки целостности
загрузчика Windows. Таки образом, предотвращаются попытки
вредоносных программ перехватить управление до загрузки системы.
• File history автоматически сохраняет копии изменяемых файлов.
• Восстановление системы - Обновление (Refresh) и Сброс
(Reset). При Обновлении система переустанавливается с сохранением
пользовательских файлов и настроек; при Сбросе диск форматируется
и система устанавливается с нуля.
• Storage Spaces - позволяет объединять физические диски,
построенные по разным технологиям (SATA, USB, SAS), в единый
виртуальный диск с автоматическим резервированием информации.

И.В. Птицына & Б.Ф. Мишнев 14


4. Архитектура Windows

И.В. Птицына & Б.Ф. Мишнев 15


Архитектура
Windows

И.В. Птицына & Б.Ф. Мишнев 16


Общая схема архитектуры
• Windows представляет собой операционную систему с
гибридным ядром
• В режиме ядра работают системные функции по управлению
▫ процессами,
▫ памятью,
▫ устройствами,
▫ файловой системой
▫ безопасностью;
• Пользовательский режим:
▫ системные процессы входа в систему,
▫ локальная аутентификация,
▫ диспетчера сеансов,
▫ подсистемы окружения и др.
И.В. Птицына & Б.Ф. Мишнев 17
5. Компоненты
пользовательского режима
И.В. Птицына & Б.Ф. Мишнев 18
Архитектура
Windows

И.В. Птицына & Б.Ф. Мишнев 19


Компоненты пользовательского режима
• системные процессы (system processes) – компоненты
Windows, отвечающие за решение критически важных
системных задач (т. е. аварийное завершение одного из
этих процессов вызывает крах или нестабильную работу
всей системы), но выполняемые в пользовательском
режиме.
• службы (сервисы, services) – приложения, работающие в
фоновом режиме и не требующие взаимодействия с
пользователем. За службы отвечает системный процесс
Services.exe;
• подсистемы окружения (environment subsystems) –
компоненты, предоставляющие доступ приложениям к
некоторому подмножеству системных функций.
• пользовательские приложения (user applications)
И.В. Птицына & Б.Ф. Мишнев 20
Основные системные процессы

▫ Winlogon.exe – процесс входа в систему и выхода из неё;


▫ Smss.exe (Session Manager – диспетчер сеансов) – процесс
выполняет важные операции при инициализации системы
(загрузка необходимых DLL, запуск процессов Winlogon и Csrss и
др.), а затем контролирует работу Winlogon и Csrss;
▫ Lsass.exe (Local Security Authentication Subsystem Server – сервер
подсистемы локальной аутентификации) – процесс проверяет
правильность введенных имени пользователя и пароля;
▫ Wininit.exe – процесс инициализации системы (например,
запускает процессы Lsass и Services);
▫ Userinit.exe – процесс инициализации пользовательской среды
(например, запускает системную оболочку – по умолчанию,
Explorer.exe);
▫ Services.exe (SCM, Service Control Manager – диспетчер управления
службами) – процесс, отвечающий за выполнение служб.
И.В. Птицына & Б.Ф. Мишнев 21
Подсистемы окружения

• собственно Windows – при помощи данной


подсистемы выполняются 32 разрядные
приложения Windows (Win32), а также 16
разрядные приложения Windows (Win16),
приложения MS DOS и консольные приложения
(Console). За подсистему Windows отвечает
системный процесс Csrss.exe и драйвер режима
ядра Win32k.sys;
• POSIX (Portable Operating System Interface for UNIX
– переносимый интерфейс операционных систем
UNIX) – подсистема для UNIX-приложений.
И.В. Птицына & Б.Ф. Мишнев 22
Пользовательские приложения бывают
следующих типов:
• 32-разрядной Windows,
• 64-разрядной Windows,
• 16-разрядной Windows 3.1,
• 16-разрядной MS-DOS,
• 32-разрядной POSIX,
• 32-разрядной OS/2;

И.В. Птицына & Б.Ф. Мишнев 23


Архитектура
Windows

И.В. Птицына & Б.Ф. Мишнев 24


Основные Windows DLL
• Kernel32.dll – базовые функции, в том числе работа с процессами и потоками,
управление памятью и вводом выводом;
• Advapi32.dll – функции, в основном связанные с управлением безопасностью
и доступом к реестру;
• User32.dll – функции, отвечающие за управление окнами и их элементами в
GUI приложениях (Graphical User Interface – графический интерфейс
пользователя);
• Gdi32.dll – функции графического пользовательского интерфейса (Graphics
Device Interface, GDI), обеспечивающие рисование на дисплее и принтере
графических примитивов и вывод текста.
• Библиотека Ntdll.dll экспортирует системные функции, реализованные, в
основном, в Ntoskrnl.exe. Набор таких функций
называется Native API ("родной" API).
Библиотеки Windows DLL преобразуют вызовы документированных WinAPI
функций в вызовы функций Native API и переключают процессор на режим ядра.
И.В. Птицына & Б.Ф. Мишнев 25
6. Компоненты режима
ядра
И.В. Птицына & Б.Ф. Мишнев 26
Архитектура
Windows

И.В. Птицына & Б.Ф. Мишнев 27


28

Компоненты режима ядра


• Диспетчер системных сервисов (System
Service Dispatcher)
• Исполнительная система
• Ядро
• Windows USER и GDI 
• Драйверы (drivers)
• HAL (Hardware Abstraction Layer)

И.В. Птицына & Б.Ф. Мишнев 28


Компоненты режима ядра

• Ядро содержит функции, обеспечивающие


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

И.В. Птицына & Б.Ф. Мишнев 29


Компоненты режима ядра

• Windows USER и GDI отвечает за пользовательский
графический интерфейс (окна, элементы
управления в окнах – меню, кнопки и т. п.,
рисование), является частью
подсистемы Windows и реализован в драйвере
Win32k.sys.

И.В. Птицына & Б.Ф. Мишнев 30


Функции исполнительной системы (1)

Исполнительная система (executive) находится на верхнем уровне


Ntoskrnl.exe. В ее состав входят функции следующего типа:
• Экспортируемые функции, доступные для вызова из
пользовательского режима. Эти функции называются системными
сервисами и экспортируются через Ntdll. Большинство сервисов
доступно через Windows API или API других подсистем окружения.
• Функции драйверов устройств, вызываемые через функцию
DeviceIoControl. Последняя является универсальным интерфейсом
от пользовательского режима к режиму ядра для вызова функций в
драйверах устройств, не связанных с чтением или записью.
• Экспортируемые функции, доступные дли вызова только из
режима ядра и документированные в Windows DDK или Windows
Installable File System (IFS) Kit

И.В. Птицына & Б.Ф. Мишнев 31


Функции исполнительной системы (2)

• Экспортируемые функции, доступные для вызова только


из режима ядра, но не описанные в Windows DDK или IFS
Kit
• Функции, определенные как глобальные, но не
экспортируемые символы. Включают внутренние функции
поддержки, вызываемые в Ntoskrnl; их имена начинаются с
lop (функции поддержки диспетчера ввода-вывода) или с
Mi (функции поддержки управления памятью).
• Внутренние функции в каком-либо модуле, не
определенные как глобальные символы.

И.В. Птицына & Б.Ф. Мишнев 32


Компоненты исполняющей системы (1)

• Диспетчер конфигурации, отвечающий за реализацию и управление


системным реестром.
• Диспетчер процессов и потоков, создающий и завершающий
процессы и потоки.
• Монитор состояния защиты, реализующий политики безопасности
на локальном компьютере.
• Диспетчер ввода-вывода, реализующий аппаратно-независимый
ввод-вывод и отвечающий за пересылку ввода-вывода нужным
драйверам устройств для дальнейшей обработки.
• Диспетчер Plug and Play, определяющий, какие драйверы нужны
для поддержки конкретного устройства, и загружающий их.
• Диспетчер электропитания, который координирует события,
связанные с электропитанием, и генерирует уведомления системы
управления электропитанием, посылаемые драйверам.

И.В. Птицына & Б.Ф. Мишнев 33


Компоненты исполняющей системы (2)
• Подпрограммы WDM Windows Management Instrumentation,
позволяющие драйверам публиковать информацию о своих
рабочих характеристиках и конфигурации, а также получать
команды от службы WMI пользовательского режима.
• Диспетчер кэша, повышающий производительность файлового
ввода-вывода за счет сохранения в основной памяти дисковых
данных, к которым недавно было обращение
• Диспетчер памяти, реализующий виртуальную память — схему
управления памятью, позволяющую выделять каждому процессу
большое закрытое адресное пространство, объем которого может
превышать доступную физическую память.
• Средство логической предвыборки, ускоряющее запуск системы и
процессов за счет оптимизации загрузки данных, к которым
происходит обращение при запуске системы или процессов.

И.В. Птицына & Б.Ф. Мишнев 34


Драйверы

Драйверы (drivers) – взаимодействие


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

И.В. Птицына & Б.Ф. Мишнев 35


Виды драйверов устройств

• Драйверы, манипулирующие устройствами (с использованием


HAL) для записи выходных данных или получения входных данных
от физических устройств или через сеть.
• Драйверы файловой системы, которые принимают запросы на
файловый ввод/вывод и транслируют их в запросы ввода/вывода,
связанные с конкретными устройствами.
• Драйверы фильтров. Примером могут быть драйверы поддержки
зеркальных дисков, шифрования данных, перехвата ввода/вывода
для дополнительной обработки данных перед передачей их на
следующий уровень и т.д.
• Сетевые драйверы, которые передают и принимают удаленные
запросы на ввод/вывод

И.В. Птицына & Б.Ф. Мишнев 36


HAL

HAL (Hardware Abstraction Layer) –посредник
между программными компонентами режима
ядра и аппаратурой. Позволяет скрыть от всех
программных компонентов особенности
аппаратной платформы.

И.В. Птицына & Б.Ф. Мишнев 37


Спасибо
за
внимание!

И.В. Птицына & Б.Ф. Мишнев 38