Каковы причины иметь отдельные папки, кроме того, чтобы легко отличать 32-битные изображения от 64-битных изображений?
Это не только для удобства чтения человеком, есть много программных причин для разделения 32-битных приложений от 64-битных. Рассмотрим папку «Общие файлы». Если у вас есть 32-битное приложение и 64-битное приложение, которые используют папку Common Files для файла с тем же именем, вы собираетесь удалить то, что было установлено первым. Существуют также различия в том, как Windows представляет эти папки самим приложениям, хотя я недостаточно знаком с ними, чтобы хорошо их объяснить.
Наконец, это первый из многих шагов на пути к универсально нативным 64-битным приложениям. Представление папок по-разному делает различие видимым как для разработчиков, так и для пользователей, и 32-битные «Program Files (x86)» - лишнее.
Как вы написали в своем вопросе, эти папки являются выделенными каталогами установки по умолчанию для 32-битных и 64-битных приложений.
Интересной гибридной установкой является SQL Server 2005: если вы установите 64-разрядную версию, основные файлы ядра SQL будут скопированы в папку Program Files, инструменты, предназначенные только для 32-разрядной версии, будут установлены в папке «Program Files (x86). "
Вы упомянули причину: отличать 32-битные программные файлы от 64-битных программных файлов. Когда вы запускаете 32-разрядную программу в 64-разрядной установке Windows, Windows перенаправляет запросы папки от этой программы для% ProgramFiles% [C: \ Program Files в английской версии] альтернативе x86 [C: \ Program Files ( x86)]. Из-за этого тихого перенаправления 64-битные и 32-битные программы могут сосуществовать, не мешая друг другу. (Например, 64-битная Windows включает в себя как 64-битную, так и 32-битную версии Internet Explorer.) Windows также выполняет аналогичные перенаправления для своих файлов и ключей реестра.