Призраки Windows 3.1

Автор оригинала: Ernie Smith
  • Перевод
image

Бродя недавно по секонд-хенду Goodwill, я наткнулся на дешёвый планшет, рассчитанный на работу под Windows 10. Я заплатил за него всего несколько долларов, хотя новый продаётся дороже 100 долларов. Драйверы у него слетели, я попытался восстановить их, после чего все задачи, даже загрузка меню «Пуск» начали очень тормозить. Это заставило меня установить CloudReady — разновидность Chrome OS, которая вполне неплохо работает на планшете, хоть и не поддерживает встроенные WiFi, Bluetooth, яркость, звук и кое-что ещё. (Мне помог внешний WiFi-донгл!) По сути, для меня это стало вызовом, как и эксперимент с Mac Mini за 10 долларов. Но это странное, малополезное устройство (MacBook Pro не войдёт ни в какое сравнение с этой вознёй с донглом) заставило меня задуматься о странных контекстах использования Windows, что, в свою очередь, привело к мысли о Windows 3.1 — первой действительно доминирующей версией этой операционной системы. В этой статье я расскажу о необычных применениях Windows 3.1.

«Можно рисовать ручкой прямо по поверхности, оставлять рукописные заметки, как на бумаге, и компьютер распознает их. Так что клавиатурой пользоваться необязательно. Такую машину можно взять с собой на совещание или на встречу с клиентом, использовать её очень естественным образом. Мы обеспечим удобство работы с Windows for Pen Computing».

Так Билл Гейтс в маркетинговом видео 1991 года рассказывал о преимуществах Windows for Pen Computing — операционной системы, предназначенной для первых планшетных компьютеров. Программа, в результате выпущенная в 1992 году как ответвление Windows 3.1, стала одной из множества систем с поддержкой рукописного ввода, в том числе PenPoint компании Go Corp. (Apple тоже совершила попытку, однако её планшет так и не вышел на рынок; вместо него компания сосредоточилась на создании КПК Newton.) В то время был силён скептицизм по отношению к этой отрасли, и оказалось, что он оправдан. Несмотря на отдельные успешные продукты для бизнес-рынка, например, GRiDPad, для появления на рынке конкурентоспособного потребительского планшета потребовалось почти 20 лет, и создан он был не Microsoft.


Фотография Memorex VIS, сделанная знаменитым фотографом консолей Эваном Эмосом, выпустившим в прошлом году книгу своих снимков (его фотографии имеют лицензию Creative Commons). В 2017 году Эмос написал в Twitter, что эту консоль было сложнее всего найти для книги. (Evan Amos/Twitter)

Как Radio Shack продавала клон Philips CD-i на основе Windows, который никто не любил


Philips CD-i не был хорошей системой. Интерактивное мультимедийное устройство, созданное одной из компаний, разработавших Compact Disc, изначально продавалось как «бытовой прибор» — видеоигровая консоль, из которой убрали всё, что делает консоли интересными.

(Устройство позиционировалось как нечто более утончённое, поэтому, например, для неё можно было купить The Flowers of Robert Mapplethorpe — по сути, интерактивное слайд-шоу.)

Наследие CD-i было увековечено, вероятно, наиболее пирровой победой современности: когда Nintendo решила «кинуть» Sony и разработать CD-ROM для Super NES вместе с Philips, это дало голландской компании доступ к лицензиям на две самые популярные франшизы Nintendo — Super Mario Bros. и The Legend of Zelda — но не доступ к ресурсам разработки Nintendo. Поэтому худшие игры в обеих франшизах появились именно на CD-i. (Тем не менее, разработчик этих игр утверждает, что в своё время они были приняты хорошо, а критике подверглась позже.)

То есть Philips CD-i, при всех её инновациях, не была той системой, у которой стоит учиться. Даже звезда бейсбола Отис Никсон не смог её продать.

Но по какой-то странной причине ребята из Tandy, родительской компании Radio Shack, не поняли этого и решили, что несмотря ни на что, стоит скопировать модель CD-i.


Результатом их работы стало нечто под названием Tandy Video Information System (VIS). Готовое устройство, продававшееся под брендом Memorex в магазинах Radio Shack по всей стране (и рекламировалось этим чрезвычайно бодрым видео), было странным выбором; к тому же, оно вышло на рынок, когда и CD-i, и похожее на него устройство — Commodore CDTV (по сути, прославленная Amiga, но, к удивлению, не аналогичная CD32), уже столкнулись на рынке со сложностями.

Посвящённая мультимедийному рынку статья 1992 года в Philadelphia Inquirer так рассказывала о преимуществах VIS по сравнению с CD-i и CDTV:

По словам аналитиков и разработчиков ПО, устройство Tandy Video Information System (VIS), которое должно появиться в октябре, может ожидать более удачная судьба. Его будет поддерживать розничная мощь семи тысяч магазинов Radio Shack, агрессивная предрождественская рекламная кампания и продукт, использующий стандартный компьютерный язык, что упростит разработчикам ПО создание проектов на CD.

«Стандартный компьютерный язык», говорите? Что это значит? Секрет VIS заключался в следующем: по сути, это был маломощный PC (а точнее, 286) с урезанной версией Windows 3.1, совместимой только с его «железом» (она называлась «Modular Windows», «модульная Windows»).

В последующие годы Microsoft выпустит множество различных специализированных версий Windows (которые сначала назывались Windows CE, а позже — Windows Embedded Compact) для таких разнообразных устройств, как видеоигровые консоли, смартфоны, портативные музыкальные плееры и даже автомобили. «Modular Windows» была одной из первых таких версий.

Существуют свидетельства того, что Microsoft планировала возможность использования Modular Windows в разных устройствах Tandy. В статье 1992 года в InfoWorld говорится о существовании комплекта разработки ПО специально для Modular Windows. Microsoft не стала бы создавать его для одного устройства, которое и так продавалось не очень хорошо. Более того, в краткой заметке 1992 года в The Guardian сообщается, что «последующие версии Modular Windows будут адаптированы для карманных компьютеров и электронных органайзеров или КПК (personal digital assistant, PDA)».

Modular Windows значила очень многое; среди прочего, она стала серьёзной причиной разлада между Microsoft и Tandy. В Usenet-посте 2003 года (не так часто можно встретить ссылку Usenet-пост) покойный инженер Tandy Фрэнк Дёрда IV рассказал, что в конце работы над созданием VIS Microsoft пыталась перевести весь продукт под бренд Modular Windows. Дошло до того, что Microsoft тайком прятала в коде логотип, несмотря на дефицит места в ROM-файле VIS:

Вероятно, ключевым аспектом раздора стал спрятанный в коде логотип Modular Windows, появившийся на поздних этапах разработки системы. Microsoft скрыла логотип в ROM на этапе проекта release candidate. Tandy потребовала его удаления. Microsoft заявила, что удалила логотип, но следующий образ был на 20 байт больше, чем предыдущий с логотипом. К тому же он оказался на 20 килобайт больше того, в котором точно не было логотипа. Дизассемблирование последнего кода загрузки Windows показало, что Microsoft спрятала логотип, но он всё равно находился внутри. Код Modular Windows был составлен так, что логотип отображался, только если добавить к имени исполняемого файла восклицательный знак. Вероятно, Microsoft хотела за спиной у Tandy потребовать у сторонних разработчиков ПО использовать его.

(Нисколько не улучшило ситуацию и то, что Tandy хотела продавать для системы некоторые из DOS-программ, благо, их было множество, но Microsoft этому воспротивилась. Простите, но никакого Wolfenstein 3D на вашем цифровом приборе ценой 700 долларов.)


К несчастью для всех, кого развлекало наблюдение сражение между Microsoft и Radio Shack, VIS попросту не продавалась — устройства продолжали собирать пыль на полках даже после того, как Radio Shack снизила цену вдвое.

«Честно говоря, эту систему могли продавать хоть по 39,95 доллара, и она всё равно была бы неинтересна потребителю — консоль действительно оказалась настолько плохой», — написал один из коллекионеров этих устройств.

В какой-то момент времени она, вероятно, и в самом деле продавалась за 39,95 доллара. В ещё одном Usenet-посте 1995 года Дёрда пишет: провал машины был настолько ужасным, что её пришлось продавать через дисконт-магазины наподобие TigerDirect, и это вынудило Tandy, которая до того момента была важным именем в компьютерной области, выбросить белый флаг.

«На разработке, производстве и маркетинге VIS Tandy потеряла примерно 50-75 миллионов долларов», — писал Дёрда. «Именно этот продукт вынудил компанию уйти из компьютерного бизнеса».

(Сам Дёрда признавал, что достойна покупки была лишь горстка игр.)

В результате этого систему сегодня невероятно сложно найти, ведь продано было всего 11 тысяч устройств. (Однако ПО достаточно распространено и активно продаётся на eBay.) Это реликт забытой эпохи различного плохого мультимедийного оборудования, существовавшего на рынке, который особо не волновало, что на нём продают.

Несмотря на это, вопреки всему, у этой системы были поклонники! Несколько лет назад пользователь Blogger под ником Sly DC рассказал, как он модифицировал игру, которая существовала только на демо-диске, сделав его самозагружающимся, а затем модифицировал саму игру (шутер под названием Spacenuts), заменив её графику на графику его любимой аркадной игры Vanguard.

1994 год


Год, в котором Microsoft выпустила Windows 3.2. Никогда о ней не слышали? Оказывается, так получилось, потому что она была дополненной версией Windows 3.1, продававшейся только на китайском рынке. Но почему только Китай? Во-первых, это большой рынок, во-вторых, Microsoft понадобилась пара попыток, чтобы разобраться с вводом упрощённого китайского, и чтобы исправить ситуацию, компания добавила в Windows 3.2 несколько способов ввода. Если вам любопытно, эту версию можно найти в Internet Archive.


Самая малоизвестная вариация Windows 3.1 использовалась в машине Commodore конца 90-х


Помните, примерно с 1998 года все считали, что Commodore уже мёртв? Оказывается, всё было немного сложнее.

