Ко дню рождения Мастдайки

:

Восемнадцать лет назад, 24 августа 1995 года, вышел официальный релиз Windows 95. По этому поводу мы с юзером maksimiks заморочились и подготовили большой, полный ностальгии пост, посвящённый имениннице (я предпочитаю считать, что Windows 95 женского пола из-за её капризности, своенравия, теплоты, удобства и любви к украшениям).

Конечно, рассказать что-то абсолютно неизвестное о этой системе практически невозможно. Хотя…
Вот, например, можете ли вы сказать, с каким максимальным объёмом памяти сможет заработать Windows 95? 128Mb? Нет! 512Mb? Нет! 1024Mb? И снова нет!
На случай, если кто-то захочет поломать себе голову загадкой, ответ (не обязательно правильный) скрыт под спойлером:

Спойлер
Несмотря на то, что Win95 не должна поддерживать более 512Mb, она будет запускаться и работать на больших объёмах.
image
Мне удалось запустить её на виртуальной машине с 944 мегабайтами ОЗУ, и это удивительно. Win95 использует страничную адресацию памяти, и каталог страниц, экономии ради, может адресовать только те самые 512Mb.
Ещё удивительнее то, что уже на 945 мегабайтах винда запускаться отказывается. Причину я так и не смог понять — если у вас есть какие-то варианты — предлагайте в комментарии.

UPD: наиболее вероятный вариант такого поведения изложен здесь.


Известно ли уважаемой публике, что изначально проект Chicago собирались выпустить в конце 94 года, и назвать Windows 94? Более того — существовала превью-сборка «чикаги» именно под названием Windows 94; я самолично держал этот диск в руках и даже производил с него установку. Эх, знал бы я тогда, что через пару десятков лет такой диск станет диким раритетом — не потерял бы его, похвалился бы сейчас со всеми пруфами…
Впрочем, у нас есть что показать и рассказать и без этого. Оригинальная упаковка Windows 95, которой мы, в честь именин, устроили фотосессию:

Больше фотографий — тут

Обратите внимание, на коробке написано «Upgrade». Это значит, что в наших руках редакция Windows 95, которая не могла устанавливаться отдельно, и ставилась только поверх Windows 3.x. Однако же, кроме инсталлятора, эта винда ничем не отличается от обычной.

А сейчас обращусь к современным эникейщикам-ньюфагам, избалованным удобными инсталляторами, доступным интернетом и тотальной унификацией интерфейсов, лечащим проблемы переустановкой винды из сборки, сделанной неграмотным болваном для неграмотных болванов! Многие ли из вас видели дискету не на иконке Total Commander? Понимаете ли, что делает заклинание «mode con codepage»? Попробуйте, возьмите дистрибутив одной из самых популярных в свое время операционных систем, и установите, хотя бы под виртуалку (не у многих найдётся железо, на которое сможет встать Win95).
Не вышло? Что ж, тогда смотрите, как древние гики занимались утомительным, но интересным процессом, называемом установкой мастдайки!

Вы вставляете диск с мастдайкой в привод (если у вас, конечно, диск — был вариант и на дискетах), ставите в BIOS загрузку с оптики и… Что, «Операционная система не найдена»?
Загрузка с диска — это роскошь, которой не было в 95 винде. И даже диски с Windows 98, если мне не изменяет память, тоже не были загрузочными. Обязательно нужно было загрузиться в DOS, и уже оттуда запустить файл setup.exe. Вы, конечно, не сталкивались с этой проблемой, если ставили винду с дискет — но установка с дискет была проблемой сама по себе.
Впрочем, тогда это ни у кого проблем не вызывало — каждый владелец компьютера в обязательном порядке имел одну-две загрузочные дискеты с DOS, обычно с включённой поддержкой мыши, CD (да, даже сидюку нужны были дрова), и набором софта, достаточным для подготовки компьютера к инсталляции ОС. Да-да, тогда установщик операционной системы занимался только установкой, пользователь всё остальное делал сам.
Итак, вы нашли дискету, или, что сейчас актуальнее — реанимационный CD с поддержкой DOS. Запустили setup.exe, и увидели приветственное окошечко установщика.

