Как стать автором
Обновить

Почему при установке Windows 95 использовались три операционные системы?

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров35K
Всего голосов 65: ↑64 и ↓1+86
Комментарии138

Комментарии 138

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

p.s. у меня еще долго бомбило от текстового инсталлера NT ...который сравнивая с 95 и особенно с 98 выглядит крайне старомодно на...и это тянулось аж до XP включительно

при установке Windows 3.1/3.11 был очень очень похожий текстовый инсталлятор, который потом на каком-то шаге превращался уже в графический с запущенным Windows 3.1, просто установив базовую часть с первой дискеты, а потом загрузив 3.1 до установив, с остальных. правда без лишних перезагрузок, т. к. на самом деле 3.1 это не ОС, а оболочка. (для Windows 95 OS R2 используется специальная версия DOS, без которой из старой версии DOS 6.22 например, не получилось бы запустить Windows 95, без перезагрузки, и установки этой дос)

И тут маленький подвох, в названии статьи, 3.1 не ОС а оболочка :-)

В Windows NT, DOS не было, она изначально использовала NTFS в качестве файловой системы, а ДОС ее не видит вообще, и ветка NT развивалась своей жизнью. А ветка на базе OS поверх DOS, умерла на Windows ME. Это не эволюция а два разных решения, инсталляторы у них разные, и ОС очень разные.

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

Любое приложение дос тоже может перехватывать управление и иметь свои собственные форматы файлов. Те же текстовые или графические редакторы, например. Игры, кстати, тоже. Но их же никто не называет ос?

Ну если оно позиционируется как операционная система, предоставляет какое-то API/ABI, то почему бы и не назвать?

Но сам Майкрсофт винду до 95 как ОС вроде и не позиционировал.

Именно. Сам Майкрософт ее позиционировал как оболочку. Я подозреваю потому что ОС - это, всё-таки, в том числе и взаимодействие с железом, драйвера и вот это все. А в 3.хх Винде вроде бы управляла только графикой и модемом.

Железом она управляла и драйвера были совершенно разного толка, а не только GDI.

Скорее всего вопрос ОС это или оболочка стоит исключительно в коммерческой плоскости, а, отнюдь, не технической. Например немаленькое количество лицензий 3х продавались внутри IBM OS/2

Сам Майкрософт ее позиционировал как оболочку.

Win 1.x/2.x - возможно, а про 3.x и дальше это уже миф. По крайней мере уже в 1992 году Microsoft позиционировал Windows как операционную систему. Пруф: Getting started with Microsoft Windows : for the Microsoft Windows operating system : Microsoft Corporation : Free Download, Borrow, and Streaming : Internet Archive

А в 3.хх Винде вроде бы управляла только графикой и модемом.

Зависит от конкретной версии, процессоре, на котором она запускалась, и наборе конкретного железа. В 386 Enhanced Mode там уже могли использоваться свои 32-разрядные драйвера файловой системы (не использовавшие вызовы DOS), 32-разрядные драйвера дисковой системы (не использовавший вызовы BIOS), и т.д.

Win 1.x/2.x - возможно, а про 3.x и дальше это уже миф. По крайней мере уже в 1992 году Microsoft позиционировал Windows как операционную систему. Пруф: Getting started with Microsoft Windows : for the Microsoft Windows operating system : Microsoft Corporation : Free Download, Borrow, and Streaming : Internet Archive

Я позволю себе усомниться. Дело в том, что указанный документ относится к версии Windows 3.1. Говорят, что первая версия NT - это как раз Windows 3.1. Я ее не щупал, видел только Windows NT 3.51, которая была весьма похожа на Windows 3.0/3.11, но при этом считалась полноценной ОС. А версии "оболочек" - 3.0, 3.0a, 3.10, 3.11 (https://web.archive.org/web/20050525190415/http://support.microsoft.com/kb/q32905/#appliesto)

PS. Хм... https://en.wikipedia.org/wiki/Windows_3.1

https://www.computerhistory.org/tdih/april/6/

Дело в том, что указанный документ относится к версии Windows 3.1. Говорят, что первая версия NT - это как раз Windows 3.1

Windows NT как раз дали версию тоже 3.1, чтобы показать что она по user experience соответствует версии 3.1 из линейки обычной Windows.
Собственно, ваши ссылки на википедию и computerhistory вполне четко демонстрируют, что Windows NT 3.1 и Windows 3.1 (без "NT") - это разные системы.

Windows и Windows NT были двумя разными линейками продуктов. И книга по ссылке - именно про первую.

Windows NT 3.х и Windows 3.x (как и NT4 и Win9x) действительно имели одинаковый интерфейс и были совместимы на уровне ПО, но отличались весьма существенно - NT обходились без DOS, поверх которого грузились 9х, используя собственный загрузчик - NTLoader (стоить ли говорить, что именно NT была первой 32-разярдной системой от MS, в то время как Win3.0 реально было запустить на 286). И как бы MS не старались спрятать DOS, например, в WinME (последней ипостаси 9х), уши его торчали отовсюду и при желании можно было загрузиться в командную строку вообще без GUI.

Windows NT 3.х и Windows 3.x (как и NT4 и Win9x) действительно имели одинаковый интерфейс

Уточню, что первые (3.х) следовали в интерфейсе стандарту IBM CUA, вторые имели интерфейс модифицированный для "домохозяек", по результатам развода с IBM исследований Microsoft

в то время как Win3.0 реально было запустить на 286).

При определенном терпении она запускалась на 8088. Был даже специальный ключ /R для запуска Windows в реальном режиме

Цитата из первой главы Танненбаума: "Когда корпорация Microsoft решила создать преемника MS-DOS, она была под большим впечатлением от успеха Macintosh. В результате появилась основанная на применении графического интерфейса пользователя система под названием Windows, первоначально являвшаяся надстройкой над MS-DOS (то есть она больше была похожа на оболочку, чем на настоящую операционную систему). На протяжении примерно 10 лет, с 1985 по 1995 год, Windows была просто графической оболочкой, работавшей поверх MS-DOS."

Ещё цитата "Windows 3.0 не была настоящей операционной системой — это была графическая среда, работавшая поверх системы MS-DOS, которая по-прежнему управляла компьютером и файловой системой. Все программы работали в одном адресном пространстве, и ошибка в любой из них могла привести к остановке всей системы. "

И тем не менее, Windows, начиная с версии 3.х это именно операционная система, и не только потому, что autoexec.bat у кого-то заканчивался на nc.exe, а у кого-то на win.com.

Win16 даже при наличии установленного Win32s не становилась операционной системой. Точка. И DOS не являлся "всего лишь" загрузчиком Windows.

Далее смотрим в Win.com и наблюдаем следующие сообщения об ошибках "Отсутствует HIMEM.SYS; Убедитесь, что этот файл находится в Вашем каталоге Windows и что его местонахождение правильно указано в Вашем файле CONFIG.SYS", плюсом к этому идут сообщения что "Нужна MS-DOS версии 3.30 или выше", а так же "Недостаточно обычной памяти для запуска Windows. Переконфигурируйте Вашу систему для увеличения доступной памяти и попробуйте еще раз", и ещё "Недостаточно указателей файлов. Увеличьте значение files= в config.sys до 30 и более"

Этого ВСЕГО более чем достаточно, чтобы ОПРЕДЕЛЯТЬ Win16 как оболочку DOS, не способную к самостоятельному существованию.

Этого ВСЕГО более чем достаточно, чтобы ОПРЕДЕЛЯТЬ Win16 как оболочку DOS, не способную к самостоятельному существованию.