В этом году голландская фирма Tulip приобрела права на торговую марку компании, и её дочерняя компания Web Computers International начала продавать устройство под названием Web.it Internet Computer — вероятно, одно из самых причудливых сочетаний компьютерного «железа» и ПО.

По информации de Volkskrant [на нидерландском языке], Web International присоединила к себе бывший Commodore, в том числе и руководство, работавшее в этой легендарной компьютерной фирме. Но тут вмешалась хрупкость системы из нескольких участвующих компаний — очевидно, после приобретения названия Commodore у расформированной фирмы, сама Tulip разорилась, не успев правильно лицензировать права Web International. Скорее всего, всё это усложнило маркетинг продукта.


Но несмотря на вероятное влияние сотрудников бывшей Commodore, само устройство было стилизовано под нижнюю часть Apple PowerBook G3 той эпохи, дополнено чёрной отделкой и трекпадом. Но, по сути, она являлась настольной машиной без монитора со встроенной клавиатурой, примерно такой же, какой была в своё время Commodore. Выглядела она очень привлекательно — чёрные десктопы в то время по-прежнему были не особо распространены.

Работая с партнёрами IBM и AMD, Web Computers International создала машину, которая благодаря эмуляции имела обратную совместимость со старыми машинами Commodore. Но по-настоящему странным и удивительным элементом машины была операционная система — уникальная специализированная версия Windows 3.1 под названием embOS.

Почему Windows 3.1? Согласно интервью 1998 года с Герардом Линдхоутом из Web Computers International, задача компании заключалась в создании встраиваемой системы для веб-сёрфинга, но большинство возможных вариантов было не особо качественным, а Windows CE в то время не подходила под нужды компании. Цитата из интервью Net4TV:

Тогда мы начали изучать множество других операционных систем, предназначенных для Интернет-приставок, например, QNX, но с ними возникала куча проблем. Мы хотели, чтобы у потребителя был широкий выбор ПО, которое он мог бы сам скачивать из Сети. Поэтому мы выбрали Windows, и остановились на 3.1, потому что у неё была ROM-версия, которой не существовало для Windows 95.

Операционная система поставлялась не с традиционным Диспетчером программ, который в своё время использовала Windows 3.1, а с Диспетчером файлов — специальной фронтэнд-оболочкой. Также в ней был установлен набор офисных программ, не связанных с продукцией Microsoft, в частности, Netscape Navigator 3.0 и офисный пакет Lotus.


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

Возможно, это самый странный в мире настольный компьютер — машина продавалась под названием Commodore компанией, которая им не владела, использовала Windows 3.1 спустя годы после выпуска Windows 95, выглядела как мощный ноутбук Mac того времени, хоть и была слабым PC-десктопом. К тому же она разрабатывалась как конкурент WebTV. Здесь столько странностей, что я даже не знаю, с чего начать.

(Интересует меня один вопрос: насколько связана была embOS с Modular Windows?)

Под конец я бы немного хотел поговорить о человеке по имени Питер Тэттем. Австралийский разработчик ПО Тэттем создал программу Trumpet Winsock. Эта программа мастерски воспользовалась недосмотром Microsoft.

Создатели Windows, ориентировавшиеся на собственный подход и проглядевшие потенциал Интернета, не разработали ПО, позволявшее пользователям с диалап-модемами напрямую подключаться к Интернету, несмотря на выпуск версии Windows 3.11 под названием Windows for Workgroups, специально рассчитанной на работу по сети.

И здесь в дело вступала Trumpet Winsock. По сути, эта программа обеспечивала собственную версию Microsoft Windows Sockets API, или Winsock, позволявшую сетевым протоколам Интернета напрямую общаться с графическими интерфейсами Windows. Это открывало множество возможностей по использованию Интернета, особенно когда на сцене появились первые веб-браузеры наподобие NCSA Mosaic и Netscape.

Программа, продаваемая по модели shareware, получила огромный успех и распространялась Интернет-провайдерами всего мира — это и понятно, ведь она обязательно нужна, чтобы пользоваться графическим Интернетом в Windows 3.1. Ещё несколько лет, пока Microsoft не осознала ошибку и не разработала собственный способ простой установки диалап-подключений к Интернету, Trumpet Winsock была единственным решением.

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

В 2011 году эта история всплыла и получила драматическое развитие: ещё один австралийский пользователь компьютера по имени Жак Честер услышал о ситуации с Тэттемом и создал сайт «Спасибо за Trumpet Winsock», на котором проводил кампанию сбора донатов для Тэттема, чтобы заплатить ему за то, чем большинство людей в прошлом незаконно пользовалось бесплатно.

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

Как же отреагировал на такие новости сам Тэттем? Со своей стороны он тоже был великодушен.

«В качестве жеста доброй воли Питер Тэттем, единственный владелец прав на Trumpet Winsock, объявляет бессрочную амнистию по поводу любых нарушений авторского права всеми пользователями (физическими и юридическими) Trumpet Winsock до января 2011 года», — написано на веб-сайте Тэттема. «Тем не менее, он сохраняет за собой все остальные права, обеспечиваемые авторским правом на Trumpet Winsock».

