Структура пользовательского режима. Программный интерфейс Win32 API

Подсистемы программирования. Представляет собой набор API32 (API64). Список системных вызовов никогда не публикуется и меняется с каждым новым выпуском системы. Вместо этого опубликованы и полностью документированы функциональные вызовы WinAPI. Они представляют собой библиотечные процедуры, которые либо обращаются к системным вызовам, чтобы выполнить требуемую работу, либо, в некоторых случаях, выполняют работу прямо в пространстве пользователя. Вызовы Win32 не изменяются от версии к версии, однако добавляются новые. Философия WinAPI отлична от философии Unix. Философия WinAPI заключается в предоставлении всеобъемлющего интерфейса с возможностью выполнить одно и тоже действие несколькими способами (в Unix присутствует минимальный набор вызовов).

В задачи интерфейса WinAPI включается:

создание/управление/уничтожение процессами и потоками;

межпроцессное взаимодействие;

управление семафорами, мьютексами и событиями;

управление файлами (открытие/закрытие/чтение, файловый ввод/вывод);

вызовы безопастности;

и так далее (Большинство выводов WinAPI относятся к графическим функциям).

Динамические библиотеки DLL.

Одним из способов написания программ является описание всех возможных функций в тексте программы. В разных программах список функций может быть одинаковый, тем самым увеличивая повторяемость кода. Такой способ представляет собой статическую компоновку, однако в системе Windows существует другая технология, которая называется DLL (Dynamic Link Library). Суть заключается в следующем: часто повторяющиеся функции, вызовы переносятся в отдельный файл с расширением *.dll и далее данный файл загружается в оперативную память для того, чтобы использовать необходимые функции. Важной особенностью при создании DLL является подбор определённых функций, которые выносятся в DLL-файл. Работа программ в режиме пользователя тесно связана с взаимодействием интерфейсов WiinAPI и технологии DLL (можно сказать, что WinAPI построен на DLL). При этом некоторая работа мжет быть выполнена в режиме пользователя (особенности работы WinAPI, волокна). В DLL-библиотеках сосредоточены сами вызовы WinAPI.

Реестр ОС Windows Vista.

Структура пользовательского режима. Программный интерфейс Win32 API - №1 - открытая онлайн библиотека

Реализация объектов в OC WINDOWS Vista. Структура объектов.

1. Диспетчер объектов занимает одно из важных мест в работе системы. Поскольку присоздании/уничтожении потоков создаются/уничтожаются соответствующие объекты. Диспетчер объектов представляет интерфейс для управления ресурсами системы и структурами данных.

Такой подход обеспечивает единый механизм для управления создания и уничтожения различных структур.

Исполнительный объект – это структура данных в виртуальной памяти доступная в режиме ядра. Объекты используются для построения абстракций более высоких уровней.

Поскольку все объекты являются структурами данных ядра, то при перезагрузке системы или при её включении объекты уничтожаются. После создания объектов и указания имени на этот объект можно ссылаться используя пространство имен объектов.

2. Каждый объект имеет следующую структуру: заголовок объекта (содержит информацию общего характера для всех типов объектов), данные объекта.

Заголовок объекта:

· Имя объекта;

· Каталог, в котором находится объект (пространство имен объекта);

· Информация по безопасности (содержит информацию о возможности использования данного объекта);

· Квоты (стоимость объекта. Квоты существуют для того чтобы предотвратить чрезмерное использование ресурсов системы пользовательскими процессами. Например, если квота равна 10, для какого либо процесса, а «плата за использование» - 2, то процесс может использовать ресурс 5 раз);

· Список процессов с описателями (содержит список процессов, которые используют данный объект);

· Количество ссылок (количество процессов и потоков, которые используют данный объект);

· Указатель на объект типа (информация о том, к какому типу принадлежит данный объект. Например, тип семафор, мьютекс и т.д.).