Windows 95 позволяла установщикам портить свои файлы, а затем тайком исправляла все ошибки

Windows 95 инсталляторы системные файлы обратная совместимость Microsoft theregister.com

Рэймонд Чен рассказал, как Windows 95 боролась с инсталляторами, которые перезаписывали системные файлы. ОС исправляла ошибки после установки. : I’ll just clear up that up, shall I? — theregister.com

Ветеран Microsoft Рэймонд Чен поделился еще одним любопытным фактом из истории Windows: что делала Windows 95, когда инсталляторы «наступали» на ее системные файлы.

Эта проблема уходит корнями во времена 16-битных версий Windows, когда многие системные компоненты можно было свободно распространять. Инсталляторы могли включать копии этих компонентов и размещать их на целевом компьютере. Предполагалось, что программа установки будет сравнивать версии файлов в системе с теми, что копируются, и перезаписывать только в том случае, если устанавливаемый файл имел более высокий номер версии.

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

«Это правило основано на том факте, что Windows поддерживает обратную совместимость, поэтому новая версия будет работать, даже если ее использует более старая программа», — написал Чен.

На практике ничто не мешало инсталлятору полностью игнорировать это правило. Нередко программы установки просто перезаписывали все, что попадалось на пути, заменяя компоненты Windows 95 их аналогами из Windows 3.1.

«Можете представить, какой хаос это вызывало в остальной системе», — отметил Чен.

В этот момент, даже спустя десятилетия после эпохи Windows 95, читатель вправе задаться вопросом, почему операционная система вообще это допускала. Ответ — обратная совместимость: блокировка файловых операций грозила поломкой самого инсталлятора.

«В итоге это создавало еще больше проблем», — пояснил Чен. «Некоторые инсталляторы объявляли установку неудачной и сдавались. [Другие] выводили пользователю сообщение об ошибке и спрашивали, что делать дальше. (Как будто пользователь знает, что делать дальше)».

«Были даже инсталляторы, которые шли на более крайние меры и заявляли: „Ладно, хорошо, я не могу перезаписать файл, поэтому я перезагружу систему, а затем перезапишу файл из пакетного файла, посмотрим, сможете ли вы мне помешать“».

Решением Microsoft стала скрытая директория (c:\windows\sysbckup) с часто перезаписываемыми файлами. После завершения установки Windows тихо проверяла номера версий файлов на диске. Файлы с более высокими номерами версий копировались в скрытую директорию, или файл из скрытой директории заменял файл с более низким номером версии.

«По сути, — написал Чен, — Windows 95 ждала, пока каждый инсталлятор закончит работу, а затем возвращалась и проверяла проделанное, исправляя любые ошибки, допущенные инсталлятором».

Этот подход «перестраховки» зависел от того, что операционная система осведомлена о копании программы установки в ее внутренностях.

Сегодня — судя по недавней динамике — пользователям стоит меньше беспокоиться об инсталляторах и больше о том, что сама Microsoft делает с системными файлами Windows. ®

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

Похожие новости: