| « Поставить закладку » « Сделать стартовой » | |||
|
|||
| Статьи:: Системы защиты :: Общая архитектура Windows NT :: Подсистемы среды
Подсистемы средыПодсистема среды - это сервер пользовательского режима, реализующий API некоторой ОС. Самая важная подсистема среды в Windows NT - это подсистема среды Win32 (рассматриваемая ниже), которая предоставляет прикладным программам интерфейс API 32-разрядной Windows. В Windows NT также имеются подсистемы среды: POSIX, OS/2 и виртуальная DOS машина (virtual DOS machine, VDM), эмулирующая 16-разрядную Windows и MS-DOS. Данные подсистемы предоставляют свои API, но используют
для получения пользовательского ввода и отображения результатов подсистему
Win32, то есть перенаправляют видеовывод своих приложений подсистеме Win32
для отображения. Подсистема среды Win32 Подсистема среды Win32 делится на серверный процесс (csrss.exe - Client/Server Runtime Subsystem) и клиентские DLLs (user32.dll, gdi32.dll, kerneI32.dll), которые связаны с программой, использующей Win32 API. Win32. API разделен на три категории:
Когда Win32-приложение вызывает функцию API Win32, управление передается одной из клиентских DLLs подсистемы Win32. Эта DLL может:
Функциями библиотеки kernel32.dll, вызывающими «родной» интерфейс API напрямую, являются функции ввода/вывода, синхронизации и управления памятью. Фактически, большинство экспортируемых библиотекой kerael32.dll функций используют «родной» API напрямую. На рис. 3 иллюстрируется передача управления от Win32-приложения, выполнившего вызов Win32-функции CreateFile(), библиотеке kernel32.dll, затем функции NtCreateFile() в ntdll.dll и далее режиму ядра, где управление передается системному сервису, реализующему создание/открытие файла. Подробнее вызов системных сервисов рассматривается в следующем параграфе.
Рис. 3. Вызов системных сервисов через "родной" API. (ntdll.dll) «Родной» API для ОС Windows NT (Native Windows NT API) «Родной» API для Windows NT является средством, которое
реализует контролируемый вызов системных сервисов, исполняемых в режиме
ядра. Так, например, если программа, исполняющаяся в пользовательском
режиме, захочет выполнить операцию ввода/вывода, зарезервировать или
освободить регион в виртуальном адресном пространстве, запустить поток или
создать процесс, — она должна запросить (естественно, не напрямую) один или
несколько системных сервисов, расположенных в режиме ядра. mov еах, 0x00000017 Другие вызовы выглядят почти также. Первая инструкция
загружает регистр процессора индексным номером конкретной функции «родного»
API (каждая функция «родного» API имеет уникальный индексный номер). Вторая
инструкция загружает в регистр указатель на параметры вызова. Следующая
инструкция - команда генерации программного исключения. ОС регистрирует
обработчик ловушки для перехвата управления, переключения из
пользовательского режима в режим ядра и передачи управления в фиксированную
точку ОС при возникновении прерывания или исключения. В случае вызова
системного сервиса (на процессорах х86 программное исключение для вызова
системных сервисов генерируется кодом Ох2Е), этот обработчик ловушки
передает управление диспетчеру системных сервисов. Последняя инструкция
забирает параметры из стека вызывающего потока. Рубрика: Общая архитектура Windows NT
9 правил для начинающего Ajax-разработчика.
Эти девять правил несложны, никаких кусков кода — только общие советы начинающим Ajax-разработчикам. Крайне вольный перевод 9 AJAX Tips & Tricks.
Подробнее... |
Рубрика: AJAX
| Добавлено: 25.08.2008
ExtJS 2.2 - полная поддержка Firefox 3, новые виджеты и другие нововведения.
Приветствуем наших читателей. Что-то в последнее время много новостей и я даже не успеваю все отобрать и написать о самых интересных технологиях и продуктах. А ведь ещё и работать иногда надо. Но мимо этой новости мы просто не могли пройти - ведь AJAX и ExtJS как его наглядное воплощения это наша основная технологическая платформа. А буквально вчера вышла следующая версия в текущей ветке 2.х - 2.2 Что же там нового, полезного и интересного мы сейчас и рассмотрим.
Подробнее... |
Рубрика: AJAX
| Добавлено: 25.08.2008
Windows 7: под покровом тайны.
О преемнице Windows Vista, носящей кодовое имя Windows 7, известно очень мало. Корпорация Microsoft, наученная горьким опытом, с крайней неохотой делится с журналистами информацией о разрабатываемой системе, дабы у пользователей и разработчиков программного обеспечения не сложилось искаженное представление о продукте, которое бы повлияло на продажи новой операционки, как это случилось с "Вистой". Тем не менее, некоторые скупые сведения хоть и изредка, но просачиваются из стен редмондского гиганта.
Подробнее... |
Рубрика: Windows 7
| Добавлено: 25.08.2008
Остальные статьи:
Apache mod_ndb - MySQL кластер с доступом через HTTP и Ajax
Поиск уязвимостей в программах с помощью анализаторов кода
Как появилась библиотека VivaCore
Это сложно
ASP.NET и немного поисковой оптимизации
Protocol buffers: библиотека обмена данными для C++, Java, Python от Google
Описание VivaVisualCode
JQuery: Пара сотен плагинов в одной заметке
Касание сетки
Разработка элементов управления ASP.NET на примере навигационной панели
Сохранения параметров приложения в .Net
Custom cursors в .Net
Бегун убегает от хозяина
"Битрикс" выпустил седьмую версию CMS
Выбираем систему управления сайтом
Рынок CMS в Европе или впечатления с CeBIT 2008 |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|