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

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

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров39K
Всего голосов 68: ↑67 и ↓1+91
Комментарии195

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

прикольно, я реально в то время задумывался почему именно так это устроено было, и отлично помню интерфейс 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 веку памяти на работу с полноценной ОС с вытесняющей многозадачностью и изоляцией памяти процессов стало хватать всем, и прошлые компромисные ОС/оболочки стали неактуальны.

Как-то так.

Вам ещё не надоело вести тут древнюю священную войну против Win3.x (в пользу OS/2, полагаю - тогда священной войной занимались как раз сторонники "полуоси")?

Это не война, это констатация факта что Win16 не ОС, и что она даже обвешанная рюшечками VMM, Win32S, WinG, остается приложением которое требует для своего исполнения настроенную среду DOS. А то что вы воспринимаете эту констатацию факта как holywar означает лишь одно, что для вас эта войне до сих пор не закончилась.

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

Может быть и читал, надо добраться до своей старой библиотеки и проверить.

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

Вот это акробатический трюк с переобуванием в прыжке! Я о гибридной Win9x даже не заикался, речь всегда шла сугубо версиях Win16 ДО Win9X

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

VMM имеет часть черт ОС, но не является ей полностью. Де факто это один из многих расширителей DOS (Dos extender), которые для обеспечения исполнения 32 разрядных приложений в расширенном режиме делают тоже самое.

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

Пардон муа, а как наличие драйверов оборудования у приложения DOS, трансформирует его в операционную систему? Тогда по вашей логике 3DStudio, AutoCAD, QuattroPro, множество DOS игр, с загружаемыми драйверами оборудования приравниваются ОС? На самом деле, во времена DOS наличие драйверов оборудования у приложения было обычной практикой.

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

На самом деле всё что вы описываете является правилом хорошего тона. :) Но в данном случае это была ситуация формата "голь на выдумки хитра" и "китайский цирк умеет делать чудеса!" ;) Что конечно помогло сделать сальто мортале и заставить работать эту конструкцию из палок и ******, но в конце концов и привело к гибели линейки Win9x.

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

"Теоретически сынок мы с тобой миллионеры, а практически - живем под одной крышей с двумя б***дями!"

Win16!=Win9x
Win9x==WinME

Линейку Win9x похоронили чисто по техническим причинам, поскольку изначально костыльная конструкция, перемотанная скотчем и изолентой, использующая хитрые трюки и недокументированные возможности стала преградой на пути совершенствования технических средств ПК. Навскидку можно вспомнить USB и видеокарты.

В частности, вполне можно было бы и пресловутое форматирование дискеты перенести в VXD (перенесли или нет - не в курсе, дискеты к концу 90-х стали как-то для меня неактуальны).

"Ну не шмогла я, не шмогла!" или "Такие взрослые люди, а до сих пор верите в говорящих лошадей!"? ЕМНИП то в какой то момент загрузки Win9x было так хреново с доступной памятью что в качестве переменных использовались регистры FDC. Вроде даже про этот кунштюк была статья на хабре

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

Win16 это приложение DOS. И это факт, а не вопрос терминологии. А то что вы пытаетесь этот факт как то перевернуть, вызывает лишь удивление. ;)

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

Памяти никогда не хватает, ни тогда, ни сейчас. Bloatware всё поглотит. 8)

Как-то так.

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

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

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

Вам напомнить как Win16 продавался в нагрузку с PageMaker и Excel? ;) По вашей логике К WinWord забыли положить и DOS и Win16?

Ну и забыли, в чём противоречие? :) Чем в этом смысле Excel отличается от Word? Это у MS надо спросить. Никто же не возмущается, что вин16 входит в состав инсталлятора вин95 )

В том противоречие что для работы WinWord/Excel и прочих Win16 приложений нужен и DOS, и Win16. И первый и второй продавались ОТДЕЛЬНО. ЕМНИП Microsoft никогда не продавала в нагрузку к DOS - Win16. Так и наоборот, к Win16 они в нагрузку не продавали 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 :))))

И ACDSee, он тоже пытался )

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

Пгастити, в том числе за поздний ответ, но что такое, по вашему, OVL (оверлейные подпрограммы, зародыш современных плагинов) тогда?

