Составители:
Рубрика:
Глава 1. ОСНОВЫ ПРОГРАММИРОВАНИЯ
В ОС СЕМЕЙСТВА WINDOWS
1.1. Базовые элементы ОС семейства Windows
Благодаря интерфейсу вызова функций в Windows доступ к системным
ресурсам осуществляется через целый ряд системных функций. Совокупность
таких функций называется прикладным программным интерфейсом, или API
(Application Programming Interfase). Для взаимодействия с Windows приложе-
ние запрашивает функции API, с помощью которых реализуются все необхо-
димые системные действия, такие как выделение памяти, вывод на экран, соз-
дание окон и т. п.
Поскольку API состоит из большого числа функций, может сложиться
впечатление, что при компиляции каждой программы, написанной для Win-
dows, к ней подключается код довольно значительного объема. В действитель-
ности это не так. Функции API содержатся в библиотеках динамической за-
грузки (Dynamic Link Libraries, или DLL), которые загружаются в память
в момент обращения, т. е. при выполнении программы.
Рассмотрим, как осуществляется механизм динамической загрузки, обес-
печивающей ряд существенных преимуществ.
Во-первых, поскольку практически все программы используют API-
функции, то благодаря DLL-библиотекам существенно экономится дисковое
пространство, которое в противном случае занималось бы большим количеством
повторяющегося кода, содержащегося в каждом из исполняемых файлов.
Во-вторых, изменения и улучшения в Windows-приложениях сводятся
к обновлению только содержимого DLL-библиотек. Уже существующие тек-
сты программ не требуют перекомпиляции.
В настоящее время наибольшее распространение получила версия API, кото-
рая имеет название Win32. Данная версия API пришла на смену версии Win16, ис-
пользуемой в Windows 3.1. Фактически 32-разрядная Win32, используемая
в операционных системах 9x, является надмножеством для Win16 (т. е. фактически
включает в себя этот интерфейс), так как большинство функций имеет то же на-
звание и применяется аналогичным образом. Однако, будучи в принципе похожи-
ми, оба интерфейса все же отличаются друг от друга. Win32 поддерживает
32-разрядную линейную адресацию, тогда как Win16 работает только с
16-разрядной сегментированной моделью памяти. Это привело к тому, что ряд
функций был модифицирован таким образом, чтобы принимать 32-разрядные ар-
гументы и возвращать 32-разрядные значения. Часть из них пришлось изменить с
учетом 32-разрядной архитектуры. Была реализована поддержка потоковой много-
задачности, новых элементов интерфейса и прочих нововведений Windows.
Так как Win32 поддерживает полностью 32-разрядную адресацию, то ло-
гично, что целые типы данных (integers) также объявлены 32-разрядными. Это
означает, что переменные типа int и unsigned будут иметь длину 32 бита, а не 16,
7
Глава 1. ОСНОВЫ ПРОГРАММИРОВАНИЯ В ОС СЕМЕЙСТВА WINDOWS 1.1. Базовые элементы ОС семейства Windows Благодаря интерфейсу вызова функций в Windows доступ к системным ресурсам осуществляется через целый ряд системных функций. Совокупность таких функций называется прикладным программным интерфейсом, или API (Application Programming Interfase). Для взаимодействия с Windows приложе- ние запрашивает функции API, с помощью которых реализуются все необхо- димые системные действия, такие как выделение памяти, вывод на экран, соз- дание окон и т. п. Поскольку API состоит из большого числа функций, может сложиться впечатление, что при компиляции каждой программы, написанной для Win- dows, к ней подключается код довольно значительного объема. В действитель- ности это не так. Функции API содержатся в библиотеках динамической за- грузки (Dynamic Link Libraries, или DLL), которые загружаются в память в момент обращения, т. е. при выполнении программы. Рассмотрим, как осуществляется механизм динамической загрузки, обес- печивающей ряд существенных преимуществ. Во-первых, поскольку практически все программы используют API- функции, то благодаря DLL-библиотекам существенно экономится дисковое пространство, которое в противном случае занималось бы большим количеством повторяющегося кода, содержащегося в каждом из исполняемых файлов. Во-вторых, изменения и улучшения в Windows-приложениях сводятся к обновлению только содержимого DLL-библиотек. Уже существующие тек- сты программ не требуют перекомпиляции. В настоящее время наибольшее распространение получила версия API, кото- рая имеет название Win32. Данная версия API пришла на смену версии Win16, ис- пользуемой в Windows 3.1. Фактически 32-разрядная Win32, используемая в операционных системах 9x, является надмножеством для Win16 (т. е. фактически включает в себя этот интерфейс), так как большинство функций имеет то же на- звание и применяется аналогичным образом. Однако, будучи в принципе похожи- ми, оба интерфейса все же отличаются друг от друга. Win32 поддерживает 32-разрядную линейную адресацию, тогда как Win16 работает только с 16-разрядной сегментированной моделью памяти. Это привело к тому, что ряд функций был модифицирован таким образом, чтобы принимать 32-разрядные ар- гументы и возвращать 32-разрядные значения. Часть из них пришлось изменить с учетом 32-разрядной архитектуры. Была реализована поддержка потоковой много- задачности, новых элементов интерфейса и прочих нововведений Windows. Так как Win32 поддерживает полностью 32-разрядную адресацию, то ло- гично, что целые типы данных (integers) также объявлены 32-разрядными. Это означает, что переменные типа int и unsigned будут иметь длину 32 бита, а не 16, 7
Страницы
- « первая
- ‹ предыдущая
- …
- 5
- 6
- 7
- 8
- 9
- …
- следующая ›
- последняя »