Операционные системы: архитектура и управление процессами. Макаров П.С. - 49 стр.

UptoLike

Составители: 

49
Как и в других операционных системах, в Windows 2000 есть свой набор
системных вызовов, которые она может выполнять. Однако корпорация
Microsoft никогда не публиковала список системных вызовов Windows, кроме
того, она постоянно меняет их от одного выпуска к другому. Вместо этого кор-
порация Microsoft определила набор функциональных вызовов, называемый
Win32 API (Win32 Application Programming Interface – интерфейс прикладного
программирования). Эти вызовы опубликованы и полностью документированы.
Они представляют собой библиотечные процедуры, которые либо обращаются
к системным вызовам, чтобы выполнить требуемую работу, либо, в некоторых
случаях, выполняют работу прямо в пространстве пользователя. Существую-
щие вызовы Win32 API не изменяются с новыми выпусками системы Windows,
хотя часто добавляются новые вызовы Win32 API.
Двоичные программы для процессоров Intel x86, строго придерживаю-
щиеся интерфейса Win32 API, будут без каких-либо изменений работать на
всех версиях Windows, начиная с Windows 95. Как показано на рис. 20, для опе-
рационной системы Windows 3.1 требуется дополнительная библиотека, преоб-
разующая подмножество 32-разрядных вызовов Win32 API в 16-разрядные сис-
темные вызовы, но для остальных систем никакой адаптации не требуется.
Следует отметить, что в операционной системе Windows 2000 к интерфейсу
Win32 API добавлено значительное количество новых функций, поэтому в ней
есть дополнительные вызовы API, не включенные в старые версии Win32, ко-
торые не будут работать на старых версиях Windows.
Философия Win32 API полностью отлична от философии UNIX. В опера-
ционной системе UNIX все системные вызовы опубликованы и формируют ми-
нимальный интерфейс: удаление даже одного из них приведет к снижению
функциональности операционной системы. Философия Win32 заключается в
предоставлении всеобъемлющего интерфейса, часто с возможностью выпол-
нить одно и то же тремя или четырьмя способами, включающего множество
функций (например, процедур). Эти функции, очевидно, не должны быть (и не
являются) системными вызовами, как, например, вызов API для копирования
целого файла.
Трансляция библиотек
Выходом в таких случаях является использование так называемых при-
кладных программных сред. Одной из составляющих, формирующих приклад-
ную программную среду, является набор функций интерфейса прикладного
программирования API, которые операционная система предоставляет своим
приложениям. Для сокращения времени на выполнение чужих программ при-
кладные среды имитируют обращения к библиотечным функциям.
Эффективность этого подхода связана с тем, что большинство сегодняш-
них программ работают под управлением GUI (графических интерфейсов поль-
зователя) типа Windows, Mac или UNIX Motif, при этом приложения тратят
большую часть времени, производя некоторые хорошо предсказуемые дейст-
вия. Они непрерывно выполняют вызовы библиотек GUI для манипулирования