Windows 3x

Windows 3.x — общее название поколения операционных систем Windows от корпорации Microsoft, выпущенных с 1990 по 1994 год. Первой широко распространённой версией Microsoft Windows стала 3.0, позволив Microsoft соревноваться с Macintosh и Commodore Amiga в области операционных систем с графическим интерфейсом.

Вопреки распространённому мнению, на самом деле Windows 3.x все же является операционной системой, так как, хотя она и является надстройкой над DOS (как и все Windows 9x), в ней задействуются механизмы виртуализации памяти, что является одним из характерных признаков ОС.

Windows 3.0
Windows 3.0 была выпущена 22 мая 1990 года и имела значительно обновлённый пользовательский интерфейс, а также технические усовершенствования, позволявшие использовать возможности процессоров Intel 80286 и 80386 по управлению памятью. Текстовые программы, созданные для MS-DOS, могли быть запущены в окне (эта возможность была ранее доступна в более ограниченном виде в Windows/386 2.1). Это делало систему пригодной к использованию в качестве простой многозадачной базы для старых программ; однако, для домашних компьютеров эта функция не имела большого значения, так как большинство игр и развлекательных приложений по-прежнему требовали непосредственного доступа к DOS.

Средство MS-DOS Executive, использовавшееся ранее для запуска программ и управления файлами, было заменено средствами Диспетчер программ и Диспетчер файлов, упростившими эти действия. Тем не менее, MS-DOS Executive по-прежнему поставлялась с системой в качестве альтернативного пользовательского интерфейса. Панель Управления, ранее представлявшая собой обыкновенный апплет, была переделана и стала походить больше на свой аналог в операционной системе Mac OS. В ней были централизованы системные настройки, включая ограниченное управление цветовой схемой интерфейса. В поставку было включено несколько простых приложений, например, текстовый редактор Блокнот и текстовый процессор Windows Write (оба они были унаследованы от предыдущих версий Windows), средство записи макрокоманд (уникальная возможность Windows 3.0; впоследствии была удалена), и калькулятор (также из предыдущих версий). Более старая игра Реверси была дополнена карточным пасьянсом «Косынка».

Windows 3.0 была последней версией Windows, которая, по заявлениям Microsoft, поддерживала полную совместимость со старыми приложениями Windows и работала на DOS

Расширения
Расширения для мультимедиа были выпущены осенью 1991 года для поддержки дисководов для компакт-дисков и звуковых карт, по мере того, как они становились всё более распространёнными. Эти расширения были выпущены для OEM-поставщиков, в основном для производителей звуковых карт и дисководов для компакт-дисков. Они добавляли в систему Windows 3.0 возможность простого ввода-вывода звука и проигрывания аудио-компакт-дисков. Новые возможности расширений для мультимедиа были недоступны при работе в реальном режиме. Впоследствии, многие функции этих расширений были включены в Windows 3.1.

Windows 3.1 и более поздние версии
Windows 3.1 (изначально носившая кодовое имя Janus), выпущенная 18 марта 1992 года, была расширенной Windows 3.0. Она включала систему шрифтов TrueType (и предустановленный набор довольно качественных шрифтов), что впервые сделало Windows серьёзной платформой для компьютерной вёрстки. Аналогичные возможности можно было получить в Windows 3.0 при помощи приложения Adobe Type Manager. Эта версия Windows также включала простую антивирусную программу Microsoft Anti-Virus for Windows, которая позже стала известна тем, что определяла программу установки Windows 95 как содержащую компьютерный вирус. Начиная с этой версии системы Windows поддерживают 32-разрядный доступ к жёсткому диску.

Windows 3.1 была разработана таким образом, чтобы иметь максимальный уровень обратной совместимости с более старыми платформами Windows. Как и версия 3.0, Windows 3.1 имела Диспетчер Файлов и Диспетчер Программ.

Была также выпущена специальная версия, названная Windows 3.1 для Центральной и Восточной Европы, которая поддерживала кириллицу и имела шрифты с диакритическими знаками.

