A Look at Upcoming Innovations in Electric and Autonomous Vehicles Windows 95 угадывала установщики. Система работала наугад!

Windows 95 угадывала установщики. Система работала наугад!

Windows 95 угадывала установщики. Система работала наугад!

Один из самых популярных операционных систем 1990-х скрывал курьёзный изъян: Windows 95 не умела надёжно отличать инсталляторы от обычных программ и буквально гадала, сверяясь со списком «волшебных слов» в именах файлов. Об этом рассказал ветеран Microsoft Рэймонд Чэнь - инженер, проработавший в компании десятилетия и известный своими откровенными историями об изнанке разработки.

Список слов вместо нормальной логики

Механизм был прост до неловкости. Вместо проверки заголовков PE-файла или специальных метаданных система просто смотрела на имя исполняемого файла. Если оно содержало одно из зарезервированных слов - считалось, что перед нами установщик. Чэнь привёл полный перечень таких ключей.

  • setup - очевидный ориентир, имя большинства установщиков того времени
  • install - дублирует следующий пункт, но попала в список раньше
  • inst - добавлена позже, когда выяснилось, что многие инсталляторы назывались по схеме «blahinst»
  • imposta - итальянское слово для «установка»
  • ayarla - турецкий вариант
  • felrak - венгерский аналог

Избыточность записи «install» по отношению к «inst» - не баг документации, а живое свидетельство того, как список рос органически. Сначала добавили очевидное, потом обнаружили пробел, залатали его, но старую запись не вычистили. Классика эволюционной кодовой базы.

Зачем системе вообще нужно было это знать

За этим угадыванием стояла вполне практическая задача. Windows 95 выходила в эпоху, когда разработчики сторонних программ нередко творили настоящий хаос: установщики перезаписывали системные DLL-библиотеки собственными версиями, порой более старыми или несовместимыми. Итог - нестабильная система, сломанные приложения, бесконечные жалобы пользователей.

Чтобы хоть как-то контролировать последствия, Microsoft встроила механизм постустановочной проверки системных файлов. Но запускать его после каждого запуска любого exe-файла было бы расточительством. Нужен был триггер. Им и стал этот нехитрый фильтр по именам.

Если имя файла не давало однозначного ответа, система делала запасной ход - проверяла путь к исполняемому файлу на наличие слова «setup». Два уровня эвристики вместо одного надёжного механизма.

Мультимедиа как отдельная головная боль

Отдельного внимания заслуживает история с мультимедийными драйверами. По словам Чэня, команда разработчиков этого направления столкнулась с тем, что драйверы, устанавливаемые через INF-файлы, систематически затирали ключевые системные компоненты. Ответом стала специальная проверка, срабатывавшая в реальном времени сразу после установки таких драйверов.

Это решение выглядит как пожарный щит, повешенный там, где давно прорвало трубу. Но в контексте середины 1990-х, когда экосистема Windows только формировалась, а у сторонних вендоров не было жёстких стандартов упаковки драйверов, подобные костыли были почти неизбежны.

Почему это важно сегодня

История Windows 95 - не просто технический курьёз. Она показывает, как под давлением реальных пользовательских проблем в систему встраивались решения, которые по-хорошему требовали архитектурного переосмысления. Вместо этого - список из шести слов на нескольких языках и двойная проверка пути.

Windows 95 вышла в августе 1995 года и стала настоящим культурным феноменом: очереди у магазинов, рекламная кампания с роликами Rolling Stones, 40 миллионов копий за первый год. Система работала. Но вот так - на честном слове и эвристике.