Под дос большинство программ работали с вызовами дос. В той части, которая относилась именно к дисковой операционной системе. Ну вот не надо никому обращаться к 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 это операционная система?

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

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

Что и требовалось доказать

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

А разве здесь не Win16 обсуждается?

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

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

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

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

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

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

DOS4GW + Watcom C без особых усилий могли загружать NT DLL. Доводилось использовать такой финт ушами

В 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.

Первый запуск DOS-инсталлятора.
С дискет/CD загружалась сразу NT — и никакое dos-environment там в принципе не используется, и использоваться не могло, потому что загружалась сразу NT.

Не надо путать режим совместимости со штатным функционированием, а то выходит, что когда вам удобно (VMM) неспособность запуститься самостоятельно дает право называться ОС, но только если исполняемый файл называется win.com, а когда неудобно — то полностью самостоятельная загрузка такое право, ВНЕЗАПНО, отнимает.

С дискет/CD загружалась сразу NT — и никакое dos-environment там в принципе не используется, и использоваться не могло, потому что загружалась сразу NT.

Загружалась, конечно же, NT для этого достаточно было посмотреть на содержимое 1-й дискеты, где обнаружим ntloader.bin Но при этом NT не могла сразу разметить диск в NTFS, а делала это через промежуточное форматирование в FAT16/64kB со всеми ограничениями. И, да, это был наименее проблемный способ переноса дистрибутива с CD на HDD - FAT16 и CDFS имеют много общего.

FAT16 и CDFS имеют много общего

Восхохотамши под лавкою.
На самом деле — буквально ничего. Размер сектора, слоистая структура, версии файлов, длина имени файла (совпадала только у Level 1).
Вы видели размер драйвера NTFS или какого-нибудь SCSI-контроллера, которых уже тогда надо было загружать десятки?

Но при этом NT не могла сразу разметить диск в NTFS

Генерализованный минимальный загрузочный дистрибутив, который мог бы загружаться с ненадежного носителя, вынужден был обходиться без всего лишнего. Только самая простая ФС, только самый простой и неэффективный интерфейс к диску.
И то три дискеты понадобилось

Восхохотамши под лавкою.

Не ушибся?

На самом деле — буквально ничего.

Тогда о стандарте ISO9660 почитайте.

Размер сектора, слоистая структура, версии файлов, длина имени файла (совпадала только у Level 1).

Это хорошо, что вы про Level1 нагуглили. А теперь, внимание, вопрос: когда появились Level2 и Level3 и NT. То есть иделогия именования, а меня только она интересовала, идёт от FAT, тольколько гораздо позже расширяется с помощью Joliet и прочих костылей.

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

Ах, сколько умных слов прекрасных. DOS с драйверм NTFS умещается на одну дискету, Partition Magic, умеющий не только форматировать в NTFS, но и многое другое, умещается на одной дискете. И только на трёх загрузочных дисках Windows NT для драйвера NTFS не нашлось места. Логично.

Хорошо смеется Тот, Анубис смеется последним.

Тогда о стандарте ISO9660 почитайте

Дядь, ты дурак и сам себе враг? Ведь тогда всплывет, например, вот такое:

ISO 9660 traces its roots to the High Sierra Format,[2] which arranged file information in a dense, sequential layout to minimize nonsequential access by using a hierarchical (eight levels of directories deep) tree file system arrangement, similar to UNIX and FAT

где становится прекрасно видно, кто читал, по заветам Ляли Брынзы, жопой, половину не понял, треть выкинул и все оставшееся — тупо переврал.

То есть иделогия именования, а меня только она интересовала, идёт от FAT

citation needed, а то англовики и ее источники не очень согласны

Partition Magic, умеющий не только форматировать в NTFS, но и многое другое, умещается на одной дискете

… а еще портить ее при любых связанных с перемещением данных операциях, да. Года так до 2005. Интересно, почему же — неужели из-за кривого кода для работы с NTFS — который, кстати, драйвером ФС, позволяющим именно файловые операции, не является?

NTFS умеет читать и писать примитивный драйвер DOS

