- •5. Семейство ос компании Microsoft
- •Сравнительный анализ архитектуры оболочки Windows 3.11, ос Windows 95 и ос Windows 2000.
- •Классификация api функций. Динамические библиотеки.
- •Концепция объектной модели компонентов (com). Основные понятия в com модели.
- •Структура Windows 98. Режимы работы процессора Pentium.
- •Управление процессами Windows 98. Система виртуальных машин Windows 98
- •Файловая система. Реестр Windows 98.
- •Области использования Windows 2000 .
- •Структура Windows 2000, executive и защищенные подсистемы
- •Множественные прикладные среды Windows 2000.
- •Объектно-ориентированный подход Windows 2000.
- •Алгоритм планирования процессов и потоков Windows 2000
- •Обмен данными между процессами и потоками
- •Синхронизирующие объекты ос Windows 2000
- •Управление памятью в Windows 2000
- •Организация файловой системы fat
- •Организация файловой системы ntfs.
- •Организация контроля доступа в ос Windows nt/2000/хр
- •Реестр Windows 2000 и работа с журналами.
- •Сетевые средства Windows 2000.
- •Генерация и настройка ос Windows 2000.
- •Функции защиты на уровне Win32 api.
Классификация api функций. Динамические библиотеки.
Windows API (application programming interfaces) — общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Windows и Windows NT корпорации «Майкрософт». Является самым прямым способом взаимодействия приложений с Windows. Для создания программ, использующих Windows API, «Майкрософт» выпускает SDK, который называется Platform SDK и содержит документацию, набор библиотек, утилит и других инструментальных средств.
Windows API был изначально спроектирован для использования в программах, написанных на языке C (или C++). Работа через Windows API — это наиболее близкий к системе способ взаимодействия с ней из прикладных программ. Более низкий уровень доступа, необходимый только для драйверов устройств, в текущих версиях Windows предоставляется через Windows Driver Model.
Все виды API функций можно разбить на следующие классы:
Win16 — первая версия Windows API для 16-разрядных версий Windows. Изначально назывался просто Windows API, затем стал называться Win16 для отличения от Win32.
Win32s — подмножество Win32, устанавливаемое на семейство 16-разрядных систем Windows 3.x и реализующее ограниченный набор функций Win32 API для этих систем.
Win32 — 32-разрядный API для современных версий Windows. Самая популярная ныне версия. Базовые функции этого API реализованы в DLL kernel32.dll и advapi32.dll; базовые модули GUI — в user32.dll и gdi32.dll. Win32 появился вместе с Windows NT и затем был перенесён (в несколько ограниченном виде) в системы серии Windows 9x. В современных версиях Windows, происходящих от Windows NT, работу Win32 GUI обеспечивают два модуля: csrss.exe (Client/Server Runtime Subsystem), работающий в пользовательском режиме, и win32k.sys в режиме ядра. Работу же системных Win32 API обеспечивает ядро - ntoskrnl.exe
Win64 — 64-разрядная версия Win32, содержащая дополнительные функции для использования на 64-разрядных компьютерах. Win64 API можно найти только в 64-разрядных версиях Windows XP, Windows Server 2003, Windows Vista и Windows Server 2008.
Сервис АРI - функция или подпрограмма API, которая реализует некоторое действие (сервис) операционной системы, такое как создание файла или работа с графикой (рисование линий или окружностей). Например, функция API CreateProcess используется в Windows для создания нового процесса;
системный сервис - недокументированная (undocumented) функция, которая может вызываться из пользовательского режима. Эти функции часто используются функциями Win32 API для предоставления низкоуровневых сервисов.
Динамически подключаемые библиотеки (dynamic-link libraries, DLL) — краеугольный камень операционной системы Windows, начиная с самой первой ec версии. В DLL содержатся все функции Windows API. Три самые важные DLL: Kernel32.dll (управление памятью, процессами и потоками), User32.dll (поддержка пользовательского интерфейса, в том числе функции, связанные с созданием окон и передачей сообщений) и GDI32.dll (графика и вывод текста).
В Windows есть и другие DLL, функции которых предназначены для более специализированных задач. Например, в AdvAPI32.dll содержатся функции для защиты объектов, работы с реестром и регистрации событий, в ComDlg32.dll ~ стандартные диалоговые окна (вроде File Open и File Save), a ComCrl32 dll поддерживает стандартные элементы управления.
Когда приложение вызывает API-функцию из подсистемы Win32, может произойти одно из нескольких событий:
если DLL подсистемы (например, USER32.DLL), экспортирующая данную API-функцию, содержит весь код, необходимый для выполнения функции то функция выполняется и возвращает результат;
API-функции, вызываемой приложением, может потребоваться вызвать для выполнения вспомогательных действий дополнительный модуль, принадлежащий подсистеме Win32 (но не той DLL, которая экспортирует данную функцию);
API-функции, вызываемой приложением, могут понадобиться услуги недокументированного системного сервиса. Например, чтобы создать новый процесс, API-функция CreateProcess вызывает недокументированный системный сервис NTCreateProcess для реального создания данного процесса. Это делается с помощью функций библиотеки NTDLL.DLL, которая помогает осуществлять переход из пользовательского режима в режим ядра.