Вам ещё не надоело вести тут древнюю священную войну против Win3.x (в пользу OS/2, полагаю - тогда священной войной занимались как раз сторонники "полуоси")? Но, по-любому: читали ли вы книгу Эндрю Шульмана "Неофициальная Windows 95"? Если не читали, но намерены продолжать священную войну дальше - обязательно прочтите. Там как раз соответствующие вопросы разобраны подробно, с исследованиями внутренностей и подтверждением правоты на примерах кода, написанных автором. Его выводы:

  1. Windows 95 - это эволюционное развитие расширенного режима Windows, появившегося в Windows 3.0 (1990).

  2. Ядро расширенного режима Windows (VMM) является полноценной ОС, полностью управляющей выполнением программ: режимами работы процессора, обработкой прерываний, обращением к вводу-выводу.

  3. Как и всякая хоть чуть-чуть современная операционная система, для работы с устройствами и файловыми системами VMM Windows 3.х/9.x использовал компоненты - драйверы. Какие именно драйверы и в каких случаях их использовать, определял VMM.

  4. В частности, для многих устройств драйвером являлся 16-битный код BIOS и DOS, загруженный (а в случае BIOS - вообще, прошитый) до запуска Windows. Этот код VMM запускал в режиме V86 процессора 80386 и старше под своим управлением, и в некоторых случаях даже перехватывал управление вызовами из этого кода. А поскольку этот код не предназначен для его параллельного выполнения, VMM перед вызовом этого кода захватывал блокировку, которую освобождал после завершения вызова.

В принципе, теоретически, в расширенном режиме можно заменить вообще весь код DOS как своего рода драйвер на собственные драйверы VMM (VXD) и избавиться от этой зависимости. Эта работа постепенно велась, но так и не была доделана до конца существования линейки Win3.x/9x/ME по причинам экономическим, а не техническим. В частности, вполне можно было бы и пресловутое форматирование дискеты перенести в VXD (перенесли или нет - не в курсе, дискеты к концу 90-х стали как-то для меня неактуальны).

Называть ли после этого Windows 3.x расширенного режима ОС или оболочкой - вопрос чисто терминологический, я лично причин ломать по этому копья (особенно, сейчас) не вижу.

В конце концов, к XXI веку памяти на работу с полноценной ОС с вытесняющей многозадачностью и изоляцией памяти процессов стало хватать всем, и прошлые компромисные ОС/оболочки стали неактуальны.

Как-то так.

Тут, видите ли, даже насчет Windows 95 споры не утихают по сей день, а уже Win3.хх... Попробуйте установить Win3.хх на чистый комп? Это же операционная система, значит должна уметь?

В этом смысле она ничем не отличается от Win95, просто DOS забыли в коробку положить.

>>Но их же никто не называет ос?

win 3.1 могла сама работать с диском в 32 битном режиме. Не используя ДОС подсистему. Вопрос тогда, оболочкой какой "Дисковой Операционной Системы" она была ?

Ну и что? Еще раз повторю свою мысль. Под досом мало какое приложение пользовалось только вызовами дос. Чаще всего - вызовами биос, а нередко работало напрямую с аппаратурой. Это было в порядке вещей.

Простой пример - широко известная программа MHDD, грузится из под дос и напрямую через железо работает с дисками, причем как старыми ide, так и всеми современными. Наверняка при работе использует упомянутое вами 32-битное обращение к дискам. А может и 64 бит использует, я хз. Так что ж, эта программа теперь - ОС, по вашему критерию?

С такой логикой вообще любою ОС можно считать оболочкой для MS-DOS.

Простой пример - широко известная программа MHDD [...] Так что ж, эта программа теперь - ОС, по вашему критерию?

До тех пор, пока она не позволяет запускать другие программы, предоставляя им своё системное API - нет, не ОС.

С такой логикой вообще любою ОС можно считать оболочкой для MS-DOS.

В winnt нет доса, в убунте нет доса, в андроиде нет доса) вообще нигде нет доса, кроме самого доса и семейства вин 1.0 - 3.0 (вин 95-ме - под вопросом).

Вы, видимо, хотели пошутить, но чет не срослось. Шутка не получилась.

До тех пор, пока она не позволяет запускать другие программы,

Перечитайте исходный комментарий, речь шла о другом.

вин 95-ме - под вопросом

Отчего же? Там есть дос, без вопросов.

Модифицированный DOS с интегрированным в io.sys драйвером XMS ЕМНИП

Вот так вот, ВНЕЗАПНО, Операционной Системой стали Dos Navigator, разнообразные DOS-extenders, и IDE

А также - Nero Burning ROM :))))

Dos Navigator

позволяет запускать другие программы, предоставляя им своё системное API

нет, Dos Navigator не представляет свое API другим программам

А GeoWorks, New Deal Office, Breadbox Ensemble имевшие SDK и API теперь тоже ОС?

Понятия не имею что это такое, но оно даже называется GEOS...

GEOS работала только на Commodore 64 и Apple II

PC/GEOS обычно именовалась как GeoWorks, и она являлась графической оболочкой DOS предоставлявшей доступ к своему API

Versions
  • 1990: OS/90 beta version

  • 1990: geoDOS beta version

  • 1990: GeoWorks 1.0

  • 1991: GeoWorks 1.2

  • 1992: GeoWorks 1.2 Pro (with Borland Quattro Pro for DOS with PC/GEOS "Look and Feel")

  • 1992: GeoWorks DTP

  • 1992: GeoWorks CD Manager

  • 1993: GeoWorks Ensemble 2.0 (new kernel PC/GEOS 2.0)

  • 1993: Geopublish 2.0

  • 1994: Geoworks Ensemble 2.01

  • 1996: NewDeal Office 2.2

  • 1996: NewDeal Office 2.5

  • 1996: NewDeal Publish 2.5 shareware version

  • 1997: NewDeal Office 97

  • 1998: NewDeal Office 98

  • 1999: NewDeal Office release 3 (new kernel PC/GEOS 3.0)

  • 1999: NewDeal Office release 3 evaluation

  • 1999: NewDeal Office 3.2

  • 2000: NewDeal Office 3.2d (German patch)

  • 2000: NewDeal Office 2000 (new kernel PC/GEOS 4.0)

  • 2000: NewDeal Office 2000 for GlobalPC [de] (for a Surf´n´Office PC from Ted Turner IV (MyTurn, Inc.) with help from CNN)

  • 2001: BreadBox Ensemble beta version 4.0.1.1

  • 2001: BreadBox Ensemble beta version 4.0.1.x

  • 2002: Breadbox Ensemble beta version 4.0.2.0

  • 2005–March: Breadbox Ensemble version 4.1.0.0

  • 2005–November: Breadbox Ensemble version 4.1.2.0

  • 2009–August: Breadbox Ensemble version 4.1.3.0

Под дос большинство программ работали с вызовами дос. В той части, которая относилась именно к дисковой операционной системе. Ну вот не надо никому обращаться к 13-му (к 13-му?) прерыванию и разбираться с тонкостями работы каждого винта. Есть 21 прерывание и стандартные функции дос, их и использовали.

Да, графика, звук - здесь средств доса не хватало. Игрушки, всяческая графика - через свои драйвера.

Да, специализированные утилиты для работы с диском работали с ним напрямую. Но это далеко не весь софт.

Я вам открою, быть может, секрет, но с виндой 95 это тоже возможно. Я имею в виду - отключить автостарт винды из MS-DOS 7.xx, а также реализовать возврат обратно в дос после завершения работы (когда на экране надпись "теперь питание компьютера можно отключить").

Не секрет. Так и что теперь, Windows 9x тоже не системы, а оболочки ? )

Да. Безумно разросшиеся, и — по сложности — давно превзошедшие реальную ОС, без которой они не могут запуститься, но все еще оболочки.

Ну тогда любая ОС — это оболочка для EFI, так?