Скажите, меньше какой величины должен быть ICQ чтобы употреблять рядом и в одном контексте полноценный (читать и писать) и примитивный говоря о характеристиках ч.л.?
Все полноценные реализации эксплуатировали NTFS.SYS и NTOSKRNL.EXE, у остальных или реализация была разной степени неполноценности (не поддерживалась запись, сжатие, и т.д. и т.п.) или они были очень unstable
Посмотрите в архивы и их readme, да почитайте комментарии тех лет

Три дискеты нужны для загрузки сразу в защищённый режим

Как раз таки ядро и hal помещались на одной. Для загрузки сразу в защищённый режим — этого достаточно.

чтобы не возиться с правами доступа и журналами

Во-первых, SYSTEM плевать на ограничения, это как root в *nix
Во-вторых, там что, по вашему, какие-то специальные отдельные гномики с журналом, что ли, возятся, причем, только при загузке с дискеты?

Песков.жпг

а еще портить ее при любых связанных с перемещением данных операциях, да

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

Все полноценные реализации эксплуатировали NTFS.SYS и NTOSKRNL.EXE, у остальных или реализация была разной степени неполноценности (не поддерживалась запись, сжатие, и т.д. и т.п.) или они были очень unstable

И? Сказать-то что хотели? Что из-под DOS драйвер ломал файловую систему - это не новость. Что мешало интеграции драйвера в те самые 3 или 4 дискеты?

Как раз таки ядро и hal помещались на одной. Для загрузки сразу в защищённый режим — этого достаточно.

Ну и в чём проблема с драйвером-то? Зачем заморочки с FAT16 с последующей конвертацией?

Во-первых, SYSTEM плевать на ограничения, это как root в *nixВо-вторых, там что, по вашему, какие-то специальные отдельные гномики с журналом, что ли, возятся, причем, только при загузке с дискеты?

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

Что-то я не помню такого

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

Ну так что же мешало втиснуть поддержку NTFS, если загрузочный дистрибутив уже и так на трёх дискетах?

В чем проблема сделать эти три несчастные дискеты, и показать, где там место для NTFS.SYS — со всеми зависимостями — да собрать рабочий инсталляционный сет; неужели тямы только на не мешки ворочать хватает?

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

Да-а? То есть, все-таки, драйвер был хреновым, зато поместился на дискету, и, на основании этого, выводится, что NT должна была использовать кривой драйвер, ломающий ФС, чтобы быть менее надежной, чем Win16, чтобы спустя 30 лет после выхода какой-то великовозрастный дебилушка не смог докопаться до отсутствия драйвера на инсталляционных дискетах, и докопался бы до общей нестабильности, так?

Nuff said

Что мешало интеграции драйвера в те самые 3 или 4 дискеты?

См. два пункта выше.

Ну и в чём проблема с драйвером-то? Зачем заморочки с FAT16 с последующей конвертацией?

Туда же, все уже разъяснено

Я правильно понимаю?

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

Только самая простая ФС, только самый простой и неэффективный интерфейс к диску.

И то три дискеты понадобилось

Вы мне сделали смешно. NTFS умеет читать и писать примитивный драйвер DOS. Три дискеты нужны для загрузки сразу в защищённый режим, но при этом на драйвер для файловой системы почему-то не грузим. Есть у меня мыслишка, что всё дело в свойствах этой самой HPFS/NTFS, она журналируемая и с разграничением доступа к файлам/каталогам/томам. Вот поэтому и используется на первом этапе FAT - чтобы не возиться с правами доступа и журналами. Кажется, Windows 2000/XP этот подход унаследовала, только вместо FAT16 задействована FAT32.

Не всякий 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 до сих пор ностальгирую :)

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

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

Нет, как ленивое существо, я для себя вывел такую формулу. В конце концов, досовская дискета создаётся один раз , а с 3-мя дискетами надо шевелиться 3 раза. :)))

Вы забыли ещё два ваших шевеления, создание раздела FAT16? а потом копирования на него с CDROM/network дистриба в 330мб. А это явно было дольше чем создать три дискетки

На счёт FAT32 не понял, я где-то говорил, что она поддерживалась "искаропки"?!

