5. Различия между программными платформами
5.1 Windows NT
В Windows NT реализован наиболее полный вариант Win32 API. Начиная с версии 4.0, в Windows NT тот же пользовательский интерфейс, что и у Windows 95.
В WinNT реализована полная внутренняя поддержка двухбайтной символьной кодировки Unicode, мощные средства безопасности и серверные возможности. WinNT предоставляет больше удобств программам-серверам, чем Win95. Полностью 32-разрядная система, WinNT оказывается наиболее устойчивой и лучше всего подходящей для разработки программного обеспечения.
С другой стороны, WinNT является более медленной и требовательной к аппаратной ресурсам. Для работы WinNT необходимо 32 Мб ОЗУ и порядка 1 Гб жесткого диска (хотя в настоящее время это не чрезмерные требования).
Некоторые части API модуля Kernel специфичны для WinNT. В NT Kernel есть набор функций для проверки и модификации свойств безопасности объектов ядра. Например, поток не сможет работать с файловым объектом, если он не имеет прав доступа, соответствующих свойствам безопасности файлового объекта.
У модулей GDI WinNT и Win95 есть различия в области преобразования координат. В Win95 координаты задаются 16-разрядными числами (для обеспечения совместимости со старыми программами для Windows 3.1). В WinNT координаты являются 32-разрядными, что делает эту ОС более удобной для сложных графических приложений, например, для программ САПР.
5.2 Windows 95
Хотя в Win95 нет многих возможностей WinNT, но она обеспечивает более высокую производительность и совместимость со старыми приложениями и дешевым и старым оборудованием. Большинство возможностей, отсутствующих в Win95, не важны для домашнего применения или для рабочих станций.
В Win95 нет средств безопасности NT и поддержки Unicode. С другой стороны, поддержка DirectX API в Win95 реализована полнее и эффективнее, чем в WinNT.
Для обеспечения переносимости на разные процессоры большая часть кода WinNT была разработана на относительно высоком уровне – на языках Си/Си++. В Win95 включено большое количество специфического для микропроцессоров кода из Windows 3.1. Существенный объем нового кода также был оптимизирован именно для этих микропроцессоров. Поэтому требования к ресурсам у Win95 меньше и эта ОС неплохо работает на старых машинах, например, на ПК с процессором 486.
Для Visual C++ система Win95 обеспечивает полностью работоспособную среду разработки. Эта ОС стабильна, хотя и не настолько, как WinNT. Все 32-разрядные утилиты разработки Visual C++, включая консольные приложения, работают и в Win95. Для малых и средних проектов оказывается достаточно даже очень медленной машины (вроде ноутбука 25 MHz 486 CPU, 8MB RAM и 120MB HDD).
5.3 Другие платформы
Существуют версии Windows NT для компьютеров с процессорами PowerPC, DEC Alpha и MIPS. Эти реализации полностью совместимы с версией для процессоров Intel. Приложения, написанные в соответствии с документацией по API, будут перекомпилироваться для других платформ без каких-либо изменений исходного текста. Для этого необходима версия Visual C++, соответствующая версии Windows NT. Кросс-платформная разработка для Windows NT не поддерживается.
Visual C++ можно применять для разработки программ для встроенных систем и компактных компьютеров, работающих под управлением усеченной версии Windows – Windows CE. ОС Windows CE была выпущена в 1997 г. Она предназначена для портативных устройств, например, ручных компьютеров и автомобильных проигрывателей компакт-дисков. Основное назначение Windows CE – "сделать все максимально малым и компактным". В Windows CE реализовано небольшое подмножество Win32 API. Разработка программ для этой ОС производится в кросс-платформном режиме, с помощью надстройки Visual C++ for Windows CE. Эту надстройку можно использовать и в Windows NT, и в Windows 95.
6. Резюме
32-разрядные ОС Windows делятся на два семейства: Windows NT/2000 и Windows 95/98/ME. У этих ОС есть общий набор функций, доступных для вызова из приложений – Win32 API. Два семейства ОС различаются полнотой реализации Win32 API. Наиболее полная реализация выполнена в Windows NT. Для разработки программ для 32-разрядных ОС Windows можно использовать среду Visual C++.
Главной частью любого приложения Windows является цикл обработки сообщений. ОС Windows передает совместно работающим приложениям информацию о различных событиях в форме сообщений. Приложения обрабатывают сообщения, направляя их в соответствующих оконные процедуры.
Окно – это не только прямоугольная экранная область, это системный объект, обеспечивающий прием и обработку сообщений. Окна принадлежат потокам. Потоки – это одновременно исполняемые части внутри одного процесса (т.е. приложения). Потоки принадлежат процессам.
Приложения взаимодействуют с Windows, вызывая функции API. Они реализованы или в "ядре" Windows, или в одном из множества дополнительных модулей. В "ядре" можно выделить три основных части: модуль Kernel (управление памятью, файлами, потоками и процессами), модуль User (управление элементами пользовательского интерфейса, в т.ч. окнами и обработкой сообщений) и модуль GDI (функции графического отображения на различных устройствах вывода).
Остальные системные модули обеспечивают специфические возможности, например, ActiveX, MAPI, работа с сетью, стандартные элементы управления и диалоговые окна, средства мультимедиа.
|