Ну, тогда Ubuntu - оболочка для LILO/GRUB.

Но все-таки логичнее считать, что DOS - всего лишь системный загрузчик для Windows Classic

Приведите пример ОС возвращающей управление загрузчику после своего завершения?

Это действительно странно для ОС, однако делается довольно просто. При сильном желании можно добавить подобную функциональность в ядро linux.

Может ли ОС стать не-ОС от добавления функциональности?

Троллебусизбуханки.JPG

Для этого Win16 нужно стать самостоятельной ОС не требующей для своей работы другую ОС.

А Win16 не могла работать самостоятельно в отрыве от DOS, что и отображено в её сообщениях об ошибках "Отсутствует HIMEM.SYS; Убедитесь, что этот файл находится в Вашем каталоге Windows и что его местонахождение правильно указано в Вашем файле CONFIG.SYS", плюсом к этому идут сообщения что "Нужна MS-DOS версии 3.30 или выше", а так же "Недостаточно обычной памяти для запуска Windows. Переконфигурируйте Вашу систему для увеличения доступной памяти и попробуйте еще раз", и ещё "Недостаточно указателей файлов. Увеличьте значение files= в config.sys до 30 и более"

Этого ВСЕГО более чем достаточно, чтобы ОПРЕДЕЛЯТЬ Win16 как оболочку DOS, не способную к самостоятельному существованию.

Это действительно странно для ОС, однако делается довольно просто. При сильном желании можно добавить подобную функциональность в ядро linux.

Так что, когда мы увидим данный сверхважный коммит в ядре linux? ;)

Может ли ОС стать не-ОС от добавления функциональности?

А разве Win16 это операционная система? Это обычное приложение DOS, которое после окончания своей работы освобождает все ранее захваченные ресурсы. Так что, то что вы называете добавление функциональности, на самом деле стандартное поведение ожидаемое от приложения.

Или нужно идти по пути Microsoft в офисе которой сгорела лампочка?

Сколько инженеров по программному обеспечению из компании "Майкрософт" нужно для того, чтобы выкрутить перегоревшую лампочку и закрутить новую?
Нисколько. Они просто определят темноту как индустриальный стандарт.

Так что, когда мы увидим данный сверхважный коммит в ядре linux? ;)

Никогда, в силу его сверхважности

А разве Win16 это операционная система?

А разве я про неё писал?

Драйвера диска и файловой системы. (и то - есть ньюансы скажем так - в некоторых случая эти драйвера - свои).

Вообще - почитайте книжку Unauthorized Windows 95 (русский перевод - Неофициальная Windows 95), там очень подробный разбор что и как. Текст прям на раз ищется (русский вариант правда в djvu обычно), печатные версии разве что по библиотекам офлайновым дожили (там мягкая обложка и не очень хороший переплет).

Система управления памятью своя и формат файлов - ну так у вас тогда и DOS Extender'ы станут "ОС" например

DOS extender'ы не имеют своего формата исполняемых файлов. Но да, они уже намного ближе к операционной системе.

Были extender'ы которые могли PE загружать.

Да ну! А если поискать?

В Windows NT, DOS не было, она изначально использовала NTFS в качестве файловой системы, а ДОС ее не видит вообще, и ветка NT развивалась своей жизнью.

Вообще-то на этапе установки Windows NT доступна только одна файловая система - FAT16, преобразование в HPFS/NTFS происходит на втором этапе и по выбору пользователя. И первый запуск инсталляции Windows NT происходит из-под DOS. С этим связана одна особенность - в случае отсутствия himem.sys и smartdrv.exe копирование файлов в папку установки может идти практически бесконечно долго. Что касается DOS, то она не видит любые файловые системы, для которых нет драйверов. Вот в PC DOS 7.1 добавили драйвер FAT32 - и операционная система сразу начала работать с дисками в этом формате, а для NTFS существовали сторонние программы, позволяющие с ней работать.

WinNT не нужен ни Himem.Sys ни smartdrv. Вы её с Wix9x перепутали

Нет, дружок, не перепутал. Один из вариантов установки - запуск из-под DOS командой winnt. HIMEM.SYS нужна для драйвера кэширования дисков SMARTDRV.EXE. При отсутствии кэширования даже на современной системе у вас терпения не хватит дождаться окончания копирования файлов из дистрибутива в папку установки. И только после окончания этого процесса начнётся установка. Конечно, можно сделать набор установочных дискет командой winnt /b, но ни в 1990-х, ни сейчас это не актуально. Есть ещё загрузочные дистрибутивы NT 4.0, где инсталляция начинается сразу с CD-ROM.

Виноват, winnt /ox - создание загрузочных дискет, winnt /b - это как раз установка без дискет

Нет, таки перепутали. Хаймем и смартдрайв нужны только на этапе установки из под доса.

А он что, написал что-то другое? Вы сейчас с чем вообще спорите?

И первый запуск инсталляции Windows NT происходит из-под DOS.

Не всякий BIOS умел грузится с CDROM, так что первый этап запускался именно с загрузочных дискет, которая подготавливала второй этап установки с CD диска.

И ещё, человека устанавливавшего OS/2 с дискет, не напугать установкой с дискет WinNT 8P

Только загрузочную дискету DOS сделать легче, чем 3 дискеты Windows NT. И меня всегда удивлял этот избыточный шаг. Нужна была загрузочная дискета DOS, чтобы создать 3 загрузочные дискеты NT, чтобы загрузиться для установки с CD-ROM. В своей практике я свёл число телодвижений к минимуму - создавал загрузочный том DOS на HDD, копировал на него дистрибутив, запускал инсталляцию с него. Если много одинаковых машин, пользовался программами для снятия образа жёсткого диска. Если что, я админ с 30-летним стажем... И вы мне будете рассказывать, как грузится и ставится винда.

Только загрузочную дискету DOS сделать легче, чем 3 дискеты Windows NT. И меня всегда удивлял этот избыточный шаг.

Вот только загружаясь у этих трех дискет, ты мог устанавливать её с установочного CD, не тратя время на установку DOS, конфигурирование DOS чтобы он видел CD, потом копирование каталога установки на раздел FAT16, ведь NT4 не понимал ничего другого во время установки. И да, поддержка FAT32 отсутствовала "искаропки" организовывалась сторонними программами. Причем загружаться NT4 умела только с FA16 или NTFS.

В своей практике я свёл число телодвижений к минимуму - создавал загрузочный том DOS на HDD, копировал на него дистрибутив, запускал инсталляцию с него. Если много одинаковых машин, пользовался программами для снятия образа жёсткого диска.

Т.е. вы заморочились заранее, сделали кучу телодвижений "до того как" и говорите что легче создать всего лишь одну загрузочную дискету? ;) У вас странные понятия о "легче" ;)

Если много одинаковых машин, пользовался программами для снятия образа жёсткого диска.

Если так много одинаковых машин, то проще их завязать в сетку, в сетевушки воткнуть с bootrom, подцепить к серваку, на сервак закинуть образы снятые с уже настроенных машин и восстанавливать их по щелчку пальцев админа?

«Лучше день потерять, а потом за пять минут долететь!»

Если что, я админ с 30-летним стажем...

Верю дружок, верю: "Я Баба Яга в шестом поколении!" ;))

Первичные половые признаки админа присутствуют? В смысле борода, свитер и бубен? :)

И вы мне будете рассказывать, как грузится и ставится винда.

И когда вы последний раз устанавливали/переустанавливали NT4 Workstation или NT4 Server? Лет 20-25 назад? :)

Вот только загружаясь у этих трех дискет, ты мог устанавливать её с установочного CD, не тратя время на установку DOS, конфигурирование DOS чтобы он видел CD, потом копирование каталога установки на раздел FAT16, ведь NT4 не понимал ничего другого во время установки. И да, поддержка FAT32 отсутствовала "искаропки" организовывалась сторонними программами. Причем загружаться NT4 умела только с FA16 или NTFS.