Я к тому что у FAT16 было ограничение в 2гб на раздел, и эти 2гб нужно было использовать с умом.

Про утилиты Winternals для поддержки FAT32 под NT4, равно как и NTFS под DOS, я ещё помню.

Ну у меня они до сих пор рядом с SP6a+fix бок о бок рядом хранятся.

А, да, наша милая NT4 ещё и дефрагментатора не имела, поэтому сразу после инсталляции на слабых машинах еле ворочалась.

По этому дефрагментатор ставился одним из первых. Впрочем как и на полумух.

Это действует только если все машинки находятся в сети.

Так это и есть карма сисадмина, все машинки должны работать в сети. ;)

К тому же, если мне склероз не изменяет, в 1996-1998 годах с bootrom были какие-то сложности.

Врать не буду, уже не помню, давно было.

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

Я вот уже не помню, sysprep появился в W2K или уже был в NT4?

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

Последний раз NT4 на боевую машину устанавливал в 2004-2005 году. Ставил её из-за scsi контроллера к которому был подключен планшетный сканер. Драйверы на контроллер были только на win9x и nt4.

Вы забыли ещё два ваших шевеления, создание раздела FAT16? а потом копирования на него с CDROM/network дистриба в 330мб. А это явно было дольше чем создать три дискетки

Не забыл, это уже "послезнание".

Так это и есть карма сисадмина, все машинки должны работать в сети.

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

Я вот уже не помню, sysprep появился в W2K или уже был в NT4?

По-моему, у NT4 он где-то в ресурс-китах был зарыт, а в W2K его на дистрибутив перетащили. Надо будет глянуть на досуге.

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

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

Ну у меня они до сих пор рядом с SP6a+fix бок о бок рядом хранятся.

Такая же фигня + IE6SP1 там же. До некоторого времени это позволяло NT4.0 присутствовать в интернете. Правда, на русской версии Workstation был косяк между SP6a и IE6 из-за 128-битного шифрования.

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

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

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

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

А, я понял, это как бы намёк на то, что якобы с этих 3-х дискет можно было сразу форматировать системный том в NTFS.

И это тоже, меньше телодвижений.

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

А меня ZIP драйвы обошли стороной. Сначала они были дорогими и для обмена данными хватало дискет или LPT кабеля. А потом пришли пишущие резаки и всё "опошлили"

И это тоже, меньше телодвижений

Смотря каких. Меня больше всего раздражало именно жонглирование дискетами, а не набивание команд с клавиатуры.

Человека ставившего Warp с дискет, этим мелким эпизодом на три дискеты не напугаешь. Это всё равно что DOS поставить.

А я и DOS не ставил, всегда была дискета, мной сконфигурированная, с которой можно было делать что угодно.

А меня ZIP драйвы обошли стороной. Сначала они были дорогими и для обмена данными хватало дискет или LPT кабеля. А потом пришли пишущие резаки и всё "опошлили"

А у меня куча встронных ZIP в 3,5" отсек и никакого внешнего привода, хотя в то время он бы не помешал.

У меня всё было с точностью до наоборот, на работе все машины начиная с Pentium (и совместимых) обязательно комплектовались CDROM. Потом пишущими и так далее.

Я к тому что у FAT16 было ограничение в 2гб на раздел, и эти 2гб нужно было использовать с умом.

Вообще-то, это только из-под MS-DOS 6.22 и без применения сторонних утилит. Путём манипуляции с размером кластера можно было увеличить том до 4 ГБ. Смотрите внимательно, что я написал про 3 волшебные дискеты.

Вообще-то, это только из-под MS-DOS 6.22. Путём манипуляции с размером кластера можно было увеличить том до 4 ГБ.

Вообще это можно делать и из DOS 5, но накладные потери от увеличенного объёма делали такой вариант "неоптимальным". Плюс, я не уверен что DOS дефрагментаторы переварили такой хитрый формат.

Смотрите внимательно, что я написал про 3 волшебные дискеты.

А что в них такого? Сделал их три копии и ставься пока не опупеешь :)

