Regedit.

August 7th, 2007

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

regedit.exe

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

В Windows 95 Regedit устанавливался в корневом каталоге Windows. Это соглашение сохранилось и по сей день.

regedit.exe

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

regedit.exe

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

regedit.exe

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

regedit.exe

 

,

  1. August 7th, 2007 at 22:41 | #1

    Хороший пример того, к чему приводит стремление обеспечить обратную совместимость бинарных приложений любой ценой.

  2. August 8th, 2007 at 00:30 | #2

    Хм … Это видимо и есть обещанный в висте WOW эффект … А про SP1 очень интересно ;)

  3. August 8th, 2007 at 01:06 | #3

    В Windows 95 Regedit устанавливался в корневом каталоге Windows… А в Vista его там оставили для фэнов девяносто пятой, которые могли расплакаться, не найдя свою любимую программу в привычном месте? Насчет обратной совместимости ИМХО надо быть последовательнее. CONFIG.SYS виста тоже парсит перед стартом?

  4. August 8th, 2007 at 02:13 | #4

    В моем CONFIG.SYS зачем-то прописано FILES=40 … Зато в AUTOEXEC.BAT честно предупреждают: REM Dummy file for NTVDM … :)

    З.Ы. Быстрый поиск по technet ничего не дал. Скорее всего не парсит …

  5. August 8th, 2007 at 04:23 | #5

    А не этой ли причине форточки пухнут с каждой версией? Содержать в себе старую и еще новой + DRMы всякие…

  6. August 8th, 2007 at 07:52 | #6

     

    А в Vista его там оставили для фэнов девяносто пятой

    Фены тоже пишут софт. :-/ По хорошему, %windir%\regedit.exe должен быть символической ссылкой на оригинал из WinSxS. Вот только по какой-то непонятной причине ни разработчики Windows, ни разработчики под Windows не уживаются с симлинками. Видимо привычка не выработалась.

    В моем CONFIG.SYS зачем-то прописано FILES=40

    Это для тех DOS приложений, которые всё еще парсят config.sys. В x64 нет DOSа и нет config.sys.

    А не этой ли причине форточки пухнут с каждой версией? Содержать в себе старую и еще новой + DRMы всякие…

    Neandertalets, слезайте с лошади! :-)

  7. August 9th, 2007 at 00:47 | #7

    Так я еще в галоп не успел её пустить. :)
    Разминался только.

  8. August 9th, 2007 at 03:34 | #8

     

    Это для тех DOS приложений, которые всё еще парсят config.sys.

    Брр … Обратная совместимость, великая и ужасная …

    В x64 нет DOSа и нет config.sys.

    Наконец-то! =) …

    P.S. Еще вопрос. Можете как-то прокомментировать отсутствие DirectSound в Vista? Я так понимаю, это чисто маркетинговое решение, связаное с защитой HD контента (Protected Media Path и иже с ним)?

  9. August 9th, 2007 at 08:11 | #9

     

    Можете как-то прокомментировать отсутствие DirectSound в Vista?

    Я про DirectSound вообще ничего не знаю, так что не прокомментирую. А что, его там совсем-совсем нет? А как же игры, которые его использовали?

    Upd: вот здесь говорится о том, что убрана только аппаратная поддержка DirectSound 3D. Старые игры будут использовать программный микшер.

  10. August 13th, 2007 at 00:26 | #10

    Смысла в софтверной поддержке собственно никакой. Оно работает и не более. Никакого 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

  11. October 9th, 2007 at 01:32 | #11

    По этой заметке хорошо видно, насколько неудачна архитектура и структура каталогов ФС, выбранная в Windows.

    В *NIX regedit.exe строго находился бы в /usr/bin/ и все программы любых версий находили бы его там :).

    • October 9th, 2007 at 10:54 | #12

      Ну да, конечно. Даже если рассмотреть только 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

  12. December 17th, 2008 at 23:39 | #13

    1. Это приложение, а не библиотека, поэтому другим приложениям должно быть по барабану, какая у неё битность.
    2. Если предусмотрена установка одновременно нескольких версий (не вижу зачем в данном случае) то да, будут называться с указанием версии, а просто regedit будет вести на последнюю. Не вижу в этом ничего плохого. Если кому-то важна версия, то он её явным образом вызовет. А если без разницы - то ему не надо думать, какую запускать.
    3. Держать копии бинарников гораздо кривее чем ставить симлинки.

    • December 18th, 2008 at 10:22 | #14

      Это приложение, а не библиотека, поэтому другим приложениям должно быть по барабану, какая у неё битность.

      Должно быть, но не все равно. regedit.exe используется для импорта .reg файлов. На x64 системе может получиться разный результат, в зависимости от разрядности бинарника.

      Не вижу в этом ничего плохого.

      Я тоже.

      Держать копии бинарников гораздо кривее чем ставить симлинки.

      В момент написания я этого не знал, но как выясняется инсталлятор использует hard links вместо создания копий.

  1. August 7th, 2007 at 19:48 | #1