Нет, как ленивое существо, я для себя вывел такую формулу. В конце концов, досовская дискета создаётся один раз , а с 3-мя дискетами надо шевелиться 3 раза. :))) На счёт FAT32 не понял, я где-то говорил, что она поддерживалась "искаропки"?! Про утилиты Winternals для поддержки FAT32 под NT4, равно как и NTFS под DOS, я ещё помню. А, да, наша милая NT4 ещё и дефрагментатора не имела, поэтому сразу после инсталляции на слабых машинах еле ворочалась.

Если так много одинаковых машин, то проще их завязать в сетку, в сетевушки воткнуть с bootrom, подцепить к серваку, на сервак закинуть образы снятые с уже настроенных машин и восстанавливать их по щелчку пальцев админа?

Это действует только если все машинки находятся в сети. К тому же, если мне склероз не изменяет, в 1996-1998 годах с bootrom были какие-то сложности. Не всегда это прокатывало, хотя, в мануалах по самой NT была возможность и сетевой установки, и заливать образ системы удалённо тоже можно было, только потом надо было разбираться с SID-ами, чтобы не было конфликтов.

И когда вы последний раз устанавливали/переустанавливали NT4 Workstation или NT4 Server? Лет 20-25 назад? :)

Да, примерно так. В 2003 году рабстанцию переставлял, серваки к тому времени уже все 2000-е были, ради эксперимента кое-где начали появляться 2003-и. А в виртуалке я по NT4 до сих пор ностальгирую :)

Первичные половые признаки админа присутствуют? В смысле борода, свитер и бубен? :)

Свитер и бубен, да, ещё пивное пузо от благодарных пользователей :) Бороды нет - растёт хреново, в отличие от пуза :)))

И да, поддержка FAT32 отсутствовала "искаропки" организовывалась сторонними программами. Причем загружаться NT4 умела только с FA16 или NTFS.

А, я понял, это как бы намёк на то, что якобы с этих 3-х дискет можно было сразу форматировать системный том в NTFS. Таки нет. Сначала всё равно NT4 создавала раздел FAT16, причём его объём был ограничен 4 ГБ за счёт большого кластера в 64 кБ. И только потом преобразовывала FAT16 в NTFS.

Т.е. вы заморочились заранее, сделали кучу телодвижений "до того как" и говорите что легче создать всего лишь одну загрузочную дискету? ;) У вас странные понятия о "легче" ;)

Признаю, мсье знал толк в извращениях. Но манипулировать тремя дисками ему было откровенно лень. Мсье даже искал способ, как загрузиться с Zip, скинув туда содержимое этих трёх дискет. Не прижилось только потому что не все компы шли с Iomega ZIP.

С этим связана одна особенность - в случае отсутствия himem.sys и smartdrv.exe копирование файлов в папку установки может идти практически бесконечно долго.

Ну не бесконечно долго, но долго. Первые пару раз я ставил NT4.0 именно так, потом уже чуть подучил матчасть и узнал, что есть не просто smartdrv, а smartdrv c+ :)

тогда что такое MacOS, самостоятельная ОС или оболочка над FreeBSD? По сути она куда более базируется над Unix, чем 3.11 над досом, там буквально для чего не сделали кнопку - надо лезть в консоль напрямую, а юникс там не просто так, для совместимости со старым софтом

MacOS это самостоятельная ОС, от фри там реально довольно небольшой кусок

если уж на то пошло, макос это скорее NeXTSTEP чем фря

Вы немного путаете. MacOS не запускает FreeBSD для себя. Она использует часть кода BSD в ядре. Является в чем-то ее наследником.

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

Ну так и Win95, о чем изначально шла речь в треде, не является оболочкой над досом.

Сколько людей, столько и мнений.

Игнорируя техническую сторону вопроса, мне всегда нравились TUI инсталляторы. Я точно знал, что кило/мега/гигабайты памяти и CPU не тратятся на отрисовку красоты и могут быть задействованы работе.

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

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

В то время оно было не целиком картинками, а кусочками и довольно компактными. На фоне общего объёма того же windows 95 - довольно мало.

то что я вижу тут на картинке инсталлятора - почти наверняка 16-цветное, то есть 2 пикселя на байт даже без сжатия. И почти наверняка с RLE кодированием (которое тут будет хорошо работать, потому что есть большие куски сплошных цветов).

И сколько по вашему это занимает?

А ещё у нас в инсталляторе появляется обслуживающий графику код и драйвера карты. То есть, фактически, помимо графики нужно загрузить в память и урезанную версию windows 3.1

Драйвера не нужны - инсталлятор работает в стандартном VGA режиме 640x480x16 цветов.

Десятки килобайт максимум.

Драйвер, на самом деле не особо большой (посмотрел в win3.11 - там 70 килобайт vga-драйвер вроде + шрифты).

castle.bmp (32x32 картинка в .bmp формате из win3.11 - 760 байт) и т.д.

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

Различные кнопки и другие UI-элементы чаще всего отрисовывались просто геометрическими примитивами. До сих пор помню, как в старых версиях Windows через реестр можно было подкрутить цвета света и тени кнопок и тем самым поменять им стиль рамки.

у меня еще долго бомбило от текстового инсталлера NT ...который сравнивая с 95 и особенно с 98 выглядит крайне старомодно на...и это тянулось аж до XP включительно

А что, если я скажу, что мне больше нравился и сильно нравился именно текстовый вариант?

Вы наверное из тех людей, кто молится на циферные спидометры и сенсорные кнопки на панели управления, а стрелочные приборы (которые считываются периферическим зрением) и физические осязаемые кнопки и крутилочки (которыми можно управлять вслепую) считаете старомодными?

Вы наверное из тех людей, кто молится на циферные спидометры и сенсорные кнопки на панели управления

а вот как раз тут я категорически консервативен и буду молится на физические стрелки и кнопки до конца ;) потому что их юзабилити сильно выше

но в случае с инсталлером винды, если вы вспомните сколько всего надо было настраивать при установке 95 версии, если это сделать в текстовом виде, то это у человека неискушенного просто кукушка поедет, листать списки значений по 30-50 элементов, да еще доустанавливать драйвера в процессе...в винде кстати там даже справка была доступна которую полистать можно было, есть справка в текстовых инсталлерах?

я вот например помню мозголомный способ установки драйверов в NT/2k/XP на рейд контроллеры и прочие сидиромы..если в NT он хоть и предлагает их выбирать (здоровенный список в котором помоему не все влезает в экран в ширину)..то в XP это "упростили" и там надо всякие кнопочки жать успевая прочитать подсказку внизу

==

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

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

Здесь они, хотя бы, запускаются и работают последовательно.

А вот при использовании Windows 3.11 (которую еще ошибочно называют "оболочкой для доса") на 32-битном процессоре, там фактически одновременно работало сразу три операционных системы.

Win16 была графической надстройкой над DOS и не могла работать без загруженного DOS драйвера XMS

Это никак не противоречит тому, что написал я и что написано по ссылке.

В Enhanced Mode (а скорее всего и в Standard Mode тоже) досовский HIMEM.SYS требовался только для запуска, а по факту дальше вообще не использовался. Да и для запуска он требовался, скорее всего, только для сохранения обратной совместимости с софтом, который юзер мог напихать в autoexec.bat и запустить до момента запуска Винды, типа Stacker'а, и для взаимодействия с ними досовского софта запущенного уже из Винды - поэтому во время старта винда просто дергала функцию HIMEM'а, аллоцируя в нем всю оставшуюся доступную память для себя (HIMEM тут как раз нужен чтобы при этом не трогать то, что уже могло быть аллоцированно другим софтом до этого момента), а дальше управляла ей самостоятельно.

