Введение
Подсистема для 32-разрядных Windows для запуска 16-разрядных программ Windows. 16-разрядная подсистема в 32-разрядных версиях Windows NT.
the 16 bit subsystem in the 32 bit editions of Windows NT
In computing, Windows on Windows (commonly referred to as WOW) was a compatibility layer of 32 bit versions of the Windows NT family of operating systems since 1993 with the release of Windows NT 3.1, which extends NTVDM to provide limited support for running legacy 16 bit programs written for Windows 3. x or earlier. There is a similar subsystem, known as WoW64, on 64 bit Windows versions that runs 32 bit programs. This subsystem has since been discontinued, as Windows 11 (and Windows Server 2008 R2 and later) are only available in 64 bit editions and therefore cannot run 16 bit software without third party emulation software (e. g. DOSBox). Windows 10 is the final version of Windows to include this subsystem.
В вычислительной технике Windows на Windows (обычно называемая WOW) — это уровень совместимости 32-разрядных версий семейства операционных систем Windows NT, начиная с 1993 года с выпуском Windows NT 3.1, который расширяет NTVDM для обеспечения ограниченной поддержки запуска устаревших 16-разрядных программ, написанных для Windows 3.x или более ранних версий. Существует аналогичная подсистема, известная как WoW64, в 64-разрядных версиях Windows, которая запускает 32-разрядные программы. Эта подсистема была прекращена, поскольку Windows 11 (и Windows Server 2008 R2 и более поздние версии) доступны только в 64-разрядных версиях и, следовательно, не могут запускать 16-разрядное программное обеспечение без стороннего программного обеспечения эмуляции (например, DOSBox). Windows 10 — последняя версия Windows, включающая эту подсистему.
the 16 bit subsystem in the 32 bit editions of Windows NT
In computing, Windows on Windows (commonly referred to as WOW) was a compatibility layer of 32 bit versions of the Windows NT family of operating systems since 1993 with the release of Windows NT 3.1, which extends NTVDM to provide limited support for running legacy 16 bit programs written for Windows 3. x or earlier. There is a similar subsystem, known as WoW64, on 64 bit Windows versions that runs 32 bit programs. This subsystem has since been discontinued, as Windows 11 (and Windows Server 2008 R2 and later) are only available in 64 bit editions and therefore cannot run 16 bit software without third party emulation software (e. g. DOSBox). Windows 10 is the final version of Windows to include this subsystem.
Предыстория
Многие 16-битные программы для Windows могут работать без изменений на более новых 32-битных версиях Windows. Разработчики сделали это возможным, чтобы дать разработчикам программного обеспечения время на адаптацию своих продуктов в период перехода от Windows 3.1x к Windows 95 и более поздним версиям, не ограничивая при этом возможность обновления операционной системы до актуальной версии до того, как все программы, используемые пользователем, будут обновлены. Операционные системы серии Windows 9x, унаследовавшие корни от DOS, функционировали как гибридные 16- и 32-битные системы, поскольку базовая операционная система не была полноценной 32-битной и могла запускать 16-битное программное обеспечение непосредственно, без необходимости специальной эмуляции. Операционные системы Windows NT значительно отличаются от Windows 9x по архитектуре и, следовательно, требуют более сложного подхода. Для обеспечения работы 16-битных программ на 32-битных версиях Windows (с некоторыми ограничениями во время выполнения) используются две отдельные стратегии, известные как "thunking" и "shimming".
Думать
Подсистема WOW операционной системы обеспечивает поддержку 16-битовых указателей, моделей памяти и адресного пространства. Все 16-битовые программы по умолчанию выполняются в одной виртуальной машине DOS с общим пространством памяти. Однако их можно настроить для запуска в собственном отдельном пространстве памяти, в этом случае каждый 16-битный процесс получает свою выделенную виртуальную машину. Использование отдельного пространства памяти повышает стабильность системы, предотвращая взаимное влияние некорректно работающих 16-битных программ, но при этом снижает возможности межпроцессного взаимодействия и увеличивает потребление памяти. Процесс WOWEXEC.EXE в системе Windows NT обеспечивает работу Windows на Windows. Помимо эмуляции ядер Windows 95 и Windows 98 в Windows на Windows, файл WIN.COM эмулирует ядро Windows 3.x для NTVDM, которое запускает 16-битные DOS-приложения Windows в среде Windows NT.
Сияние
Проблемы совместимости приложений, особенно связанные с длинными именами файлов, работой нескольких пользователей и принципом наименьших привилегий, могут препятствовать работе некоторых приложений. Например, они могут некорректно предполагать полный доступ на запись ко всей файловой системе, в то время как в NTFS уже реализованы механизмы безопасности. При разработке линейки операционных систем Windows 95 ключевым требованием было обеспечение обратной совместимости файловой системы с 8.3-форматом имен файлов, чтобы устаревшие приложения могли продолжать работать на платформе. Поэтому Windows 95 и последующие операционные системы поддерживают режим совместимости, при котором в записи каталога хранятся как длинное, так и короткое имя файла. Кроме того, устаревшие приложения, пытающиеся получить прямой доступ к аппаратному обеспечению, не могут сделать это в пользовательском режиме. Старые приложения также могут не работать, если системные конфигурационные файлы эпохи DOS и Windows 9x отсутствуют в ядрах на базе Windows NT, поэтому на операционных системах, которые их не используют, необходимо сохранять файлы нулевой длины, такие как AUTOEXEC.BAT и CONFIG.SYS. В слое совместимости приложений более поздних версий Windows содержится значительное количество "шин" (shims), предназначенных для перехвата и изменения вызовов API, выполняемых устаревшими приложениями, которые были разработаны с учетом иных предположений и лучших практик операционной системы. Эти исправления периодически обновляются по мере выявления проблем в популярных устаревших приложениях, которые все еще используются.