История Trumpet Winsock получила неожиданное хорошее завершение. У нас было не так много подобных историй из эпохи Windows 3.1.

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

    +4
    Привело к мысли о Windows 3.1 — первой действительно доминирующей версией этой операционной системы


    Windows 3.1 это не операционная система. Это программа для операционной системы ms-dos
      +1

      А Windows 95?

        +4
        Windows 95 это операционная система
          0
          А почему?
            0
            Я думаю, достаточно того, что Microsoft в своих анонсах и документации никогда не называла Windows операционной системой. Вплоть до выхода Windows 95. (Да, я в курсе, что NT 3.5 вышла раньше 95, с ней всё понятно.) Термин, который тогда использовался − операционная среда (operating environment). GEM Desktop, например, тоже назывался операционной средой.

            В то же время MS DOS, CP/M, Xenix и др. вполне себе назывались и являлись операционными системами. В отличие от Windows 1/2/3.
            –4
            Пользуясь случаем — она настолько-же операционная система как и 3.1/3.11. Операционная система это NT линейка.
              +1
              Во многом зависит от того, что вкладывать в понятие «ОС». Но всё-таки я бы отказал Win 95/98/ME в этом.
            –2
            Ёпта! Так любая Винда на ОС! И все ваши Линухи не ОС! Они все запускаются из под BIOS/UEFi — вот это вот тру ОС! (Sarcasm)

            То, что она использовала DOS как промежуточное звено в загрузке, не значит, что это не настоящая ОС.
              –1

              Вы даже не представляете на сколько это не правда

                0
                Windows 3.1 это не операционная система.

                Нескромный вопрос: а что такое «операционная система» в вашем понимании? Нечто, обязательно запускающееся из бутсектора, что ли?
                  +4

                  Чтобы прекратить споры.


                  Полная ОС или оболочка для MS-DOS?


                  Системы Windows (не только 3.x и ниже, но также и Windows 9x: 95, 98 и Me) имеют сложную, оригинальную, гибридную и не полностью документированную внутреннюю структуру. Прежде всего, для их работы требуется MS-DOS, то есть они выполняются как бы «над» MS-DOS. По этой причине трудно определить, являются ли они операционными системами или всего лишь оболочками-расширениями для MS-DOS. Многие пользователи считают их операционными системами, поскольку они выглядят так же, как и многие полноценные ОС. В то же время другие не считают это семейство Windows настоящими операционными системами.


                  Windows 3.x требует предварительно установленной копии MS-DOS, которая должна загружаться при включении компьютера. Windows затем запускается как приложение, и её работа может быть прервана в любое время, в результате чего пользователь возвращается в обычную командную оболочку MS-DOS. (Для сравнения: в UNIX-подобных операционных системах (в том числе и Linux) так запускается и работает X Window System — графический сервер, реализующий GUI.) Кроме того, драйверы для некоторых устройств (включая драйверы для дисководов для компакт-дисков и доступа к сети) предоставляются MS-DOS. С другой стороны, Windows требует специальным образом написанных приложений и имеет особый формат для исполняемых файлов, который значительно сложнее, чем аналогичный формат в MS-DOS. Windows имеет большое количество собственных драйверов и по большей части собственную систему управления памятью.


                  Помимо этого, MS-DOS не изолирует приложения от аппаратного обеспечения и не защищает себя саму от приложений. Резидентная часть MS-DOS сродни библиотеке функций, предназначенных для работы с дисковыми накопителями и для загрузки приложений с них. Программа в среде MS-DOS имеет возможность выполнять любые действия, в том числе заменять или пропускать код MS-DOS или его часть, временно или постоянно. Windows использует эту возможность в своих собственных целях, и уровень пропуска стандартного кода MS-DOS возрастал с каждой новой версией. Windows 3.1 и её 32-разрядный доступ к диску заменял код BIOS для доступа к дискам, а Windows для рабочих групп 3.11 заменяла «родной» код MS-DOS для обращения к файлам. Это впоследствии сделало возможной поддержку длинных имён файлов в Windows 95, в результате чего файловый код DOS оказался устаревшим.


                  Кроме того, программа MS-DOS, работающая в среде Windows, могла использовать те возможности Windows, которые не поддерживались MS-DOS. Программа MS-DOS, выполняющаяся в Windows для рабочих групп 3.11, автоматически использовала 32-разрядный доступ к файлам вместо обычных функций доступа к файлам и дискам, имеющихся в MS-DOS. Аналогично, особым образом написанная программа для MS-DOS, работающая в Windows 95, может использовать длинные имена файлов.


                  Такие же принципы работы характерны для Windows 98 и Windows Me, в которых по-прежнему смешаны 16-разрядный и 32-разрядный код. Тем не менее, с каждой последующей версией 16-разрядный код становился всё менее заметным.


                  Семейство Windows NT состоит из операционных систем, которые полностью отделены от MS-DOS и целиком составлены из 32-разрядного кода. Программы MS-DOS и Win16 работают в специальных виртуальных машинах DOS, которые реализованы посредством обыкновенного API Win32.


                  Тем не менее Windows 3.x может быть успешно запущена поверх DosBox, в том числе на мобильных устройствах: телефонах Motorola MotoMagx, карманных компьютерах с операционными системами Windows Mobile, Android и Symbian OS 9.


                  Операционная система — это комплекс взаимосвязанных программ, предназначенных для управления ресурсами компьютера и организации взаимодействия с пользователем.


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


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


                  BIOS (от англ. basic input/output system — «базовая система ввода-вывода») — это набор микропрограмм, реализующих API для работы с аппаратурой компьютера и подключёнными к нему устройствами.


                  BIOS относится к системному программному обеспечению (ПО).


                  В современных компьютерах процесс начальной загрузки начинается с выполнения процессором команд, расположенных в постоянной памяти (например на IBM PC — команд BIOS), начиная с предопределённого адреса (процессор делает это после перезагрузки без какой бы то ни было помощи). Данное программное обеспечение может обнаруживать устройства, подходящие для загрузки, и загружать со специального раздела выбранного устройства (чаще всего загрузочного сектора данного устройства) загрузчик ОС.


                  Загрузчик операционной системы — системное программное обеспечение, обеспечивающее загрузку операционной системы непосредственно после включения компьютера (процедуры POST) и начальной загрузки.


                  Исходя из вышеприведённой терминологии, Windows 3.x считаться полноценной ОС не может, так в свою очередь напрямую зависит от наличия другой ОС — MS DOS.
                  В случае Windows 3.x первой загружается MS DOS. Windows 3.x не подменяет собой MS DOS. При завершении работы Windows 3.x, управление возвращается MS DOS.


                  А вот начиная с Windows 95 ситуация меняется кардинально. Для работы Windows 95 другая ОС уже не нужна. Более того, Windows 95 при необходимости самостоятельно эмулирует MS DOS.
                  Эмуляция (англ. emulation) в вычислительной технике — комплекс программных, аппаратных средств или их сочетание, предназначенное для копирования (или эмулирования) функций одной вычислительной системы (гостя) на другой, отличной от первой, вычислительной системе (хосте) таким образом, чтобы эмулированное поведение как можно ближе соответствовало поведению оригинальной системы (гостя).
                  При включении компьютера с установленной Windows 95, загрузчик ОС загружает собственное ядро Windows 95. Windows 95 является полноценной и самостоятельной операционной системой. А вот с Windows 3.x так не получится — сперва MS DOS, потом всё остальное.

                    +2
                    В случае Windows 3.x первой загружается MS DOS. Windows 3.x не подменяет собой MS DOS. При завершении работы Windows 3.x, управление возвращается MS DOS.

                    А вот начиная с Windows 95 ситуация меняется кардинально. Для работы Windows 95 другая ОС уже не нужна. Более того, Windows 95 при необходимости самостоятельно эмулирует MS DOS.

                    Мне кажется, автор этого текста и Windows 3.1 не очень хорошо знает, и Windows 95.
                    Потому как и первая в общем случае никак не взаимодействует с сервисами MS DOS, лишь предоставляя к ним доступ для тех приложений, которым это нужно, а самостоятельно работает с устройствами компьютера с помощью собственных драйверов. И саму DOS использует лишь для запуска. Точно так же и вторая использует DOS для запуска, и никакие сервисы DOS не эмулирует, а также просто позволяет доступ к ним для DOS-приложений в обход собственного API.
                      +1

                      Никак не взаимодействуя с сервисами MS DOS, лишь предоставляя к ним доступ — это как?


                      DrPass, Вы когда-нибудь писали системные программы для MS DOS (например, резидентные), для Windows 3.x и далее?


                      Когда кажется - креститься надо

                      Архитектура


                      Windows 95 была спроектирована так, чтобы быть максимально совместимой с существующими 16-битными Windows и MS-DOS программами, а также с драйверами устройств, в то же время предоставляя более быструю и стабильную работу. Архитектура Windows 95 есть эволюция расширенного 386 режима работы Windows for Workgroups. Самый нижний уровень операционной системы состоит из большого числа драйверов виртуальных устройств (virtual device drivers VxDs), запускаемых в 32-битном защищенном режиме, и одной или более виртуальных DOS машин, запускаемых в виртуальном 8086 режиме. Драйвера виртуальных устройств отвечают за обработку физических устройств (таких как видео и сетевые карты), эмулирование виртуальных устройств, используемых виртуальными машинами, или обеспечение различных системных сервисов. Ниже перечислены три наиболее важных драйвера виртуальных устройств:


                      Менеджер виртуальных машин (Virtual Machine Manager VMM32.VXD)
                      Отвечает за управление памятью, обработку событий и прерываний, загрузку и инициализацию драйверов виртуальных устройств, создание новых виртуальных машин и управление потоками.


                      Конфигурационный менеджер (Configuration Manager CONFIGMG)
                      Отвечает за реализацию функционала “Plug and play”; мониторинг изменений конфигурации аппаратных средств; обнаружение устройств, используя нумераторы шин; назначение портов ввода/вывода, запросов на прерывание (IRQs), каналов прямого доступа к памяти (DMA) и обеспечение бесконфликтной работы с памятью.


                      Устанавливаемый диспетчер файловой системы (Installable File System Manager) (подсистема ввода/вывода)
                      Координирует доступ к поддерживаемым файловым системам. Windows 95 изначально поставлялась с поддержкой FAT12, FAT16, расширения VFAT, ISO 9660 (CDFS) и сетевых перенаправителей (network redirectors). Позже была выпущена поддержка FAT32.


                      Запросы доступа к физическим носителям отправляются к супервизору ввода/вывода (Input/Output Supervisor), компоненту, ответственному за планирование запросов. Каждый физический носитель имеет свой собственный драйвер устройства: доступ к диску осуществляется с помощью драйвера порта (port driver), тогда как доступ к SCSI устройству обрабатывается минипорт-драйвером (miniport driver), который работает поверх уровня SCSI. Драйвера порта и минипорта осуществляют операции ввода/вывода в 32-битном защищенном режиме, минуя MS-DOS и BIOS, обеспечивая значительное улучшение производительности. В случае, если для некоторого запоминающего устройства нет родного драйвера Windows, или если устройство вынужденно запускаться в режиме совместимости, Real Mode Mapper может обращаться к ним через MS-DOS.


                      32-битные Windows программам назначаются их собственные сегментам памяти, которые могут быть приведены к любому желаемому размеру. Доступ к памяти вне сегмента невозможен. Если в программе происходит сбой, то ничего другое не повреждается. До этого в программах использовались фиксированные невыносимые (non-exclusive) сегменты размером 64 КБ. Хотя размер 64 КБ был серьезным препятствием для DOS и Windows 3.x, отсутствие гарантии выносисмости стало причиной проблем со стабильностью, поскольку программы иногда перезаписывали сегменты друг друга. Аварийная программа Windows 3.x может выбить окружающие процессы.


                      Win32 API реализован тремя модулями, каждый состоит из 16-ти и 32-битного компонентов:


                      Kernel
                      Обеспечивает высокоуровневый доступ к памяти, управление процессами и доступ к файловой системе. Состоит из KRNL386.EXE, KERNEL32.DLL и VWIN32.VXD.


                      User
                      Данный модуль ответственен за управление и отрисовку различных компонентов пользовательского интерфейса, таких как окна, меню и кнопки.


                      Graphics Device Interface (GDI)
                      Отвечает за отрисовку изображений способом, независимым от конкретного устройства вывода. Состоит из GDI.EXE и GDI32.DLL.


                      Зависимость от MS-DOS


                      Для конечных пользователей MS-DOS выступает в качестве основного компонента Windows 95. Например, можно предотвратить загрузку графического пользовательского интерфейса и загрузить систему в среду реального времени MS-DOS. Это вызвало споры среди пользователей и специалистов по вопросу о том, в какой мере Windows 95 является операционной системой или просто графической оболочкой, которая работает поверх MS-DOS.


                      Когда графический интерфейс пользователя запущен, диспетчер виртуальной машины берет на себя функции, связанные с файловой системой и диском. Сама MS-DOS понижена до уровня совместимости c 16-разрядными драйверами устройств. Это контрастирует с более ранними версиями Windows, которые полагаются на MS-DOS для доступа к файлам и диску (Windows for Workgroups 3.11 также может в значительной степени обойти MS-DOS, когда включены 32-разрядный доступ к файлам и 32-разрядный доступ к диску). Сохранение MS-DOS в памяти позволяет Windows 95 использовать драйверы устройств DOS, когда подходящие драйверы Windows недоступны. Windows 95 способна использовать все 16-разрядные драйверы Windows 3.x.


                      В отличие от Windows 3.1x, работающие в Windows 95 программы DOS не нуждаются в драйверах DOS для мыши, CD-ROM и звуковой карты. Вместо этого используются драйверы Windows. HIMEM.SYS по-прежнему требуется для загрузки Windows 95. EMM386 и другие менеджеры памяти, однако, используются только старыми программами DOS. Кроме того, настройки CONFIG.SYS и AUTOEXEC.BAT (кроме HIMEM.SYS) не оказывают влияния на программы Windows. Игры DOS, которые не могли быть запущены на Windows 3.x, могут запускаться внутри Windows 95 (игры, как правило, блокируют Windows 3.x или вызывают другие проблемы). Как и в Windows 3.x, программы DOS, которые используют графические режимы EGA или VGA, работают в оконном режиме (программы CGA и текстового режима могут продолжать работать).


                      При запуске Windows 95 компонент MS-DOS реагирует на нажатие клавиши F8, временно приостанавливая процесс загрузки по умолчанию и представляя меню параметров загрузки DOS, позволяя пользователю продолжать нормально запускать Windows, запускать Windows в безопасном режиме или выйти в режим DOS. Как и в предыдущих версиях MS-DOS, тут нет 32-разрядной поддержки и драйверы DOS должны быть загружены для мыши и другого оборудования.


                      Будучи основанной на DOS, Windows 95 должна поддерживать внутренние структуры данных DOS, синхронизированные с структурами Windows 95. При запуске программы, даже собственной 32-разрядной программы Windows, MS-DOS кратковременно выполняет создание структуры данных, такой как Program Segment Prefix (префикс сегмента программы). Возможно, MS-DOS даже не использует обычную память, что препятствует запуску программы. Windows 3.x выделяет фиксированные сегменты в обычной памяти. Поскольку сегменты были распределены как фиксированные, Windows не могла их перемещать, что могло бы помешать запуску других программ.


                      Microsoft частично удалила поддержку File Control Blocks (блоки управления файлами) в Windows 95 OSR2 (OEM Service Release 2). Функции FCB могут читать только тома FAT32, но не записывать их.

                        0
                        Никак не взаимодействуя с сервисами MS DOS, лишь предоставляя к ним доступ — это как?

                        Это буквально — API сервисов MS DOS для приложений доступен через int 21h. Который не используется Windows 3.1, но вы вольны обращаться к нему из приложений.
                        DrPass, Вы когда-нибудь писали системные программы для MS DOS (например, резидентные), для Windows 3.x и далее?

                        Да, писал.
                        И я не знаю, к чему вы копипастили вот то полотенце текста, но там мухи с котлетами намешаны. Если вы посмотрите на архитектуру Win 3.1, вы там увидите примерно то же самое — VMM, KRNL386, User, GDI.
                          0
                          И опять таки полотенце текста
                          Это буквально — API сервисов MS DOS для приложений доступен через int 21h. Который не используется Windows 3.1, но вы вольны обращаться к нему из приложений.

                          Ошибаетесь.
                          Семейство Windows 3.x могло функционировать в трёх различных режимах работы с памятью:


                          • Реальный режим, предназначенный для старых компьютеров (8086, 8088, 80186).
                          • Стандартный режим, предназначенный для компьютеров с процессором 80286.
                          • Расширенный режим 386, предназначенный для компьютеров с процессором 80386.

                          В реальном режиме Windows 3.x полностью полагался на MS DOS.
                          В стандартном режиме использовался DOS-extender (dosx.exe).
                          А в расширенном — VMM.


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


                          VMM же всегда разрабатывался как надстройка над MS-DOS.
                          В Windows, основанных на VMM навсегда остались 16-битные подсистемы USER и GDI. Настоящая вытесняющая многозадачность в VMM была только между виртуальными машинами MS-DOS, которые по очевидным причинам не знали о USER и GDI и никогда туда не обращались.
                          Что касается устройств, то приложения DOS обычно содержали в себе весь код для работы со "своими" устройствами, и VMM потому первоначально также не включал в себя драйверы устройств.


                          Таким образом, Ваше утверждение о том, что Windows 3.1 не использовал MS DOS — является ошибкой.


                          Если пойти дальше, то Windows 3.11 for Workstation использует 21-е прерывание MS DOS, полностью подменяя его своим программным кодом.


                          Итого.


                          Windows 3.x требует предварительно установленной копии MS-DOS, которая должна загружаться при включении компьютера. Windows 3.x затем запускается как приложение, и её работа может быть прервана в любое время, в результате чего происходит возврат в обычную командную оболочку MS-DOS.
                          Кроме того, драйверы для некоторых устройств (включая драйверы для дисководов для компакт-дисков и доступа к сети) предоставляются только MS-DOS.


                          Windows 95 не требует предварительно установленной полноценной копии MS-DOS для своего запуска, а загружается сразу загрузчиком ОС. При завершении работы Windows 95 возврата в обычную командную оболочку MS-DOS не происходит за отсутствием таковой на этапе, предшествующем загрузке Windows 95. Но при этом мы помним, что часть программного кода MS DOS заимствована в программном коде Windows 95 (например, всё в том же VMM со своим 16-битным наследием). Но MS DOS, как таковая, здесь уже не представлена в независимом, выделенном, автономном и полноценном виде. По сути — MS DOS уже как таковой тут нет. Поэтому назвать Windows 95 неполноценной ОС уже нельзя (хотя следы MS DOS в линейке Windows 9x (95,98,ME) будут тянуться ещё долго).


                          Но вернёмся к Windows 3.x.
                          Программа в среде MS-DOS имеет возможность выполнять любые действия, в том числе заменять или пропускать код MS-DOS или его часть, временно или постоянно. Это основа написания резидентных программ (прости мне Господи все мои прегрешения тех лет).
                          И Windows 3.x как раз и использует эту возможность (предоставленную MS DOS) в своих собственных целях. Однако, уровень пропуска стандартного кода MS-DOS возрастал с каждой новой версией Windows.


                          Windows 3.1 и её 32-разрядный доступ к диску заменял код BIOS для доступа к дискам через перехват int 13h и частично код MS DOS через перехват int 21h, подменяя собой, например, такие функции этого прерывания, как 13H, 1bH, 1dH, 21H и 22H (и другие), если помните. Перехват стандартного десятого прерывания BIOS активно использовался GDI (двумерная графика) для обеспечения работы USER (пользовательский интерфейс, менеджер окон), а Windows для рабочих групп 3.11 заменяла родной код MS-DOS для обращения к файлам полностью (и опять же, через перехват int 21h и ряда функций MS DOS этого прерывания).


                          И вот Вам таки вопрос.


                          Перехват уже существующего прерывания, изначально установленного программным кодом предшественника, то есть подмена адреса обработчика данного прерывания адресом начала своего программного кода (с возможным запоминанием его и последующим восстановлением) — это по Вашему что?
                          Это полноценная операционная система или операционная система (или приложение) поверх другой полноценной операционной системы? Считается ли такое поведение взаимодействием, особенно в свете использования Windows 3.x драйверов для дисководов для компакт-дисков и доступа к сети, которые предоставляются MS DOS и без которых Windows 3.x становится бесполезным ПО? Что является причиной и что является следствием?


                          Давайте вернёмся к основе вопроса — может ли операционная система считаться полноценной, если для её функционирования обязательно требуется наличие другой полноценной операционной системы и никак иначе?
                          Речь не идёт о микропрограммном коде, например, базовой системы ввода/вывода или драйверов устройств, потому что ни те ни другие не обеспечивают полного комплекса взаимодействия пользователя или приложения с аппаратной частью устройства. Этим занимается посредник (дирижёр) — операционная система (или сервис), которая, объединяя все части системы в целое, оперирует (дирижирует) ими, устанавливая некоторые правила и возможности. Именно поэтому — она и называется операционной.


                          Если Вы действительно писали системное ПО под MS DOS, Windows 3.x и Windows 95, то должны понимать, как именно влияют котлеты на поведение мух.


                          P.S. Извините, если чем-то кого-то обидел. 51 год. В ИТ с 1989 года.

                            0
                            для ответа на Ваш вопрос можно провести примитивнейший эксперимент: отформатируйте диск. разметьте на разделы. установите на него win3.x и запустите. вышло?.. на 99% уже на шаге установки у Вас ничего не выйдет. в отличии от win95\98\ME. Хотя в последних путем несложной манипуляции можно загрузитсья в «чистый» DOS ( по моему он про себя писал v5.0, уже не помню за давностью ) не загружая собственно Win95. Если включить логику то все-таки 95-ка тоже надстройка над DOS, просто сам MS DOS итегрирован в дистрибутив Win9x. То что Win 3.x как и Win9x после своего запуска забирает на себя 90% системных вызавов и сама их обрабатывает — еще не делает ее ОС. В те далеки время большинство больших пакетов так работало. особенно если приложение работало с графикой или с большими массивами данных. Хоть тот же AutoCad тех времен. Только от этого AutoCad ( даже с его внутренним языком программирования ) не ставновиться ОС. Вот WinNT ( 3.xx,4 и т.д.) — это полноценная автономная ОС с возможностью худо-бедно эмулировать MS-DOS для сессии. В те далекие времена была еще одна полноценная ОС, очень жаль что она умерла… OS/2. Мне она по реализации нравилась намного больше.
                            Кстати вот например сейчас Oracle когда запускается в режиме ASM — забирает на себя работу с дисковой подсистемой ( ну точнее может забрать и работать с неразмеченными блочными устройствами, если настроишь ;) — он же от этого ОС не становиться ну никак. PS 2Ораклисты — не кидайте в меня камни -я разницу понимаю это просто сравнение.
                              0
                              для ответа на Ваш вопрос можно провести примитивнейший эксперимент: отформатируйте диск. разметьте на разделы. установите на него win3.x и запустите. вышло?
                              А давайте еще и BIOS удалим, ну что бы по честному. Выйдет у вас установить MS-DOS? Так что, и MS-DOS — не OC?
                              Где проходит та грань когда "это ОС использующая другое промежуточное ПО для загрузки" и "это не ОС потому что она использует другое промежуточное ПО для загрузки"?
                                0
                                Вы говорите глупость. Ибо BIOS есть часть аппаратной состовляющей ПК. И никогда к части OS не относился.
                                Тут корректнее в другую сторону возражать. Современный Android телефонный — это ОС или нет. Вот тут я бы спорить не стал. Ибо это по сути Java машина запущенная поверх кастрированого Linux если не ошибаюсь. в общем unix-like. Аналогия DOS\Win 3.x близкая. Хотя в силу своей архитектуры — интеграция намного глубже — для всех приложений «под-андроид» ( а на другие оно не рассчитано) Андроид наверно выступает ОС. да и от *nix там мало что осталось… Но тут интересно мнение гуру программистов под Андроид.
                                  0
                                  BIOS — это программная часть ПК. Да, если бы все что делал BIOS — считывал нулевой сектор и передавал туда управление — я бы может с вами и согласился. Но… BIOS делает гораздо больше. Многие программы для DOS использовали прерывания BIOS(Int 10h — Video Services, Int 13h — Low Level Disk Services, Int 16h — Keyboard services), DOS как таковой мог быть им совсем не нужен.
                                  Вы можете запустить приложение Android на голом Linux? Вы можете запустить приложение Win 3.x на голом DOS?
                  0
                  Не туда…

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

                  Самое читаемое