Одного факта присутствия HIMEM'а (который даже там почти и не использовался) не достаточно, чтобы называть систему "оболочкой". По факту же, в enhanced mode Windows 3.1 и дальше уже имели 32-разрядное ядро-гипервизор, в котором запускались виртуальные машины (в одной VM работали Win16 и Win32s приложения, плюс на каждую DOS-программу создавалось по отдельной виртуалке с DOS), свои 32-разрядные драйвера файловой системы (не использовавшие вызовы DOS), 32-разрядные драйвера дисковой системы (не использовавший вызовы BIOS), и т.д.

Поэтому в Windows 3.1 на 386 и выше можно было запускать сразу несколько DOS-программ в окнах (без захвата целого экрана) с вытесняющей (!) многозадачностью между ними и возможностью скидывать их в своп. Ни одна из "оболочек" такое не умела и уметь не могла.

DOS же там служил только загрузчиком, плюс использовалось очень небольшое количество его API, да и то, их продолжали дергать ровно по той же причине, что и в Windows 95/98/ME - потому что переписывание их заново не давало особых бенефитов, зачем тратить время и трогать то, что и так работает.

Это никак не противоречит тому, что написал я и что написано по ссылке.

Если Win16 бы не требовала для работы загруженного драйвера XMS, то ваш высказывание "(которую еще ошибочно называют "оболочкой для доса")" имело бы право на существование. А так увы и ах, Win16 всего лишь GUI требующий для своей работы настроенную среду DOS.

Я в том же комментарии, который вы процитировали, подробно расписал, почему мое высказывание не то что имеет право на существование, а является объективным фактом.

Вы можете сколько угодно фантазировать свои определения и критерии, но давайте все-таки пользовать общепринятыми понятиями. Можете открыть академический учебник того же Танненбаума по операционным системам, и прочитать там первую главу, которая как раз и посвящена определению того, что является операционной системой. Windows 3.11 в enhanced mode целиком и полностью удовлетворяет всем этим критериям.

Кстати, а Windows 95/98 - это, по-вашему, тоже лишь оболочки?

Я в том же комментарии, который вы процитировали, подробно расписал, почему мое высказывание не то что имеет право на существование, а является объективным фактом.

В этом мире можно бесконечно наблюдать за тремя вещами, как горит огонь, как течет вода и как свидетели секты "Win16 - это операционная система!" с маниакальным упорством доказывают то, что сама Microsoft никогда не называла Win16 это ОС. Так ваш объективный факт ложь.

В Enhanced Mode (а скорее всего и в Standard Mode тоже) досовский HIMEM.SYS требовался только для запуска, а по факту дальше вообще не использовался.

По факту вы не знаете, что Himem.sys являлся менеджером памяти XMS для всех правоверных приложений DOS, которым являлся Win16, которую эти приложения освобождали по завершению своей работы, и возвращали управления командному процессору DOS. Ой, а вы что реально не знали, что Win16 при завершении своей работы передавал управление DOS, а не завершал работу ПК? 8D

Да и для запуска он требовался, скорее всего, только для сохранения обратной совместимости с софтом,

С каким таким софтом? Какая такая обратная совместимость? Win16 с точки зрения DOS был обычным приложением. Ничем не отличавшихся от мириад других. Да, там были неконкурентные преимущества, в виде использования недокументированных возможностей DOS, но кто мы такие чтобы критиковать Microsoft?. ;)

который юзер мог напихать в autoexec.bat и запустить до момента запуска Винды, типа Stacker'а,

Всё "понапиханное" в Config.sys и autoexec.bat и формировало среду в которой и запускались DOS приложения, к коим и относился Win16. И до DOS 6, конфигурирование этой среды было не тривиальной задачей, ибо зависший при старте драйвер превращал ПК в тыкву, и требовал наличия у пользователя загрузочной дискеты. ;) И чем тут могла помочь "ОС" Win16? Да ничем, она была обычным DOS приложением, требовавшим для запуска вполне определенно настроенное DOS окружение. А Stacker, это не всегда драйвер DOS, а иногда вполне реальная железка в виде карты расширения требовавших аппаратных ресурсов. Но вы об этом наверное и не слышали. ;)

и для взаимодействия с ними досовского софта запущенного уже из Винды - поэтому во время старта винда просто дергала функцию HIMEM'а, аллоцируя в нем всю оставшуюся доступную память для себя (HIMEM тут как раз нужен чтобы при этом не трогать то, что уже могло быть аллоцированно другим софтом до этого момента),

DOS приложение запущенное из под Win16? А какой в этом смысл? Только от безысходности. Ведь все ресурсы уже получила Win16.

а дальше управляла ей самостоятельно.

Неожиданно, DOOM/QUAKE делали тоже самое, брали весь доступный им объём памяти и управляли им - они от этого стали ОС?

Одного факта присутствия HIMEM'а (который даже там почти и не использовался) не достаточно, чтобы называть систему "оболочкой".

Достаточно того что Win16 ТРЕБОВАЛА этого драйвера и отказывала запускаться без него "Отсутствует HIMEM.SYS; Убедитесь, что этот файл находится в Вашем каталоге Windows и что его местонахождение правильно указано в Вашем файле CONFIG.SYS", плюсом к этому идут сообщения что "Нужна MS-DOS версии 3.30 или выше", а так же "Недостаточно обычной памяти для запуска Windows. Переконфигурируйте Вашу систему для увеличения доступной памяти и попробуйте еще раз", и ещё "Недостаточно указателей файлов. Увеличьте значение files= в config.sys до 30 и более"

Этого ВСЕГО более чем достаточно, чтобы ОПРЕДЕЛЯТЬ Win16 как оболочку DOS, не способную к самостоятельному существованию.

По факту же, в enhanced mode Windows 3.1 и дальше уже имели 32-разрядное ядро-гипервизор, в котором запускались виртуальные машины (в одной VM работали Win16 и Win32s приложения, плюс на каждую DOS-программу создавалось по отдельной виртуалке с DOS), свои 32-разрядные драйвера файловой системы (не использовавшие вызовы DOS), 32-разрядные драйвера дисковой системы (не использовавший вызовы BIOS), и т.д.

Поэтому в Windows 3.1 на 386 и выше можно было запускать сразу несколько DOS-программ в окнах (без захвата целого экрана) с вытесняющей (!) многозадачностью между ними и возможностью скидывать их в своп. Ни одна из "оболочек" такое не умела и уметь не могла.

Которое благополучно висло при зависании любого Win16 приложения, не виртуализировало DOS среду где любое DOS приложение обращавшиеся к графике требовало полноэкранного режима, с ненулевой вероятностью отлёта Win16, если это приложение использовало расширенные возможности VESA графики.

И ещё, когда вы дискетку форматируете в Win16, что делает этот цирк на колёсах? 8Р

DOS же там служил только загрузчиком, плюс использовалось очень небольшое количество его API,

Ага, значит у вас DOS это "загрузчик"? Так почему, Win16 по своему завершению передавало управление "загрузчику"? В какой операционной системе такое происходит? Linux по своему завершению передает управление GRUB? Или WinNT завершая работу передает управление NTLDR? Извините но, что вы курите известно, вот что вы курите - не известно. ;)

да и то, их продолжали дергать ровно по той же причине, что и в Windows 95/98/ME - потому что переписывание их заново не давало особых бенефитов, зачем тратить время и трогать то, что и так работает.

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

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

Так приведите эти общепринятые понятия, в которых приложение конкретно требующее определенной версии ОС, настроенного окружения этой ОС, внезапно становится ОС не вытесняя собой первоначальную ОС, а по окончанию своей работы освобождающую захваченные ей ресурсы и передающёй управление первоначальной ОС.

