Операционные системы и системное программирование
Кирилл Сурков, Дмитрий Сурков, Юрий Четырько
©Полное или частичное копирование материалов без письменного разрешения авторов запрещено.
1
Контакты:
kirill.surkov@gmail.com
http://vk.com/kirill.surkov
2
Введение в ОС Windows
Модель программного интерфейса операционной системы Windows.
API (Application Programming Interface).
Процедурный API. Единая точка доступа к службе – за вызовом процедуры стоит программное прерывание.
Объектный подход. Отсутствие указателей на внутренние структуры данных ОС. Применение описателей (дескрипторов) вместо указателей.
«Венгерская» нотация в идентификаторах.
Средства программирования: Visual Studio, Delphi.
3
Введение в ОС Windows
Упрощенная модель архитектуры ОС:
|
Пользовате |
Application |
|
|
льский |
|
|
режим |
|
|
|
(User mode) |
NtDll.dll |
OS API |
|
|
|
Режим |
Operating System |
|
|
ядра |
|
|
|
(Kernel |
Hal.dll |
Hardware API |
|
mode) |
|
|
|
|
|
Hardware |
|
4
Введение в ОС Windows
Архитектура приложения в пользовательском режиме (32-разрядная ОС):
Application |
|
Kernel32.dll Advapi32.dll User32.dll |
Gdi32.dll |
NtDll.dll |
|
Advapi32.dll – управление реестром, безопасностью, …
User32.dll – управление окнами и сообщениями, …
Gdi32.dll – графический вывод.
NtDll.dll – интерфейсный модуль ядра.
6
Введение в ОС Windows
Архитектура системы в режиме ядра:
|
Ntoskrnl.exe: Executive + Kernel |
Win32k.sys |
|
Ntfs.sys |
Tcpip.sys |
Other |
|
|
|
Ndis.sys |
drivers |
|
|
|
|
|
|
Hal.dll |
|
процессами и потоками, памятью, безопасностью, вводом-выводом, сетью, обменом данными.
Ntoskrnl.exe (ядро) – планирование потоков, обработка прерываний и исключений, реализация объектов ядра.
Ntfs.sys, Tcpip.sys, Ndis.sys, … – драйверы устройств.
Win32k.sys – реализация функций User32.dll и Gdi32.dll.
Hal.dll – интерфейсный модуль всей аппаратуры.
7