Чик-чик-чик — операционная система не находит диск. Ну а что, всё верно, ведь вы наверняка забыли подготовить системный раздел. Вспоминаем волшебную и всемогущую утилиту FDISK — естественно, сначала перегрузившись обратно в DOS.
Кстати, вы ведь в курсе, что Win9x не поддерживают NTFS? Вот и хорошо, форматируем ваш виртуальный восьмигиговый диск в FAT и перезапускаем установщик.
Что, она опять не находит диск? И опять всё верно — ведь вы же форматировали диск в FAT32? Поддержка такой роскоши появилась только в OSR2, а здесь, будьте добры — подавайте FAT16, с лимитом в 2 Гб на раздел (если вы такой мажор, что у вас диск большего размера — трахайтесь с разбиением его на соответствующее число разделов). Кстати, FAT16 наверняка избавит вас от следующей проблемы — загрузочный раздел должен был располагаться в первых 1024 цилиндрах диска, иначе уже установленная винда не могла загрузиться.
Правда, в том случае, если вы устанавливаете Upgrade-версию Win 95, как у нас, с этими проблемами вы не столкнётесь — ведь у вас, скорее всего, уже установлена Windows 3.1, и, значит, файловая система нужной кондиции. Зато, если вы попытаетесь поставить эту версию «вчистую», то увидите вот такое сообщение:

Итак, попытка номер три: стартует мастер настройки.


Если бы я тратил время на чтение лицензионных соглашений к Windows, то никогда бы не успел написать об этом на Хабр.


Три простых шага — и, надо сказать, они действительно простые, если вы устанавливаете эту винду в сорок второй раз. Да, не вздумайте закрыть какое-либо из диалоговых окон нажатием Escape — установка без вопросов и предупреждений завершится, и выбросит вас обратно в DOS.


Вы никогда не думали, почему на картинке изображены рассыпанные дискеты, блокнот и компакт-диск, а у компьютера нет клавиатуры, и он даже не подключён к питанию?


Варианты установки? Только Custom — ведь это для крутых пользователей и настоящих сисадминов! Жаль только, что по факту этот вариант давал лишь выбрать доустановку кое-какого дополнительного софта на следующем шаге установки. Сейчас же нас просят представиться и ввести регистрационный ключик.


Установщик всегда считал, что ставится на машину, принадлежащую Microsoft — и был, в общем-то, не так далёк от истины, ибо Microsoft тогда властвовал на подавляющем большинстве машин. Но вы можете ввести свои данные, и даже на русском языке — если ставите локализированную версию, и помните, что в установщике язык переключался по Shift+Shift.


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


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


Прогресс-бар при этом то полз, то замирал надолго, потом опять полз — и предупреждение о том, что «This may take a several minutes» было написано не зря. Это, по факту, самый опасный участок установки — если инсталлятор сбоил на этом месте, ничем хорошим это не заканчивалось.

Но, хвала Летающему Макаронному Монстру, у нас всё прошло успешно, и теперь мы можем установить всё то шикарное программное обеспечение, что идёт в поставке Windows 95. Здесь и сетевые службы, и всякие утилиты… Я, бывало, подолгу раздумывал, ставить мне ту или иную программку на этот раз, или нет — зачем мне, скажем, целых пять мегабайт отдавать на Exchange, если тогда я даже не знал, что это такое?

Независимо от того, было ли у вас хоть какое-то сетевое оборудование, установщик предлагал настроить сеть. При этом, кстати, поддержка TCP/IP в оригинальной Windows 95 была отключена, но вы могли установить протокол отдельно (а если он уже был установлен в Win 3.1 — всё работало и так).


Ну и, конечно, вам предлагалось указать данные для идентификации в сети, при этом инсталлятор снова предполагал, что вы находитесь в рабочей группе корпорации Майкрософт.

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

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


После этого экрана назад дороги уже не было.

Поскакали: ждём, попутно наслаждаясь рекламой новейшей и крутейшей операционки. Индикатор прогресса в это время мог замирать надолго — и только по хрипу винчестера можно было понять, продолжается ли копирование, или всё зависло.