И прошу вас, прямо таки умоляю, перестаньте натягивать прилюдно сову на глобус, вас могут увидеть дети и получить травму психики! 8D

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

Цитата из первой главы "Дать точное определение операционной системы довольно трудно."

Windows 3.11 в enhanced mode целиком и полностью удовлетворяет всем этим критериям.

Каким ВСЕМ ЭТИМ критериям?
Цитата из первой главы Танненбаума: "Когда корпорация Microsoft решила создать преемника MS-DOS, она была под большим впечатлением от успеха Macintosh. В результате появилась основанная на применении графического интерфейса пользователя система под названием Windows, первоначально являвшаяся надстройкой над MS-DOS (то есть она больше была похожа на оболочку, чем на настоящую операционную систему). На протяжении примерно 10 лет, с 1985 по 1995 год, Windows была просто графической оболочкой, работавшей поверх MS-DOS."

Ещё цитата "Windows 3.0 не была настоящей операционной системой — это была графическая среда, работавшая поверх системы MS-DOS, которая по-прежнему управляла компьютером и файловой системой. Все программы работали в одном адресном пространстве, и ошибка в любой из них могла привести к остановке всей системы. "

Вы точно Танненбаума читали или просто фалломорфировали? Или теперь "Войско взбунтовалось, говорят царь Танненбаум ненастоящий!"?

Кстати, а Windows 95/98 - это, по-вашему, тоже лишь оболочки?

"Вы престали пить коньяк по утрам? Отвечайте односложно - Да или Нет!" 8D

Цитата из Танненбаума "В августе 1995 года была выпущена Windows 95. Она имела многие функциональные возможности полноценной операционной системы (моё примечание: но не все возможности), в том числе виртуальную память, управление процессами, многозадачный режим, а также ввела 32-битные интерфейсы программирования. Однако ей не хватало безопасности, а также изоляции приложений друг от друга и от операционной системы. Поэтому проблемы со стабильностью остались даже после выпуска Windows 98 и Windows Me, в сердце которых по-прежнему работал 16-битный ассемблерный код операционной системы MS-DOS."

Самое интересное, что вытесняющая многозадачность в 3.1/3.11 была с сюрпризом - любое зависшее DOS приложение (выполняющее бесконечный цикл) вешало всю ОС целиком. Это свойственно скорее кооперативной многозадачности.

Частично проблему устранили в Win95 (уж не OSR2 ли? не помню уже), но окончательно её решили только переходом на ядро NT.

Это свойственно скорее кооперативной многозадачности.

Дык, в Win3.x была именно кооперативная многозадачность. А вытесняющей не было, совсем. В свое время (примерно 90-92-й годы) именно наличие вытесняющей многозадачности считалось ключевым козырем для ОС семейства Unix на ПК (в ОS/2 многозадачность тоже была, в целом, кооперативная, а Windows NT тогда ещё не было), который позволит этим ОС захватить рынок ПК. Но случилось страшное: оперативная память резко подорожала и ОС с вытесняющей многозадачностью, которым памяти требовалось много, для массовых ПК оказались неподходящимим (и WinNT - тоже).
Вытесняющая многозадачность формально появилась в Win95 и только для 32-бит приложений. А поскольку графическая подсистема в Win9x оставалась, в основном, 16-битной, и в ней многозадачность была кооперативной, воспользоваться вытесняющей многозадачностью в них было сложно.

А вытесняющей не было, совсем

В Enhanced mode была, только не для Win-программ, а между Win и DOS сессиями.

А, конкретно вы, оказывается, об этом?
Однако я не помню, чтобы DOS-программы как-то влияли на графические программы WIndows в в этом режиме, потому так и отписал предыддущему комментатору.

в ОS/2 многозадачность тоже была, в целом, кооперативная

Только в первых версиях (которые были 16 бит). В Варпе уже точно вытесняющая. Возможно, что в 2.10 уже тоже.

В варпе была, причём очень качественная. Сколько мы потратили с приятелями времени на то, чтобы её повесить... причём DOS программы работали либо полностью, либо с какими-то не особо существенными ограничениями (деталей уже не помню).

Многие BBS переходили на OS/2 (из тех, у кого железо позволяло и было желание разбираться) именно по этой причине - она была практически неубиваемой. Если память не подводит - можно было даже настоить автоубивание подвисшего мейлера и его перезапуск, чего в Win сделать было нельзя.

В Linux было всё тоже самое, но порог входа значительно выше, плюс совместимости с привычными DOS программами не было.

