Структура пользовательского режима. Программный интерфейс 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.
Реализация объектов в OC WINDOWS Vista. Структура объектов.
1. Диспетчер объектов занимает одно из важных мест в работе системы. Поскольку присоздании/уничтожении потоков создаются/уничтожаются соответствующие объекты. Диспетчер объектов представляет интерфейс для управления ресурсами системы и структурами данных.
Такой подход обеспечивает единый механизм для управления создания и уничтожения различных структур.
Исполнительный объект – это структура данных в виртуальной памяти доступная в режиме ядра. Объекты используются для построения абстракций более высоких уровней.
Поскольку все объекты являются структурами данных ядра, то при перезагрузке системы или при её включении объекты уничтожаются. После создания объектов и указания имени на этот объект можно ссылаться используя пространство имен объектов.
2. Каждый объект имеет следующую структуру: заголовок объекта (содержит информацию общего характера для всех типов объектов), данные объекта.
Заголовок объекта:
· Имя объекта;
· Каталог, в котором находится объект (пространство имен объекта);
· Информация по безопасности (содержит информацию о возможности использования данного объекта);
· Квоты (стоимость объекта. Квоты существуют для того чтобы предотвратить чрезмерное использование ресурсов системы пользовательскими процессами. Например, если квота равна 10, для какого либо процесса, а «плата за использование» - 2, то процесс может использовать ресурс 5 раз);
· Список процессов с описателями (содержит список процессов, которые используют данный объект);
· Количество ссылок (количество процессов и потоков, которые используют данный объект);
· Указатель на объект типа (информация о том, к какому типу принадлежит данный объект. Например, тип семафор, мьютекс и т.д.).