А вы знали, что Windows проверяет на запуске каждое приложение на то, является ли оно игрой Barbie Riding Club 1998 года? Такое большое количество
хаков позволяет Windows запускать старый софт (и позволяло запускать его в то время без багов, фикся программы на уровне системы за разработчиков).
Есть еще один интересный хак. При переходе с XP на Vista PDF-ридер от Adobe резко менял фон текста с белого на черный. Все из-за того, что Adobe использовала неправильный цвет для очистки фона (вместо
solid white использовался
window text, который был привязан к цветам интерфейса, и в Vista они изменились). Microsoft пришлось добавить хак, который выдавал
только этому приложению другой цвет по window text.
И это лишь хаки, о которых кто-то узнал. Сколько попыток исправить софт за разработчиками находится в ядре системы — загадка.
Почему Microsoft просто не написала Adobe для исправления ошибки? Ну, ей бы пришлось исправлять все версии приложения, да и времена были тогда, что за апдейты обычно просили денег. В общем, не вариант. А пользователь, увидев, что его приложение работает под новой ОС плохо, будет ругать не разработчика этого софта, а разработчика ОС.
Но не думайте, что такое только у Windows. В macOS каждое приложение на запуске
проверяет ключ настроек с говорящим названием NSMightNeedToWorkAroundBadAdobeReleaseBug.
Такая вот поучительная история о том, чем достигается обратная совместимость. Когда-нибудь расскажу вам про драйверы видеокарт — там хаков не меньше.