Встроенная поддержка сетей появилась в версии Windows для рабочих групп 3.11 (Windows for Workgroups 3.11), расширенной версии Windows 3.1. Она включала в себя поддержку SMB для общего доступа к файлам по протоколам NetBEUI и/или IPX, а также содержала компьютерную игру «Червы» (Hearts) и VSHARE.386, драйвер виртуального устройства для программы SHARE.EXE. Windows для рабочих групп 3.11 (Windows for Workgroups 3.11) поддерживала 32-разрядный доступ к файлам, полные 32-разрядные сетевые перенаправители и файловый кэш VCACHE.386. Кроме того, в версии 3.11 была убрана поддержка стандартного режима и игра «Реверси». Поддержка протоколов TCP/IP в Windows 3.x основывалась на отдельных пакетах от третьих сторон (например, Winsock). Дополнение от Microsoft (с кодовым именем Snowball) также предоставляло поддержку TCP/IP в Windows для рабочих групп, но этот пакет не стал широко доступным.

Ограниченная совместимость с новым 32-разрядным API Win32, который использовался в Windows NT, предоставлялась дополнительным пакетом Win32s.

В 1994 году была выпущена Windows 3.2. Windows 3.2 была обновлением Windows 3.1 для исправления написания и отображения сложных китайских шрифтов.

Со временем Windows 3.x была заменена Windows NT (Windows NT 3.1 и т.д.), Windows 95, Windows 98 и более поздними версиями, которые интегрировали компоненты MS-DOS и Windows в единый продукт.

В дальнейшем Windows 3.x нашла применение в старых встроенных системах. 1 ноября 2008 Microsoft прекратила выдачу лицензий на её использование.

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


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

Реальный режим позволял компьютеру работать так, как если бы он был компьютером 8088, включая ограничение на максимальный доступный объём оперативной памяти (1 мегабайт). Схема расширенной памяти применялась для того, чтобы использовать память в адресном пространстве выше 1 мегабайта (если таковая имелась). Это существенно замедляло работу компьютера, и реальный режим использовался только в том случае, если какие-либо старые приложения не могли работать в стандартном и расширенном режимах, либо на старых компьютерах, которые поддерживали только реальный режим. Windows 3.0 была последней версией Windows, которая могла работать в реальном режиме.

Стандартный режим требовал процессор 286 или выше, и использовал защищённый режим такого процессора. Это позволяло напрямую обращаться ко всей оперативной памяти компьютера одновременно, и давало возможность использовать виртуальную память, многозадачность (Windows не использовала многозадачность в стандартном режиме для приложений DOS) и защиту памяти, что делало Windows более стабильной в случае ошибки в приложении. Поддержка стандартного режима отсутствует в Windows для рабочих групп 3.11.

Расширенный режим 386 требовал процессор 386 или выше. Он включал все преимущества стандартного режима, плюс 32-разрядную адресацию для более быстрого обращения к памяти и выполнения программ. Однако этот режим требовал поддержки со стороны драйверов, поэтому устройства со старыми драйверами не могли работать в расширенном режиме [источник не указан 3056 дней]. Ввиду этого пользователям приходилось ждать появления новых драйверов, удалять устройства из компьютера, либо работать в стандартном режиме [источник не указан 3056 дней]. Основным преимуществом расширенного режима была настоящая многозадачность между приложениями DOS (но не Windows), и возможность их запуска в окнах.

В стандартном и расширенном режимах Windows 3.1 могла работать максимум с 256 мегабайтами ОЗУ; для Windows 3.0 это ограничение равнялось 16 мегабайтам. В первой половине 1990-х годов из-за дороговизны микросхем оперативной памяти большинство компьютеров на основе процессоров 386 и 486 редко имели даже 8 мегабайт ОЗУ, а 16 мегабайт считались роскошью, так что если бы потребность в памяти выросла до 256 мегабайт, большая часть её поддерживалась бы виртуальной памятью на жёстком диске, приводя к серьёзному замедлению работы.

Техническая разница стандартного и расширенного режима: в первом использовался DOS-extender dosx.exe, во втором — VMM.

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

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.

Модификация интерфейса
Существует среда операционного стола Calmira с открытым исходным кодом, позволяющая использовать в Windows 3.x интерфейс Windows 95 или Windows XP (или более поздних версий в модифицированных вариантах).