Перезагрузка и…


Что? Какого? Почему?

Тут, если честно, я был озадачен. Я устанавливал все сорта мастдаев неисчислимое количество раз на столь же неисчислимое количество конфигураций, в том числе — и на виртуальные машины, но такое сообщение увидел впервые. Вот вам вторая загадка, попробуйте догадаться, в чём причина без подглядывания в гугл, или под спойлер.

Это действительно спойлер
Этот дистрибутив устанавливался в виртуальную машину, работающую на современном процессоре i7 с номинальной частотой в 3.4Ghz. Возможности вируализации этого процессора позволяли отдать всю эту скорость виртуальной машине.
Так вот, оказалось, что Win95 попросту не может работать на такой частоте! Точную причину этого мне выяснить не удалось, но имеется предположение, что она такая же, как у программ, собранных старой версией компилятора Pascal ( Runtime error 200) — там таймер был завязан на частоту процессора, и на высоких частотах происходило деление на ноль.
Решить проблему оказалось достаточно просто — я сбросил частоту процессора вдвое, после чего винда продолжила установку.

К этому моменту Windows 95, по сути, уже установлена (требуется только донастройка) и встречает нас анимированной графической заставкой.

Как и положено при первом запуске, мастдай просит нас указать логин и пароль.


Уж не думаете ли вы, что это учётные данные для входа в систему, как в правильных многопользовательских системах? Ха-ха, нет, то всего лишь данные для пользовательского профиля; несмотря на то, что при каждой загрузке винда спрашивала у вас эти данные, вы всегда могли нажать «Отмену» и работать, как ни в чём не бывало.

После первого входа начинался долгий процесс дообнаружения и конфигурации оборудования



Но что это за странное окошко «вставьте установочный диск Windows 95»? Что, чьорд побьери, ты хочешь от меня, тупая шелезяка, ведь болванка с драгоценными 30 метрами дистрибутива с самого начала находится в твоём прожорливом лотке! «Обзор», флоппи, жёсткий диск… а где же CD-привод?

Нету его. Шутка про дрова для сидирома, записанные на болванку, появилась не на пустом месте (ровно как и про дрова для модема, которые надо качать из интернета). Дрова лежат на дистрибутивной болванке и не копируются на жёсткий диск при установке, ради экономии места, которое тогда было очень ценно. С каждой последующей версией винды в дистрибутив стало включаться всё больше вендорских дров для разного популярного железа — этим, кстати, и объясняется такой скачкообразный рост размера дистрибов от версии к версии — но только начиная с XP драйвера стали копироваться на жесткий диск при установке, что избавляло пользователя от необходимости постоянно держать диск под рукой. Тогда же стал популярен способ экономии дискового пространства, заключавшийся в удалении каталога с дровами из system32. Ещё, кстати, считалось кошерным прибивать Dllcache, но это уже другая история.
Но в те времена ещё на этапе установки мог потребоваться драйвер, скажем, для «оптического накопителя» — то есть без дров винда отказывалась видеть привод, с которого устанавливалась, и нужно было заранее озаботиться подготовкой дискеты с нужными драйверами.

