Windows 95 определяла установщики программ по имени файла и надеялась на лучшее

Вы когда-нибудь задумывались, как Windows 95 понимала, что перед ней — установщик программы, а не обычный калькулятор или игрушка? Оказывается, она просто угадывала. И делала это по имени файла. Серьёзно. Ветеран Microsoft Рэймонд Чэнь недавно рассказал эту историю, и она — настоящая находка для тех, кто ценит забавные технические ляпы из прошлого.
Как это работало: магия «волшебных слов»
Вместо того чтобы смотреть на внутреннюю структуру файла (логично, да?), Windows 95 просто сверяла его название со списком «волшебных слов». Если имя программы содержало одно из них — система считала её установщиком. Вот этот список: «setup», «install», «inst», «imposta», «ayarla» и «felrak».
Обратите внимание на «inst» и «install». Чэнь иронизирует: «install» избыточна, потому что любое слово с «install» автоматически содержит «inst». Его версия: сначала добавили «install», а потом заметили, что многие установщики назывались типа «blahinst». И добавили «inst». Но удалять «install» поленились. Классика разработки — «работает? не трогай».
Личное наблюдение автора: я недавно копался в старом архиве драйверов и наткнулся на файл с именем «setup_old.exe». Если бы я запустил его на Windows 95, система бы начала проверку системных файлов. Хотя это просто резервная копия. Вот так — одно слово в названии могло запустить целый процесс, который вы не планировали.
Почему это вообще проблема?
Для современного пользователя это звучит дико. Сегодня ОС смотрит на цифровую подпись, манифест и кучу метаданных. А в 95-м всё было проще. Система должна была решить: запускать ли после установки проверку целостности DLL-файлов. Но чтобы это сделать, нужно было сначала понять — а был ли установщик?
Чэнь объясняет: если имя не совпадало, ОС проверяла путь к файлу на наличие слова «setup». Если и там пусто — проверка не запускалась. Представьте: вы переименовали установщик в «my_program.exe», и Windows 95 просто пожимала плечами — мол, твои проблемы.
Особый бонус: драйверы-вредители
Отдельная боль — мультимедийные драйверы. Они часто перезаписывали системные DLL-файлы через INF-файлы. Разработчики мультимедиа заметили это и попросили Microsoft добавить проверку после установки таких драйверов. В итоге Windows 95 выполняла проверку файлов в реальном времени. То есть система сначала гадала, установщик ли перед ней, а потом пыталась убрать тот хаос, который он мог оставить.
В чём суть? Windows 95 не защищала вас от плохих установщиков. Она защищала от тех, кто назывался правильными словами. Если бы вирус назвал себя «setup.exe», система бы его пропустила. И даже помогла бы ему — запустила бы проверку файлов, которую злоумышленник мог использовать как прикрытие.
Что это говорит о нас?
Этот кейс — отличная иллюстрация того, как «быстрые решения» становятся наследием. Инженеры 90-х выбрали простой путь: проверять имя, а не содержимое. Это экономило ресурсы (процессоры тогда были слабыми). Но ценой — точности и безопасности.
Сегодня мы смеёмся над этим. Но спросите себя: сколько «волшебных слов» использует ваш текущий софт? Алгоритмы, которые просто ищут совпадения по шаблону? Фильтры спама, которые блокируют письма со словами «бесплатно»? Мы всё ещё гадаем. Просто гадаем быстрее.
Моё мнение: этот случай — не про глупость Microsoft. Это про то, как в условиях ограничений (время, бюджет, железо) мы выбираем «достаточно хорошо». И это нормально. Пока однажды «достаточно хорошо» не приводит к тому, что система считает установщиком файл с именем «felrak». Что это вообще за слово? Чэнь не знает. Я тоже. Но Windows 95 знала. И это пугает.