Вообще это можно делать и из DOS 5, но накладные потери от увеличенного объёма делали такой вариант "неоптимальным". Плюс, я не уверен что DOS дефрагментаторы переварили такой хитрый формат.

В принципе, да, поэтому NT и использовала FAT16/64kB при форматировании тома, на первом этапе установки выбор был в пользу большого раздела, а на втором, после преобразования в NTFS, уже не было "неоптимальности".

А что в них такого?

То, что NTFS появлялся не сразу.

Сделал их три копии и ставься пока не опупеешь :)

Троллинг 80-го уровня. Шутку понял, смешно.

То, что NTFS появлялся не сразу.

Так это было бесшовно во время второй перезагрузке при установки

А по настоящему я полюбил NTFS во время отлёта печально известных Fujitsu MPG40, NTFS дал мне время дотянуть до покупки нового HDD

Троллинг 80-го уровня. Шутку понял, смешно.

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

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

Именно поэтому я и не любил возню с флоппи и всеми силами старался свести её к минимуму.

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

А как с этим было у ZIP драйвов?

А как с этим было у ZIP драйвов?

Они были прямой заменой флоппи. Хотя, с помощью перемычки их можно было настраивать и как флоппи, и как HDD. Физически они подключались к IDE, так что, должны были иметь поддержку в BIOS. Значит, тоже только пеньки и выше. Правда, и с этим не без греха, помню какой-то глюк именно на NT4 с этими дисками. Типа, у меня читались, а у кого-то - нет. Но после некоторых манипуляций на моей машине (шаманский бубен) с форматированием всё начинало работать. Они (диски, не приводы) изначально шли с кривым форматом, и пользователи ими пользовались, пока не сталкивались с проблемой переноса с одного компа на другой Вполне вероятно, диски были не оригинальные. Это с FAT16. Были и косяки, когда особо умные форматировали в NTFS, а потом пытались прочесть на другой машине, и получали отлуп. В общем, с ZIPами тоже было весело.

Так это было бесшовно во время второй перезагрузке при установки

Это было не так заметно, но что-то мешало инсталлятору сразу отформатировать том в NTFS. Зачем-то нужна была промежуточная операция с FAT16 и копированием файлов в нотации 255\8.3, хотя уже тогда ни NT4, ни её файловая система не имели таких ограничений. Это всё говорит о том, что в инталляторе очень глубоко, но всё-таки, спрятали DOS.

Может быть это связано с тем что NT4 работала одновременно на разных архитектурах IA-32, Alpha, MIPS, IBM PowerPC у которых был разный порядок байтов в слове (Intel order/Motorola order)?

Хммм, может, потому что в то время FAT16 был чем-то вроде золотого стандарта тех времен, и его возможностей было достаточно?
Имена 8.3, как и саму возможность запустить ограниченный инсталлятор из-под DOS, дотащили до 2000, и даже в XP сохранили нейминг 8.3

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

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

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

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

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

Так именно что… свое ведро, свой юзерспейс.
Лишь небольшое количество консольных утилит со странными ключами и posix-совместимость роднят ее с фрей.

Лишь небольшое количество консольных утилит со странными ключами и posix-совместимость роднят ее с фрей.

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

вообще код фри в макосе всетаки есть, но не ядро

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

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

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

Речь в этом треде шла о Win3.хх. Которая как раз не является самостоятельной ОС...

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

Для меня есть один ключевой аргумент. Она не может работать без доса. Дистрибутив вин95 можно взять и установить на голый комп. Она установится и будет работать. Да, она установит с собой MS-DOS 7.0 или 7.10 (которые, кстати, как отдельные ОС не выпускались, только как компоненты вин9х), но она будет работать и в ее дистибутиве есть все для полноценной работы. А с виндой 3.хх так не прокатит. Как минимум этот факт не позволяет мне называть вин3.хх операционной системой. И нет, мы говорим не про загрузку инсталлятора из другой ОС, а именно про необходимость сначала специально установить дос и компоненты дос, без которых вин3.хх просто не запустится, и только потом оболочку.