Возвращаясь к процессу установки, скажу, что почти всегда в ответ запрос диска можно нажать «Отмену». Винда не обидится, почти наверняка завершит мастер установки, и даже потом будет работать, но не удивляйтесь, если в системе не окажется совсем никакого оборудования кроме клавиатуры и монитора. Даже того самого оптического привода не будет, потому что стандартные драйвера, как было сказано, находятся на дистрибутивном диске. Конечно, потом можно ручками доставлять эти драйвера по одному, но опытный гик всегда знал, что проще скопировать дистрибутив на винчестер, и запустить установку уже оттуда. Тогда винда сама находила свой дистрибутив и всё, что могла, ставила сама.
Но не надейтесь, что это спасло вас от геморроя с драйверами! Частенько (можно сказать, что почти всегда) драйвера для нужного железа в дистрибутиве отсутствовали, были устаревшими, либо отвратительно работавшими. Хорошо, если у вас был вендорский драйвер, который устанавливался вручную (автоматические установщики драйверов? Нет, они появились гораздо позже), а что, если его не было? Если к железке, которая досталась вам по наследству, не прилагалось не то, что дискетки — даже правильного названия? PnP? Нет-нет, железа с его поддержкой было отвратительно мало, да и сама технология только появилась и работала из рук вон плохо. Установка из интернета через службу апдейтов? Ха, тогда о таком даже не мечтали.
Но что тогда?
На самом деле существовало множество вариантов, сводящихся к одному — подбору драйвера вручную. Что удивительно, это очень часто работало — нынешнего разброса железок тогда не было, и перебирая все имеющиеся драйвера для нужного типа устройств, вы вполне могли обнаружить такой драйвер, с которым ваша железка заводилась. Это было стандартной практикой, тем более, что перебор требовался только однажды — обнаружив нужные дрова, вы пользовались ими и при последующих установках.
Я, например, до сих пор помню, как мне удавалось заводить старый, ржавый (!), многожды битый статикой ISA-шный Sound Blaster вплоть до Windows ME. «Миллениум», кстати, нужных дров не содержал, приходилось брать диск с 98, и ставить драйвера с него.
А иногда и дров было недостаточно, оказывалось что устройства устроили драку за IRQ. Нередкая штука, и, увы, не всегда удавалось это исправить ручным выставлением прерываний…

Но, допустим, вы всё поставили, и настроили. Вы получили (TA-DA!!):
* 32-хбитную среду для приложений, которые раньше работали только в тяжёлой и страшной Windows NT! Правда, не все эти приложения работали — ещё много лет в реализации WINAPI 9x на месте некоторых функций стояли ничего не делающие заглушки…
* Новый интерфейс, который сохранился в виде «классики» вплоть до Windows 8!

* Возможность (хотя и крайне ограниченную) ухода от имен в формате 8.3 (хотя призраки, вроде PROGRA~1 и MYDOCU~1 являются нам до сих пор).
* Таки Plug and Play, хотя в ту пору он вызывал больше раздражения, чем чего либо ещё.
* Вытесняющую многозадачность. Правда, работало оно на уровне анекдота " — Папа, а покажи, какая винда многозадачная! — Сейчас, только дискетку доформатирую!". Но по сравнению с 3.x это было очень круто.
* И ещё до фига всего крутого, что сейчас воспринимается как нечто само собой разумеющееся.

Как видите, операция, которая нынче сводится к вставке установочного дивидюка в привод или флешки в порт (при наличии энторнетов все уважающие себя десктопные операционки сами доставляют всё необходимое), раньше представляла собой не самый тривиальный квест. Решая его задачи, обладатель компьютера волей-неволей изучал устройство операционной системы, особенности её поведения и даже получал скилл угадывания причинно-следственных связей.
Те, кто это не прошёл, никогда не поймут, как хороши и удобны современные винды.
Вы сейчас можете снять нерабочую задачу, и, при этом, система не посыпется к чертям.
Вам не нужно перегружать операционную систему после изменения количества отображаемых цветов.
Вам не придётся столкнуться с ограничением 512 мегабайт. Нет, не 512 мегабайт на задачу — 512 мегабайт максимум для всей системы. Впрочем, тогда, в 96 году, не у каждого был жёсткий диск такого объёма.
Кстати, жёсткий диск. Вы были ограничены двумя гигами на раздел, позже — 32 гигами, но файлы больше 4 Гб вы хранить не могли. Их, правда, и не было.
А ещё FAT легко «сыпался», но почти всегда восставнавливался «скандиском». Естественно, не было поддержки квотирования, разграничения прав доступа, журналирования и вообще ничего. Регулярно нужно было делать дефрагментацию, иначе работа с диском невыносимо тормозила.
И, конечно, выключать компьютер приходилось ручками, после появления вот такой картинки:

P.S. Ностальгирующим будет интересно посмотреть видеоролики проекта 16-бит тому назад, в которых автор с 23 по 27 серию собирает старую машину, последовательно устанавливая DOS и делая апгрейды на все более новые версии Windows, при этом рассказывая о некоторых особенностях этих систем. А за напоминание о чудесном проекте спасибо s1im.