Regedit.
На моей машине в папке «%windir%» можно найти 6 (шесть!) копий «regedit.exe».

Что это? Опять коварный Microsoft? Не совсем так. Просто Regedit несколько раз менял свое положение в дереве каталогов.
В Windows 95 Regedit устанавливался в корневом каталоге Windows. Это соглашение сохранилось и по сей день.

Ещё одна тонкость связанная с местонахождением Regedit – существующие 32-х битные приложения по-прежнему запускают 32-х разрядную версию Regedit, даже если они указывают полный путь к 64-х версии, т.е. «%windir%\regedit.exe». Об этом заботится Wow64, перенаправляя все обращения к «%windir%\regedit.exe» в «%windir%\SysWow64\regedit.exe». Точно также, как «%windir%\system32» перенаправляется в «%windir%\SysWow64».

Появление технологии Isolated Applications and Side-by-side Assemblies многие системные библиотеки перекочевали в WinSxS хранилище. Regedit так же не избежал этой участи. В WinSxS находятся остальные четыре копии – по две на каждый тип процессора.

И наконец на моей машине установлена бета версия Vista SP1. Это объясняет почему в WinSxS хранятся две версии Regedit для каждого типа процессора. Вторая копия – это обновлённая версия из сервис пака.

Хороший пример того, к чему приводит стремление обеспечить обратную совместимость бинарных приложений любой ценой.
Хм … Это видимо и есть обещанный в висте WOW эффект … А про SP1 очень интересно
…
В Windows 95 Regedit устанавливался в корневом каталоге Windows… А в Vista его там оставили для фэнов девяносто пятой, которые могли расплакаться, не найдя свою любимую программу в привычном месте? Насчет обратной совместимости ИМХО надо быть последовательнее. CONFIG.SYS виста тоже парсит перед стартом?
В моем CONFIG.SYS зачем-то прописано FILES=40 … Зато в AUTOEXEC.BAT честно предупреждают: REM Dummy file for NTVDM …
З.Ы. Быстрый поиск по technet ничего не дал. Скорее всего не парсит …
А не этой ли причине форточки пухнут с каждой версией? Содержать в себе старую и еще новой + DRMы всякие…
Фены тоже пишут софт. :-/ По хорошему, %windir%\regedit.exe должен быть символической ссылкой на оригинал из WinSxS. Вот только по какой-то непонятной причине ни разработчики Windows, ни разработчики под Windows не уживаются с симлинками. Видимо привычка не выработалась.
Это для тех DOS приложений, которые всё еще парсят config.sys. В x64 нет DOSа и нет config.sys.
Neandertalets, слезайте с лошади!
Так я еще в галоп не успел её пустить.
Разминался только.
Брр … Обратная совместимость, великая и ужасная …
Наконец-то! =) …
P.S. Еще вопрос. Можете как-то прокомментировать отсутствие DirectSound в Vista? Я так понимаю, это чисто маркетинговое решение, связаное с защитой HD контента (Protected Media Path и иже с ним)?
Я про DirectSound вообще ничего не знаю, так что не прокомментирую. А что, его там совсем-совсем нет? А как же игры, которые его использовали?
Upd: вот здесь говорится о том, что убрана только аппаратная поддержка DirectSound 3D. Старые игры будут использовать программный микшер.
Смысла в софтверной поддержке собственно никакой. Оно работает и не более. Никакого EAX и в случае некоторых игр только стерео …. Если заинтересовало, вот подборка ссылок по теме:
http://forums.creative.com/creativelabs/board/print?board.id=Vista&message.id=1695&format=one
http://forums.creative.com/creativelabs/board/message?board.id=Vista&message.id=1694
http://channel9.msdn.com/Showpost.aspx?postid=145665
http://forums.creative.com/creativelabs/board/message?board.id=Vista&message.id=18972
По этой заметке хорошо видно, насколько неудачна архитектура и структура каталогов ФС, выбранная в Windows.
В *NIX regedit.exe строго находился бы в /usr/bin/ и все программы любых версий находили бы его там :).
Ну да, конечно. Даже если рассмотреть только 64-х битный вариант без примесей 32-х битного кода, то куда деть символические ссылки вроде:
/usr/bin/regedit -> /usr/bin/regedit.2.0
/usr/bin/regedit.2 -> /usr/bin/regedit.2.0
/usr/bin/regedit.1 -> /usr/bin/regedit.1.1
… и несколько разных версий regedit
/usr/bin/regedit.2.0
/usr/bin/regedit.1.1
/usr/bin/regedit.1.0
1. Это приложение, а не библиотека, поэтому другим приложениям должно быть по барабану, какая у неё битность.
2. Если предусмотрена установка одновременно нескольких версий (не вижу зачем в данном случае) то да, будут называться с указанием версии, а просто regedit будет вести на последнюю. Не вижу в этом ничего плохого. Если кому-то важна версия, то он её явным образом вызовет. А если без разницы - то ему не надо думать, какую запускать.
3. Держать копии бинарников гораздо кривее чем ставить симлинки.
Должно быть, но не все равно. regedit.exe используется для импорта .reg файлов. На x64 системе может получиться разный результат, в зависимости от разрядности бинарника.
Я тоже.
В момент написания я этого не знал, но как выясняется инсталлятор использует hard links вместо создания копий.