5.5. Приложения Windows 3.x
Большинство (16-битных) приложений Windows 3.x смогут без проблем работать в Windows 2000. В настоящее время такие приложения до сих пор продолжают использоваться на многих корпоративных предприятиях. Windows 2000 обладает встроенной поддержкой 16-битных приложений, поэтому, скорее всего, при их запуске в среде Windows 2000 не будут возникать какие-либо проблемы. Причины, по которым приложение Windows 3.x может оказаться неработоспособным в среде Windows 2000, схожи с причинами, по которым программы DOS отказываются работать в Windows 2000. Однако симтомы и варианты решения проблемы несколько отличаются.
· Прямой доступ к оборудованию
Как и приложения DOS, при запуске в среде Windows 2000 прикладные программы Windows 3.xнапрямую обращаться к оборудованию компьютера. В то время как программы DOS используют для этой цели драйверы устройств или резидентные программы, приложения Windows 3.x обычно обращаются к аппаратному обеспечению при помощи виртуальных драйверов устройств (VXD). Если приложение использует VXD, оно не сможет работать в Windows 2000. Примером таких приложений являются сетевые оболочки для Windows 3.x, разработанные сторонними производителями. В данной ситуации обновление, замена или отказ от использования программы неизбежны.
· Файловая система FAT
Приложения Windows 3.x также часто рассчитывают на то, что они работают на компьютере, использующем файловую систему FAT. Как и программы DOS, приложения Windows 3.x также часто не могут правильно определить размер дисковых разделов, по объёму превышающих 2 Гбайт. Особенно это характерно для программ установки, которые, прежде чем приступить к копированию файлов, обычно проверяют наличие свободного места на жёстком диске. Очень часто такие программы сообщаю, что на диске отрицательное количество байт свободного пространства, и приходят к выводу, что дальнейшая установка приложений невозможна из-за недостатка свободного места.
Как и в случае с использованием программ DOS, можно попытаться уменьшить объём свободного дискового пространства, либо заняв свободное место какими-нибудь данными, либо разбив жёсткий диск на большее количество меньших по размеру разделов. Если речь идёт о программе установки, метод уменьшения свободного пространства может помочь решить проблему. Однако если подобному дефекту подвержено само приложение, возможно, потребуется либо обновить или заменить приложение, либо отказаться от его использования в зависимости от серьёзности проблемы.
· Безопасность
Как и приложения DOS, программы Windows 3.xне имеют представления о модели безопасности Windows 2000. Если такая программа попытается осуществить некоторую операцию и ей будет отказано из соображений безопасности, программа может вести себя непредсказуемым образом. Для обеспечения работы такой программы требуется либо отключить некоторые механизмы безопасности, либо предоставить программе права, которые требуются для её работы.
· Драйверы устройств
Драйверы устройств, таких как принтеры, мыши, сетевые и звуковые карты, предназначенные для использования в Windows 3.x не совместимы с Windows 2000. Поэтому любое приложение, работа которого зависит от конкретного драйвера, может оказаться неработоспособным. В комплект поставки Windows 2000 входит большое количество драйверов для самых разнообразных устройств. Все эти драйверы хранятся на установочном CDWindows 2000. Если драйвер для какого-либо устройства отсутствует в комплекте Windows 2000, вместо него иногда можно использовать драйвер для аналогичного устройства. Прежде чем использовать подобный подход в реальной рабочей среде, необходимо хорошо протестировать его в лабораторных условиях.
· Использование CPU
Одним из основных отличий Windows 2000 от Windows 3.x является метод разделения процессорного времени между одновременно запущенными приложениями. Многозадачность позволяет использовать один процессор для одновременного выполнения нескольких программ. При этом процессор выполняет небольшой участок кода одной программы и переключается на выполнение второй программы. Выполнив небольшой участок кода второй программы, он переходит к третьей, и так далее по кругу. Операционные системы Windows 3.xиспользовали кооперативную многозадачность. При этом каждое приложение самостоятельно определяло, когда следует прекратить использование процессора и дать ему возможность переключиться на следующую программу. При таком подходе некорректно написанная программа могла нарушить работу всей системы, блокировав переключение процессора между запущенными приложениями.
Windows 2000 использует другой подход. Эта операционная система самостоятельно следит за использованием центрального процессора. Каждому из запущенных приложений предоставляется возможность использовать центральные процессор в течение заранее определённого времени, длительность которого зависит от степени приоритета, которым обладает приложение. Когда это время истекает, операционная система автоматически предоставляет процессор в распоряжение следующему приложению. Таким образом, можно быть уверенным, что процессором смогут воспользоваться все запущенные на данный момент программы. Высокоприоритетные приложения будут использовать процессор в течение более длительного времени, чем низкоприоритетные. Такой метод называют приоритетной многозадачностью.
В Windows 2000 режим приоритетной многозадачности используется для выполнения прикладных программ Win 32, а приложения Win 16 запускаются в едином адресном пространстве, эмулирующем среду Windows 3.x. При этом все приложения Win 16 между собой делят предоставленное им процессорное время, по-прежнему используя кооперативную многозадачность. Таким образом, одна некорректно написанная программа Win 16 может блокировать выполнение всех остальных программ Win 16 (но она не сможет нарушить работу приложений Win 32). Чтобы предотвратить подобные инциденты, можно использовать для запуска каждой программы Win 16 отдельное адресное пространство. В этом случае разделением процессорного времени между ними будет управлять операционная система. Если необходимо перенести в среду Windows 2000 несколько приложений Win 16, и некоторые из них интенсивно используют процессорное время, рекомендуется запускать их в разных адресных пространствах. При этом обеспечивается более эффективная совместная работа всех программ Win 16.
· Длинные имена
Известно, что приложения DOS и Windows 3.x не обладают возможностью корректно обрабатывать файлы с длинными именами, которые допускается использовать в Windows 9.x и Windows 2000. Однако зачастую это не является серьёзной проблемой. Несмотря на то, что приложения DOSи Windows 3.x не могут воспринимать длинные имена, они могут идентифицировать соответствующие файлы при помощи имён в стандарте 8.3, которые автоматически генерирует для них операционная система Windows 2000.
Однако при использовании NTFS эту возможность можно отключить при помощи одного из параметров реестра Windows 2000. В этом случае операционная система не будет осуществлять преобразование длинных имён в формат 8.3, и приложения DOSи Windows 3.x не смогут обратиться к файлам, обладающим длинными именами. Несмотря на то, что при этом несколько увеличивается производительность, использование такого режима не рекомендуется.
· Приложения Windows 9x
Большинство приложений Windows 9x без каких-либо проблем смогут работать в Windows 2000. Однако многие такие программы подвержены тем же проблемам, что и приложения DOS и Windows 3.x. Вместе с тем, так как программы Windows 9x являются 32-битными приложениями, они в большей степени приспособлены к работе в среде Windows 2000. С другой стороны могут ожидаться проблемы с русифицированным программным обеспечением. Так, например, не удалось под Windows 2000 ProfessionalReleaseCandidate (build 2128) «научить» Русский Word 95 отображать русские буквы в своих диалоговых окнах. Но будем надеяться, что с появлением локализованной версии Windows 2000 большинство подобных проблем будет решено.
· Драйверы устройств
Драйверы устройств, такие как, например, драйверы видеокарт, предназначенные для использования в Windows 9x, не совместимы с Windows 2000. Если прикладная программа Windows 9xтребует специального драйвера для Windows 9x, она не сможет работать в Windows 2000. Однако существуют исключения. Windows 98 поддерживает технологию WDM (WindowsDriverModel), разработанную Microsoft для того, чтобы избавить производителей от необходимости разрабатывать отдельную версию драйвера для каждой новой операционной системы. Драйверы, разработанные согласно спецификации WDM, смогу без проблем работать в Windows 2000.
· Безопасность
В случае возникновения проблемы, связанной с безопасностью, прикладные программы DOSи Win 16, скорее всего, отреагируют некорректно. В результате работа всей системы может быть нарушена, а данные – утеряны. В отличие от них, приложения Windows 9xимеют возможность отреагировать на отказ системы, выполнить ту или иную операцию более корректным образом. Приложения Windows 9xиспользуют программный интерфейс Win 32 API и в случае отказа получают от операционной системы более содержательные служебные отношения. Вместе с тем, если программа написана без учёта особенностей Windows 2000 и её системы безопасности, она всё равно может повести себя самым непредсказуемым образом. Как и в случае с другими операционными системами, в подобной ситуации рекомендуется либо отключить некоторые системы безопасности, либо предоставить программе более широкие права.