Жаль, что OS/2 закончилась на мерлине и умерла ;(

В Linux было всё тоже самое

Во времена актуальности OS/2, чтобы ставит Linux нужно было быть большим энтузиастом, для всех остальных была BSD

Ага, но не совсем. Там чуть сложнее.

Win16 с самых первых версий основывались на кооперативной многозадачности. Приложение в своем основном цикле (event loop) должно было регулярно дергать один из двух методов (GetMessage/PeekMessage), и когда в очереди не оставалось сообщений, управление передавалось другому процессу. Соответственно подвисшая или криво написанная программа могла легко заблокировать всю систему.

А в Real Mode и Standard Mode Windows при запуске DOS'овских программ система вообще по сути дела становилась однозадачной.

Зато в Enhanced Mode все стало гораздо веселее. Там было ядро-гипервизор, управляющее виртуальными машинами. Для каждой DOS'овской программы уже создавалась отдельная VM (так называемый virtual 8086 mode). А в самой первой виртуальной машине запускалась всё то же Standard Mode ядро Windows, и в ней работали все Windows-программы. Поскольку они работали в одной общей виртуальной машине, там именно для Win16 аппок была все так же кооперативная многозадачность со всеми вытекающими, не смотря на то что, и между виртуалками VMM делал уже кооперативную многозадачность.

Почему сделали так - скорее всего просто не успевали сделать по-другому, а возможно еще ресурсы экономили. Более-менее по-нормальному сделали уже в Windows 95 (но и там были проблемы из-за необходимости обратной совместимости с кучей старого 16-битным кодом).

Кстати, это различие в архитектурах хорошо заметно по ограничения Win32s - оно могло запускать программы использующие Win32 API (Windows NT, Windows 95) на Windows 3.11, но при условии, что там не используются треды (потому что в Win32 треды не требуют никакого yield'а, а кооперативная многозадачность наоборот требует), и при условии что там в бинаре есть relocation tables - потому что в Win95/NT каждый процесс имеет свое адресное пространство и может работать с фиксированными адресами, а в Win16 все виндовые приложения крутятся в одной VM и имеют общую память, там так нельзя.

Дополню, что в Вин95 при зависании одной досовской программы, вешались и остальные открытые ДОС-окна.

Ваше дополнение было бы ещё более веским, если бы вы указали, что для DOS-окон было общее системное адресное пространство, потому и крашилось сразу всё.

Справедливости ради, это была не сколько проблема Windows 95, а проблема необходимости поддерживать обратную совместимость помноженную на проблему кривых BIOS'ов, которую Windows пыталась обойти всеми способами.

а проблема необходимости поддерживать обратную совместимость помноженную на проблему кривых BIOS'ов,

На которых OS/2 форматировала и не чихала

Разве кривыми биосами не пытались восстановить работоспособность и обратную совместимость с наследуемой из начала 1980-х ошибкой в железе контроллера?

Ядро NT существовало параллельно ядру 16/32, чтобы переманить пользователей на него потребовало много работы по обеспечению совместимости с DOS. Первая удачная попытка - Windows 2000, за которой последовала Windows XP. Но проблемы совместимости полностью преодолеть так и не удалось.

Я это и имел в виду, про переход на NT в пользовательском сегменте.

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

Насколько помню, первой распространяемой версией была Windows NT 3.1 - результат отказа от сотрудничества MS и IBM над OS/2. И я бы не сказал, что интерфейс там сильно отставал от 16/32. С 3.1 по 3.51 интерфейс был от Windows 3.1, в NT4.0 - Windows 95, Windows 2000 (NT5.0) сама задала интерфейс Windows ME. В СНГ в это время (1993-1995) был парк компьютеров, состоящий в лучшем случае из 486-х. Так что, для нас Windows NT долгое время была экзотикой. За рубежом же, в корпоративном секторе сочетание Windows NT Server/Workstation удивления уже не вызывало, хотя Unix долгое время доминировал в больших компаниях. Так что, в прошлом году Windows NT тихо отметила свой юбилей, т.к. первые версии прошли для подавляющего большинства пользователей незаметно.

А насколько я помню, Windows NT 3.1 была не просто первой распространяемой версией, а вообще первой версией.

а вообще первой версией.

первый версией с этим названием, до этого она называлась Microsoft OS/2

OS/2 New Technology

А насколько я помню, Windows NT 3.1 была не просто первой распространяемой версией, а вообще первой версией.

Хорошо хоть кто-то из нас в трезвом уме и здравой памяти 🤣

32-разрядное ядро-гипервизор

Нет, там даже к полуоси ничего близкого не было

виртуальные машины

сегментация ≠ виртуализация
виртуализация (отдельных ресурсов) ≠ VM

на каждую DOS-программу создавалось по отдельной виртуалке с DOS

V86 — и близко не VM

вытесняющей многозадачностью

Кооперативной. Вытесняющая архитектурно появляется только в 95 и NT

Рассуждая о платформе Win16 вы, похоже, почему-то, говорите о позднем порте Win32s, и мешаете в кучу свойства совершенно разные вещи

Кооперативной. Вытесняющая архитектурно появляется только в 95 и NT

Как вообще кооперативная многозадачность может работать в старых приложениях для DOS? Любая эмуляция DOS может быть только вытесняющей.

Потому что V86 — это виртуализация только и исключительно адресного пространства.
При этом все внешние вызовы — эмулируются средой, которая пространство V86 создала. Это обычный Ring 3 i386 Task, с TSS, ловушками прерываний, страницами и прочим — и в нем регулярно выполняется переключение контекста с обработчиками защищенного режима.
При этом, опять же, аппаратное прерывание (например, движение мыши) снова приведет к переключению контекста.

Вы сейчас на какой-то другой вопрос ответили.

Нет, там даже к полуоси ничего близкого не было

Речь не про полуось, а про то что VMM в Enhanced mode был именно что 32-разрядный

виртуализация (отдельных ресурсов) ≠ VM

я использую официальную терминологию от разработчиков системы

Кооперативной

Внутри Win16 подсистемы - да. А внутри VMM был именно preemptive multitasking, в том числе между DOS-сессиями. Потому что для DOS-сессий вы cooperative и не сделаете, они не вызывают никакого yield внутри себя. Поэтому до Enhanced Mode в винде вообще нельзя было запустить сразу две DOS-программы, пока не появился нормальный планировщик в ядре.

похоже, почему-то, говорите о позднем порте Win32s

Все, что я говорю, вообще никакого отношения к Win32s не имеет и абсолютно справедливо для систем где его не было.

Я вам то же самое посоветую, разберитесь сначала в вопросе, прежде чем комментарии писать. Вы скорее всего путаете Standard Mode и Enhanced Mode ядра Windows 3.1x. Начать можете со статьи, на которую здесь уже была ссылка, а потом при желании продолжить гуглить как работал 386 Enhanced Mode в винде.

Win16 была графической надстройкой над DOS и не могла работать без загруженного DOS драйвера XMS

Неправда. Лично у меня Windows 3.1 в стандартном режиме в первой половине 90-х работала без HIMEM.SYS. Это была машина с весьма большим на тот момент объемом памяти 16 МБ, использовавшаяся параллельно и для моделирования некого физического процесса (который, думаю, не интересна тут никому), и для обычной для ПК работы. На нем стояла DeskView, которая умела запускать несколько виртуальных DOS-машин в режиме v86. D одной из машин шло моделирование, а другая использовалась для обычной работы (а третья - для Цивилизации ;-) ). Pапускалось все это из DOS, в которой менеджером памяти был QEMM, совместимый с DESQView (один производитель - Quaterdeck). Но вот расширенный режим Windows (который, начиная с Win95 стал единственным в WIndows) с DESQView работать не умел, это да.

PS А вообще, если кому-то ещё интересны все эти разборки тридцатилетней давности про оболочку, рекомендую найти книгу Эндрю Шульман "Неофициальная Windows 95": там эти вопросы о сущности Windows хорошо разобраны.

для моделирования некого физического процесса (который, думаю, не интересна тут никому)

Ну почему же, мне интересны всевозможные программы моделирования, начиная с электроники, прочностных расчётов и заканчивая газодинамикой. К сожалению, сейчас это перешло в разряд экзотики, а вместе с этим утрачивается целый пласт истории ИТ.

Неправда. Лично у меня Windows 3.1 в стандартном режиме в первой половине 90-х работала без HIMEM.SYS.

Вы внимательно читали то что я писал? Я писал о драйвере DOS XMS памяти, а о конкретной реализации не упоминал. Himem.sys не был единственным драйвером XMS для DOS. Он был самым распространенным т.к. входил в состав DOS начиная с пятой версии, также он поставлялся вместе с Windows 3.xx

QEMM386 же в одном лице заменял собой и Himem и EMM386

Но вот расширенный режим Windows (который, начиная с Win95 стал единственным в WIndows) с DESQView работать не умел, это да.

Расширенный режим Win3.xx стал единственным с WfWG3.11 ЕМНИП

PS А вообще, если кому-то ещё интересны все эти разборки тридцатилетней давности про оболочку

Так что поделать, если спустя тридцать лет регулярно появляются сектанты "Свидетели Иеговы что Win16 это ОС, а DOS это всего лишь её загрузчик", которые маниакально пытаются доказать что они "святее папы римского Билла наше всё Гейтса" и то что Microsoft оказывается ошибался называя свою "операционную систему Windows 3.xx" всего лишь графической оболочкой DOS.

Самое смешное, что в те времена первой половины 90-х, любая наиблондинистая секретутка или пергидрольная бухгалтерша знали что Windows это такая же оболочка, как Norton Commander, над этим страшно ужасным DOS-ом, с черным-черным экраном и белыми-белыми буквами.

Вы еще скажите что Windows 3.0 не могла на PC XT работать -:).

Могла, но только в качестве исполнения приговора народного суда ;)

Кмк из пальца высасано. Gui имеет опосредованное отношение к разрядности ос. Да и кому же для установки win 95 поверх 3.1 не нужна 3.1. То есть в порядке вещей установщик мог выйти из win3.1 и запустить свое ядро. К слову говоря win 3.1 это не ос, а оболочка. Ос для win3.1 был дос.

Это рассказ Реймонда Чена, сотрудника Microsoft, который 30 лет непосредственно занимался разработкой Windows.

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

Спасибо, исправил. Забыл при публикации указать автора

Видимо, что-то пошло не так? В посте по-прежнему нет ссылки на оригинал

А теперь видно?

Gui имеет опосредованное отношение к разрядности ос.

Да? Ну попробуйте запустить гуй с Windows 95 на 16-битной Windows 3.1 :-)

для установки win 95 поверх 3.1 не нужна 3.1

Вы имеете в виду мини версию? Попробуйте прочитать ещё раз.