Все истории с кооперативной многозадачностью, вытесняемой многозадачность - это еще обсуждаемо. В обсуждения, является ли вин.95 оболочкой или ОС, мне даже влезать лень - это религия. В конце-концов, MS-DOS вообще не многозадачная, что не мешает ей быть операционной системой. Но вот касательно вин.3.хх вряд ли кто-то сможет меня убедить.

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

Операцио́нная систе́ма — программное обеспечение, управляющее компьютерами (включая микроконтроллеры) и позволяющее запускать на них прикладные программы[1]. Предоставляет программный интерфейс для взаимодействия с компьютером, управляет прикладными программами[1] и занимается распределением предоставляемых ресурсов, в том числе между прикладными программами

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

И в 3.11, а я немного успел пописать под нее на Borland C++ for Windows, разница с написанием под Win98, где я уже работал полноценно, была невелика, да и до сих пор можно на WinAPI написать что-нибудь и оно будет работать.

А как они там установщик написали, да какая разница, тоже мне нашли признак ОС - не ОС. Я макось в 2009 году ставил через голый FreeBSD, запустив оттуда установщик, и что, это не ОС теперь

Ок. 1с - операционка? MS Excel - операцинка?

В твоем определении - да.

1C и Excel предоставляют механизм взаимодействия с компьютером и распределяют ресурсы? они оба это это прикладной интерфейс над базой данных...они только ресурсы БД могут распределять и управлять ими

а то что вы на VBA можете вызвать ф-цию базовой ОС например в экселе (или подключить ВК написанную на сях в 1С)..сразу портит всю абстракцию этих штук как операционных систем...

эксель - нет, а вот браузер - уже, фактически, да, ось в оси.

Грань тут тонкая, по сути это тафтология и словоблудие, то же самое что спорить о том что такое время - ничего, абстракция, какое определение времени дашь тем и будет.

К сожалению Вашему, 3.x не просто граф интерфейс к системному API MS-DOS, но и полноценная ОС. Правда, весьма причудливой гибридной архитектуры, запускаемая из другой ОС. Там и процессор работает в другом режиме, если проц подходящий, и др. модель памяти, свой системный API, как уже писали, своя разрядность слова, свои форматы и управление железом. В ней программы MS-DOS работали лучше, чем в самой MS-DOD, т. к. выделялось каждой программе много виртуальных ресурсов, и работали они не на ядре той MS-DOS и не в том режиме процессора, что при запуске 3.x в стартовой MS-DOS.

Потому, если не было реального опыта прикладного или системного программирования, то частенько бывает трудно понять: "кто на ком стоял", как сказал профессор П.

Так что, 3.x -- весьма причудливая, но ОС.

Кстати, также, как и Мак ОС (писалась тогда раздельно в 80-х годах) того же времени с похожими же изгибонами сумрачного программистского гения.

Так что, 3.x -- весьма причудливая, но ОС.

Win16 это причудливое приложение DOS (и OS/2), предоставлявшее доступ к своему API, способное создавать GUI, имевшее кооперативную многозадачность для приложений Win16. В DOS Win16 являлось странноватым приложением-оболочкой с GUI, не способной к самостоятельному существованию без настроенного DOS окружения.

давайте накину

DOS это причудливое приложение которое использует ф-ции BIOS чтобы работать и не является полноценной ОС

Не накините, DOS для функционирования не обязателен BIOS IBM PC. ;)

Дос не использует биос-фции для доступа к дискам и периферии?

P.s. на самом деле я не знаю таких подробностей, интересно просто

Неожиданно, в те времена IBM PC не был единственным ПК основанным на 8088/8086. Были и другие ПК которым, как странно, тоже была нужна операционная система здесь и сейчас. Они конечно могли сидеть и ждать у моря погоды пока DRI разродится CP/M86, но тут Билл со товарищи предлагали рабочее решение. Для таких машин правился IO.SYS, ЕМНИП выдаваемый в виде сырков, где прерывания BIOS IBM PC заменялись на вызовы фирмваря соответствующей платформы. И таким образом возникала совместимая с DOS платформа, не совместимая с IBM PC. Главное чтобы программа DOS не пыталась вызывать прерывания BIOS, а выполняла весь ввод/вывод через вызовы DOS. В принципе как и работали все программы CPM. И это тогда не было редким кейсом, MS достаточно активно заключали договора с производителями альтернативных 8086/8088

