Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Таненбаум Э.- Архитектура компьютера. стр.371


Таненбаум Э.- Архитектура компьютера. стр.371

Приложения Windows используют функции подсистемы Win32 и взаимодействуют с этой подсистемой, чтобы делать системные вызовы. Подсистема Win32 принимает вызовы функций Win32 и использует библиотечный модуль системного интерфейса (фактически он представляет собой DLL-файл — подробнее см. главу 7), чтобы их выполнять.

Перейдем к обсуждению услуг, которые предоставляет операционная система Windows ХР. Ее интерфейс — это основное средство связи программиста с системой. К сожалению, компания Microsoft не опубликовала полный список системных вызовов Windows ХР, и, кроме того, она меняет их от выпуска к выпуску. При таких обстоятельствах практически невозможно написание программ, непосредственно совершающих системные вызовы.

Зато компания Microsoft определила набор функций, известный всем как Win32 API (Application Programming Interface — прикладной программный интерфейс). Это библиотечные функции, которые выполняют определенные действия либо в системе путем системных вызовов, либо в некоторых случаях непосредственно в библиотечной процедуре пользовательского пространства или подсистеме Win32. Набор Win32 API при создании новых версий Windows ХР не меняется. Однако помимо Win32 API существуют процедуры Windows ХР

API, которые в новых версиях Windows ХР могут меняться. Так как вызовы Win32 API документированы и достаточно стабильны, мы сосредоточим наше внимание именно на них, а не на системных вызовах Windows ХР. Когда в Windows была введена поддержка 64-разрядных машин, компания Microsoft изменила название набора с Win32 на Win64, однако для наших целей изучения 32-разрядной версии вполне достаточно.

В системах Win32 API и UNIX применяются совершенно разные подходы. В UNIX все системные вызовы общеизвестны и формируют минимальный интерфейс: удаление хотя бы одного из них изменит функционирование операционной системы. Подсистема Win32 предоставляет избыточный интерфейс. Здесь часто одно и то же действие можно выполнить тремя или четырьмя разными способами. Кроме того, Win32 включает в себя много функций, которые не являются системными вызовами (например, копирование целого файла).

Многие вызовы Win32 API создают объекты ядра того или иного типа (файлы, процессы, программные потоки, каналы и т. п.). Каждый вызов, ведущий к созданию объекта ядра, возвращает вызывающей программе результат, который называется описателем (handle). Этот описатель впоследствии может применяться для выполнения операций с объектом. Для каждого процесса существует свой описатель. Он не может непосредственно передаваться другому процессу и использоваться этим процессом (дескрипторы файлов в UNIX тоже нельзя передавать другим процессам). Однако при определенных обстоятельствах можно продублировать описатель, передать его другим процессам и разрешить им доступ к объектам, которые принадлежат другим процессам. Каждый объект имеет связанный с ним дескриптор безопасности, который определяет, кому разрешено, а кому запрещено совершать те или иные операции с объектом.

Операционную систему Windows ХР иногда называют объектно-ориентированной, поскольку оперировать объектами ядра можно только по их описателям путем вызова методов (функций API). С другой стороны, она не поддерживает такие основные свойства объектно-ориентированной системы, как наследование и полиморфизм.


⇐ Предыдущая страница| |Следующая страница ⇒

.