Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции-ТРПС.doc
Скачиваний:
13
Добавлен:
15.11.2018
Размер:
810.5 Кб
Скачать

5.2. Отличия и общие свойства Windows платформ

5.2.1. Общие свойства Windows платформ

Для разработчиков Windows приложений фирма Microsoft предоставляет специальный интерфейс программирования приложений под названием Win32 API. Кратко можно сказать, что API – это совокупность системных функций, к которым может обращаться приложение.

В настоящее время Win32 API реализован для четырех платформ. Назовем их в порядке создания: Win32s, Windows NT, Windows 95/98 и Windows CE. Фирма Microsoft стремилась включить все Win32 функции во все платформы, поддерживающие интерфейс Win32 API. Для разработчиков программного обеспечения это означает, что тексты программ не придется переписывать для каждой платформы заново, достаточно лишь перекомпилировать приложение под другую платформу. Однако не все функции реализованы в каждой из перечисленных платформ, для таких функций используются так называемые “заглушки”. Это означает, что ваше приложение будет работать по-разному для каждой из этих платформ.

5.2.2. Отличия Win32 платформ

Рассмотрим отличия Win32 платформ между собой и определим роль каждой платформы в стратегии операционных систем фирмы Microsoft.

Win32s была первой платформой, на которой могли выполняться 32-х разрядные приложения. Платформа Win32s состоит из набора DLL (dynamic link library – динамически подключаемых библиотек) и драйвера виртуального устройства, дополняющего 16-ти разрядную систему Windows 3.1 интерфейсом Win32 API. Таким образом, Win32s не более чем 32-х разрядная надстройка над обыкновенной 16-ти разрядной системой Windows 3.1. Этот надстройка преобразует 32-х битные параметры функций в 16-ти битные и вызывает соответствующие функции 16-ти разрядной Windows.

В Win32s большинство Win32 функций реализовано в виде заглушек – при их вызове тут же происходит возврат и ничего более. Например, поскольку 16-ти разрядная Windows не поддерживает потоков исполнения, функция CreateThread(), создающая поток, возвратит нулевой описатель. Однако платформа Win32s все-таки расширяет некоторые возможности операционной системы – в ней, например, частично реализована поддержка проецируемых в память файлов.

Платформа Win32s создавалась для того, чтобы разработчики приступили к разработке 32-х разрядных приложений еще до появления настоящих Win32 платформ. Фирма Microsoft рассчитывала пробудить интерес к программированию в Win32, чтобы к моменту выпуска Windows NT на рынке уже присутствовали 32-х разрядные приложения.

Windows NT отказоустойчивая операционная система, и даже некорректные приложения, как правило, не способны привести ее к краху. Под некорректными приложениями в данном случае имеются в виду программы, напрямую обращающиеся к оборудованию компьютера, например, к портам ввода/вывода, а именно так и ведут себя многие программы MS-DOS и 16-ти разрядной Windows. При запуске такой программы в Windows NT, система немедленно завершит ее, как только та попытается напрямую обратиться к оборудованию. Windows NT не отягощенная наследством MS-DOS и поэтому считается, что будущее операционных систем за этой архитектурой (например, Windows 2000 является прямой наследницей Windows NT), несмотря на то, что Windows NT требует значительных объемов оперативной памяти и жесткого диска.

Для Windows NT 32-х разрядные приложения являются “родными”, они могут использовать все преимущества системы – мощь, отказоустойчивость, быстродействие. Более того, система Windows NT способна выполнять сразу несколько разнотипных приложений, созданных для таких операционных систем, как OS/2 1.x, MS-DOS и 16-ти разрядной Windows.

Операционная система Windows NT способна работать на машинах с разными типами процессоров. Для того чтобы Windows NT работала на MIPS R4000, DEC Alpha или Motorola PowerPC, Microsoft просто перекомпилирует исходный код операционной системы (большая часть Windows NT написана на C/C++) с помощью компилятора, “родного” для данного процессора. После того, как Microsoft переносит Windows NT на новую процессорную платформу, разработчику программного обеспечения необходимо лишь перекомпилировать свое Win32 приложение, и оно тоже начинает работать на машине с другой архитектурой. Естественно, перенос операционной системы на процессор с другой архитектурой не так прост. Для этого приходится переписывать два низкоуровневых компонента Windows NT Executive: ядро и HAL (Hardware Abstraction Layer – слой абстрагирования оборудования). Эти компоненты пишутся на соответствующей версии языка ассемблера и весьма специфичны для конкретной архитектуры того или иного процессора.

Важнейшей особенностью Windows NT является поддержка многопроцессорных машин. Работая на машине, например, с четырьмя процессорами, Windows NT позволяет одновременно выполнять до четырех потоков. А это значит, что компьютер получает возможность выполнить четыре одинаковых задачи за время, необходимое для выполнения одной задачи на одном компьютере.

Windows 95 является Win32 платформой, пришедшей на замену 16-ти разрядной Windows 3.1. В Windows 95 интерфейс Win32 API реализован полнее, чем в ее предшественнице Win32s, но все-таки не в таком полном объеме, как в Windows NT. Windows 95 была выпущена, во-первых, только потому, что требования Windows NT к оборудованию были – на то время – чрезмерно высоки, а во-вторых, Windows NT отпугивала потенциальных пользователей сложностью тонкой настройки и администрирования.

Чтобы Windows 95 смогла работать на машинах с 8 Мб памяти, Microsoft пришлось урезать некоторые возможности Win32 API. В итоге, Windows 95 не полностью поддерживает целый ряд Win32 функций, связанных, например, с асинхронным вводом/выводом файлов, отладкой, реестром, защитой, регистрацией событий, удаленным запуском процессов и т.д. – функции существуют, но реализованы частично. Однако фирме Microsoft удалось реализовать в Windows 95 значительную часть возможностей Win32 API и тем самым сделать ее весьма мощной операционной системой, которой, к настоящему времени, оборудовано большинство IBM совместимых компьютеров.

Windows CE новейшая Win32 платформа от фирмы Microsoft. Она создана в связи с появлением новой техники и рассчитана, главным образом, на карманные вычислительные устройства, которые работают от аккумуляторов и не имеют ни жестких, ни гибких дисков. У большинства таких машин 2 или 4 Мб памяти, а отсутствие жеского диска делает невозможным использование виртуальной памяти. Из-за столь жестких ограничений Microsoft пришлось создать совершенно новую операционную систему, менее требовательную к памяти, чем Windows 95.

Платформа Windows CE поддерживает проецируемые в память файлы, структурную обработку исключений, динамически подключаемые библиотеки, реестр, исполнение потоков с вытеснением и многое другое. Адресное пространство каждого процесса в ней защищено от других выполняемых процессов. Кроме того, Windows CE – переносимая операционная система, способная работать на процессорах MIPS, SH3 и x86.

Таким образом, все Win32 платформы содержат полный набор Win32 функций, вне зависимости от конкретной платформы. Но реализация реализации рознь. Когда Microsoft заявляет, что все Win32 функции будут реализованы на каждой платформе, то на деле это означает, что все Win32 функции будут существовать на каждой платформе, но поддерживаться на некоторых из них они будут только частично.

Несмотря на очевидные различия между Win32 платформами, их объединяют более существенные черты. В частности, предполагается, что большинство простых приложений совместимы с Windows NT и Windows 95 с незначительными изменениями или вовсе без них.

Рассмотрим теперь основные общие свойства – с точки зрения разработчика, – характерные для всех Windows платформ.