Все новости
Это интересно
Сейчас читают
Windows
Аватар Evernews Evernews

Windows XP обманывала старые программы, чтобы они продолжали работать

0
0
Поделиться
Телеграфировать

Система могла притвориться другой Windows - и только для определенной версии программы.

Windows XP обманывала старые программы, чтобы они продолжали работать

Ветеран Microsoft Рэймонд Чен рассказал, как Microsoft обеспечивала совместимость Windows XP с приложениями, выпущенными задолго до релиза операционной системы. Оказалось, Windows XP использовала специальную базу проблемных приложений.

Благодаря этому Windows XP могла менять собственное поведение отдельно для каждой программы — вплоть до подмены версии Windows и запуска старого диспетчера памяти, позаимствованного у Windows 95.

Microsoft хранила базу проблемных приложений в Application Compatibility Database — файл назывался Sysmain.sdb. При запуске приложения ОС могла проверять не только имя исполняемого файла, но и его размер, контрольную сумму, версию, дату и содержимое папки. Это позволяло применять исправление к конкретной версии программы.

После обнаружения совпадения Windows подключала программные прослойки между приложением и системными API. Они могли менять параметры вызовов, корректировать ответы Windows или выполнять дополнительный код: например, Win98VersionLie сообщал старому приложению, что оно работает в Windows 98.

Еще одна прослойка, EmulateHeap, заменяла стандартный механизм управления памяти копией диспетчера кучи Windows 95. Это помогало запускать старые программы, зависевшие от особенностей распределения памяти в предыдущих версиях ОС.

Реализовать такую систему решили по коммерческим причинам — как объясняет Чен, одно несовместимое приложение могло сорвать переход целой компании на новую версию Windows. Особенно серьезной проблемой оказались программы, созданные на Visual Basic для конкретных компаний и оставшиеся без поддержки после ухода их разработчиков.

Понравились наши истории?
Скорее добавляйте WTFTime.ru в предпочтительные источники Google — и мы всегда будем рядом.
Читать далее
GTA VI будет стоить $80 — берем?
Берем сразу Ultimate за $100
203 голоса, 18.8%
Берем базовое издание
95 голосов, 8.8%
Ждем скидку, и вот тогда — берем
75 голосов, 7.0%
Подождем выхода на ПК и возьмем бесплатно
447 голосов, 41.5%
Вообще не буду в нее играть
257 голосов, 23.9%
Теги: Windows
Аватар Evernews
Evernews
8091 подписчик