Вторая программа-установщик запускается как 16-битная программа Windows или в миниатюрной копии Windows 3.1 (если пользователь выполняет апгрейд с MS-DOS), или в реальной копии Windows 3.1 (если пользователь апгрейдится с Windows 3.1)

Ос для win3.1 был дос.

Ну давайте, запустите ещё и гуёвую программу Win3.1 под голым досом ;-)

В 93-м когда игрались с Чикаго, был полноценный установщик который по сути мигрировал в вин95. При этом интерфейс того билда Чикаго не сильно отличался от win3.1. по сути это был win3.11+win32s+некое подобие кнопки старт и таскбара.

Реальная причина - ос доделали а установщик оставили со старым gui так как горят дедлайны. Естественно project manager это все обоснует как надо, а через 30 лет вытащит и черканет умную статью.

так как горят дедлайн

До того, как начать читать дальше заголовка, я так и думал. Так оно и вышло.

дедлайн

Да, он такой...

К слову говоря win 3.1 это не ос, а оболочка. Ос для win3.1 был дос.

Нет, это не так. Прочитайте хотя бы определение операционной системы в Википедии, посмотрите, сколько всего в Win 3.1. было по сравнению с голым DOSом, и сколько на рабочем компьютере функций ОС предоставлялось ДОСом, а сколько - Виндовсом.

Да, для того, чтобы запустить Win 3.1 нужно было сначала загрузить ДОС, она . А для того, чтобы запустить Линукс, нужно сначала загрузить GRUB. Но это не делает Винду оболочкой, а ГРУБ - операционной системой.

Запустите Win16 без загруженного DOS драйвера XMS ;)

Даже в enhanced mode win3.1 отсутствовал memory protection даже для приложений в vm пространстве win. Какой нибудь драйвер или tsr из дос мог спокойно этим воспользоваться. А в real mode вообще могла быть зависимость от дос.

Мало того что загрузить, её ещё купить надо было. Посмотрите на системные требования вин3. Разве может ОС для своей работы требовать другую ОС?

Разве может ОС для своей работы требовать другую ОС?

Вполне.

Некоторые версии Novell Netware тоже запускались из DOS (речь именно про серверную ОС, а не про досовский клиент который был TSR'ом)

Novell Netware ПОЛНОСТЬЮ вытеснял DOS. Обратного пути чтоб попасть в DOS, кроме как через перезагрузку системы не было.

Внезапно да.

Inferno могла запускаться и на голом железе и как приложение в Plan 9 а также во всяких там Windows и прочих Solaris.

Другое дело что оная Inferno выглядит ну очень похоже на JVM.

А еще есть такая шутка которая не совсем шутка про ОС Emacs которая запускается под другими ОС менее совершенными (вот только в ней нет нормального текстового редактора).

win 3.1 это не ос, а оболочка

Тонкий момент на самом деле, если мне не изменяет память, были драйвера, которые работали под Win 3.1, но не работали под голым DOS, так же DOS изначально система для реального режима, а Win 3.1 поддерживает защищенный, добавляет многозадачность. Так что это уже не просто оболочка (то есть не просто GUI для DOS), скорее её можно назвать аддоном к DOS

Не, там все еще сложнее, я выше уже написал:

По факту же, в enhanced mode Windows 3.1 и дальше уже имели 32-разрядное ядро-гипервизор, в котором запускались виртуальные машины (в одной VM работали Win16 и Win32s приложения, плюс на каждую DOS-программу создавалось по отдельной виртуалке с DOS), свои 32-разрядные драйвера файловой системы (не использовавшие вызовы DOS), 32-разрядные драйвера дисковой системы (не использовавшие вызовы BIOS), и т.д.


Поэтому в Windows 3.1 можно было запускать сразу несколько DOS-программ в окнах (без захвата целого экрана) с вытесняющей (!) многозадачностью между ними. Ни одна из оболочек такое не умела и уметь не могла по определению.

И да, с либой Win32s она еще имела возможности запускать Win32-приложения, например, написанные для Windows NT 3.1/3.51, и даже для Windows 95 (если они не использовали некоторые специфичные API и имели relocation tables в бинарнике).

DOS же там служил только загрузчиком, плюс использовалось очень небольшое количество его API, да и то, их продолжали дергать ровно по той же причине, что и в Windows 95/98/ME - потому что переписывание их заново не давало особых бенефитов, зачем тратить время и трогать то, что и так работает.

А вообще забавное было время... Сидишь себе, запускаешь игрушки из Нортона, а потом такой, пишешь - win - Enter! - и начинается магия ))

у меня в те годы был 386 с 16 Мгц и 2 ОЗУ, там была не магия, а полчаса на подождать, а потом miner вис посреди уровня. Но больше всего я мечтал о том чтобы поставить обои на рабочий стол, как у старшего брата двоюродного на Win95, даже подкладывал под защитный экран полупрозрачную рекламку какую-то

под защитный экран

а НАД ним были кактусы, конечно? ))

На тему холивара сверху (ОС/не ОС) - есть прикольный термин "Operating environment" - "The environment consists of a user interface provided by an applications manager and usually an application programming interface (API) to the applications manager. An operating environment is not a full operating system, but is a form of middleware that rests between the OS and the application. "

Тут такое дело, сектанты в попытках доказать Осность Win16 забывают что в этоже время было много других многозадачных оболочек с TUI/GUI имеющих API и SDK. На попытку напомнить им о таком кунштюке они переходят в режим "Вы не понимаете, это другое!"

А давно Windows 3.1/3.11 стало ОС?

Бросил читать как увидел.

Учите мат.часть.

С самого начала ей и была.

Откройте, например, классический учебник профессора Танненбаума по операционным системам и прочитайте там первую главу, где дается определение, что является операционной системой. Внимательно прочитайте. Либо возьмите другие академические книги про ОС - Silberschatz/Galvin/Gagne или Anderson/Dahlin и прочитайте там то же самое в первых главах. Это к вопросу о матчасти.

Более того, вы еще и пишете коммент под статьей инженера из Microsoft, который эту самую ОС и разрабатывал.

Цитата из первой главы Танненбаума: "Когда корпорация Microsoft решила создать преемника MS-DOS, она была под большим впечатлением от успеха Macintosh. В результате появилась основанная на применении графического интерфейса пользователя система под названием Windows, первоначально являвшаяся надстройкой над MS-DOS (то есть она больше была похожа на оболочку, чем на настоящую операционную систему). На протяжении примерно 10 лет, с 1985 по 1995 год, Windows была просто графической оболочкой, работавшей поверх MS-DOS."

Ещё цитата "Windows 3.0 не была настоящей операционной системой — это была графическая среда, работавшая поверх системы MS-DOS, которая по-прежнему управляла компьютером и файловой системой. Все программы работали в одном адресном пространстве, и ошибка в любой из них могла привести к остановке всей системы. "

Я, помнится, будучи ещё школьником, сумел отделить этот preinstallation environment от самого setup.exe, и заменить его на 16-битный тогда ещё Windows Commander.

Всё это вмещалось на один флоппик 1.44мб, и это был совершенно наимоднейший загрузочный флоппик. А самое лютое - оно видело местный же netware, и оттуда можно было даже бинарники запускать. Для обучения тогда использовали Turbo\Borland Pascal для школьников постарше и ИнтАЛ2 для школьников помладше - и то и другое замечательно работало на таких, фактически, бездисковых рабочих станциях.

И делалось всё это без всяких виртуализаций, аппаратных отладчиков и прочих F12 Dev Tools, на 486-м с 16 мб оперативки и диком энтузиазме.

Теперь понятно, почему установив винду с CD-ROM после перезагрузки этот самый CD-ROM пропадал из системы и начинал требовать установки драйвера.

Нет, не поэтому. Такое может произойти даже если устанавливать ОС в один этап средствами исключительно её самой.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории