Windows 95

Windows 95 - гибридная 16/32-разрядная операционная система с графическим интерфейсом, выпущенная 24 августа 1995 года корпорацией Microsoft.

История

Работа над новой версией операционной системы, которая должна была стать преемником популярной Microsoft Windows 3.1, началась в 1992 году и продолжалась немногим более 3-х лет. Официально название новой операционной системы Microsoft Windows 95 было объявлено 8 сентября 1994 года, а непосредственно выпуск состоялся 24 августа 1995 года.

Летом 1995 года корпорация развернула грандиозную маркетинговую программу во всем мире. Повсюду звучала реклама с хитом Start Me Up группы Rolling Stones. На небоскреб Empire States Building в Нью-Йорке проецировалось изображение логотипа Microsoft Windows, а в день выхода Windows 95 армия одетых в униформу сотрудников корпорации вручала копии программы фанатам, простоявшим в очереди всю ночь. За четыре дня продаж во всем мире было продано более 1 млн. копий Windows 95, а к 17 октября это число достигло 7 миллионов.

Нововведения

  • Значительно улучшен интерфейс графической оболочки системы. Экран дисплея представлял собой поверхность рабочего стола, на котором файлы показаны в виде пиктограмм, помещенных в специальные папки. Для работы с программами Windows 95 использовалась одна кнопка Start (или «Пуск» — в русской версии), а для доступа к уже запущенным программам предназначалась специальная панель задач, как правило расположенная в нижней части экрана.
  • Реализован режим Plug and Play, предназначенный для автоматического распознавания периферийных устройств, имеющиеся в компьютере и установки нужных драйверов.
  • Увеличена предельная длина в наименовании файлов - теперь имена могут содержать до 255 символов.
  • Заметно переработаны и дополнены средства мультимедиа.
  • Появилась поддержка 32-разрядных приложений и новых сетевых протоколов

Длинные имена файлов

32-разрядный доступ к файлам был необходим для длинных имён файлов — функции, доступной в Windows 95 благодаря использованию файловой системы VFAT (варианта FAT16). Эта возможность была доступна как программам Windows, так и программам MS-DOS, запущенным из Windows (их было необходимо немного подправить, так как доступ к файлам по длинным именам требовал использования большего буфера для пути и, как следствие, других системных вызовов). Другие DOS-совместимые операционные системы требовали обновления для того, чтобы пользоваться длинными именами файлов. Использование старых версий утилит DOS для управления файлами могло повредить длинные имена файлов при их копировании и перемещении. В процессе автоматического обновления Windows 3.1 до Windows 95 утилиты DOS и третьих сторон, которые могли повредить длинные имена файлов, обнаруживались и отключались. Для тех случаев, когда возникала необходимость использовать старые дисковые утилиты, не воспринимавшие длинные имена файлов (например, программу defrag из пакета MS-DOS 6.22), была предоставлена программа LFNBACK для сохранения и восстановления длинных имён. Программа расположена в каталоге \ADMIN\APPTOOLS\LFNBACK компакт-диска Windows 95.

Интерфейс

Графический интерфейс Windows 95 стал значительно более мощным и простым в использовании, в результате чего соперничество на рынке настольных операционных систем завершилось победой Microsoft. Windows 95 стала несомненным успехом на рынке, и в течение года-двух после её выпуска стала самой успешной из всех когда-либо созданных операционных систем. Windows 95 сделала такие функции графического интерфейса, как кнопка «Пуск» и панель задач, доступными массовому потребителю (хотя подобные функции были реализованы и ранее — в операционных системах Arthur и RISC OS — рынок этих систем был крайне ограниченным). Эти функции стали неизменным атрибутом всех последующих версий Windows, и впоследствии копировались в других графических интерфейсах.

Недостатки

Несмотря на все преимущества, Windows 95 - это по-прежнему вариация на тему Windows 3.1. Для большинства пользователей это означает, что заложенные в ней архитектурные анахронизмы могут приводить к неожиданному краху системы. Даже по мнению специалистов Microsoft, для важных бизнес-приложений более предпочтительным является использование Windows NT, которая обеспечивает защиту данных и устойчивость к некорректной работе приложений.

Одной из проблем Windows 3.1 являлась способность приложения вызывать крах системы, вынудив делать перезагрузку. В Windows 95 осталось много старого кода, с помощью которого осуществляется выполнение приложений. Например, такие критические компоненты операционной системы, как USER и GDI, которые соответственно обеспечивают управление окнами и предоставляют средства графического интерфейса, являются по-прежнему 16-разрядными и работают в том же адресном пространстве, что и 16-разрядные приложения. Поэтому 16-разрядное приложение, содержащее ошибки, может потенциально "подвесить" виртуальную машину, на которой работают подсистемы USER и GDI, или, что еще хуже, заставить USER или GDI неверно работать, что может привести к краху всей ОС. Даже 32-разрядные приложения могут вызвать остановку системы. Большая часть нижней памяти размером в 1 Мбайт, принадлежащая адресному пространству системного кода Windows 95 (то есть системной виртуальной машине System VM), открыта для операций приложения Win32.

Многозадачность - это еще одно потенциально слабое место. Windows 95 пересылает все вызовы USER API через 16-разрядную системную виртуальную машину System VM, которая размещается там же , где и выполняемое 16-разрядное приложение. Если 16-разрядное приложение "подвешивает" машину System VM, отказываясь обрабатывать сообщение (встречающийся чаще всего тип ошибки в существующих приложениях Windows), то все остальные процессы приостанавливаются. Пока пользователь не завершит в принудительном порядке зависшее 16-разрядное приложение и тем самым не освободит машину System VM, другие выполняемые программы, даже 32-разрядные, будут заблокированы.

Архитектура Windows 95

Архитектура Windows 95 представляет собой немного улучшенную версию архитектуры Windows 3.1. Внутри системной виртуальной машины выполняются приложения Win16 и Win32. Большая часть кода операционной системы и данных также размещается здесь. Приложения Win32 работают на основе алгоритма вытесняющей многозадачности в отдельных адресных пространствах. Все приложения Win16 выполняются как единый процесс в общем адресном пространстве на основе алгоритма невытесняющей многозадачности. Библиотеки динамической компоновки USER, USER32, GDI, GDI32, KERNEL и KERNEL32, которые предоставляют системные сервисы всем приложениям, загружаются в системную виртуальную машину и отображаются в адресные пространства каждого прикладного процесса. Это повышает производительность за счет устранения затрат времени на переходы между кольцами защиты при вызове системных функций. Однако с другой стороны, это также ставит под угрозу целостность системы, открывая доступ к частям операционной системы для прикладных программ. На виртуальных DOS-машинах (VDM) выполняются DOS-программы. Они работают в режиме вытесняющей многозадачности.

Подсистема управления файлами Windows 95 работает в нулевом кольце защиты и обрабатывает все вызовы, связанные с вводом-выводом. Большинство вызовов обрабатывается в защищенном режиме, но некоторые по-прежнему приводят к переключению в режим Virtual 86, и обрабатываются в реальном режиме DOS. Диспетчер устанавливаемых файловых систем IFS передает вызовы файлового ввода-вывода драйверу соответствующей файловой системы. Драйвер файловой системы VFAT реализует собственную VFAT-систему Windows 95, которая похожа на файловую систему FAT с добавленными средствами обработки длинных имен файлов. Драйвер CDFS заменяет MSCDEX и управляет операциями по вводу данных с CD. Редиректор, выполненный в виде драйвера файловой системы, обеспечивает обращение к сетевым накопителям. Можно устанавливать дополнительные драйверы файловых систем. Подсистема блочного ввода-вывода выполняет соответствующие операции на физическом уровне в ответ на запросы драйверов файловых систем.

Подсистема управления виртуальными машинами (VMM) предоставляет низкоуровневые сервисные функции, например, планирование нитей и управление памятью. Сюда также относятся драйверы виртуальных устройств (VxD) для аппаратуры.