Более того, по рассказам создателя DOS Тима Патерсона, Microsoft до 1987 года собирала новые билды DOS на компьютере с intel 8086, но не совместимого с IBM PC, от Seattle Computer у которого не было барьера 640 кб и он имел доступ почти к полному мегабайту памяти. А почему? Дело в том что на IBM PC с 640 кб нельзя было собрать DOS из сырков, не хватало оперативки.

https://dosmandrivel.blogspot.com/

IBM также вернула ограничения памяти, которых я специально избегал при разработке процессора 8086. Для компьютеров S-100 недорогой альтернативой использованию обычного компьютерного терминала была видеоплата. Однако видеоплата занимала часть адресного пространства памяти. Загрузочное ПЗУ обычно также занимало часть адресного пространства. Системы SCP были разработаны для использования с терминалом, и загрузочное ПЗУ можно было отключить после загрузки. Это сделало доступным для оперативной памяти весь 1 МБ адресного пространства. IBM, с другой стороны, ограничила адресное пространство своих ПК 640 КБ оперативной памяти из-за видео и загрузочного ПЗУ/ПЗУ BIOS. Это ограничение получило название «барьер DOS 640 КБ», но оно не имело ничего общего с DOS.

Microsoft в полной мере воспользовалась возможностями системы SCP. В 1988 году, спустя годы после закрытия SCP, они всё ещё использовали систему SCP для одной задачи, которую могла выполнять только она («сборка компоновщика»). Их компьютер был оснащён 1 МБ оперативной памяти — 16 картами по 64 КБ. Этот компьютер нельзя было вывести из эксплуатации, пока не были разработаны 32-битные программные инструменты для микропроцессора Intel 386.

DOS для функционирования не обязателен BIOS IBM PC. ;)
А что, DOS с диском разве не через Int 13H общается?

Нет, MSDOS.SYS общается с железом через IO.SYS. А уж как IO.SYS к железу обращается, через вызовы BIOS или напрямую в порты фигачит, его сугубо интимное дело.

падажжи, так получается что

"win9x-неопеационка" - общается с компом через собственные 32 битные драйвера которые BIOS почти не юзают (привет дискетки) - нене..у неё загрузчик дос, неправильно, надстройка!

DOS - общается через свой собственный драйвер io.sys который юзает вызовы BIOS - настоящая ОС потому что у неё нет загрузчика!

Я правильно понял? разница лишь в загрузчике?

падажжи, так получается что

Не получается

"win9x-неопеационка" - общается с компом через собственные 32 битные драйвера которые BIOS почти не юзают (привет дискетки) - нене..у неё загрузчик дос, неправильно, надстройка!

Мля, вы точно читать умеете? рукалицо.jpg

Во первых, ещё раз для тех кто путается в простых фактах - Win16!=Win9x.

Во вторых, я о Win9x вообще не говорил, вы пытаетесь вложить в мои уста то чего я не говорил.

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

DOS - общается через свой собственный драйвер io.sys

рукалицо.jpg
IO.SYS это не драйвер, это часть DOS обеспечивающее слой Hardware Abstraction Layer для MSDOS

который юзает вызовы BIOS

IO.SYS может обходится и без IBM PC BIOS, и не использовать в своей работе функции BIOS

настоящая ОС потому что у неё нет загрузчика!

Неожиданно, IO.SYS тоже выполняет функции загрузчика, поскольку загружает и инициализирует MSDOS.SYS который реализует интерфейсы API DOS

Я правильно понял? разница лишь в загрузчике?

А хрен бы вас знал, о чем вы думаете. Уж больно вы старательно не видите разницу между Win9x и Win16 и прыгаете туда сюда. Зачем? Непонятно.

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

Игнорируя техническую сторону вопроса, мне всегда нравились 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, кроме как через перезагрузку системы не было.

Не дописали возврат в ОС? :)

Там некуда было возвращаться, в RAM не оставалось и следа от DOS

Так что "Семь бед, один ресет!" 8))

Внезапно да.

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 пропадал из системы и начинал требовать установки драйвера.

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

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

Публикации