Windows XP для бывалого бойца
Шрифт:
Microsoft объявила о начале разработки Windows, графической оболочки MS-DOS. Началась «обкатка» мыши – Microsoft выпустила собственную мышь и текстовый процессор Word с «мышиным» (хотя и символьным) интерфейсом.
Проблема заключалась в том, что у Microsoft не было опыта разработки графических операционных систем. Поэтому первую массовую графическую операционную систему выпустила фирма Apple. Разработками Apple руководил Стив Джобс. Как и Гейтс, он находился под впечатлением от разработок фирмы Xerox. Опираясь на опыт, полученный при создании компьютера Lisa, фирма Apple сотворила в 1984 году свой шедевр – компьютер Macintosh с собственной операционной системой. В первый же год было продано 100 тысяч компьютеров Macintosh. Microsoft не только не могла
Графический интерфейс
В оконном интерфейсе каждой выполняемой программе отводится экранное окно, способное занимать весь экран или его часть. Практическое значение многооконности в том, что в такой среде можно реализовать принцип многозадачности, то есть одновременного выполнения нескольких программ. Услышав о многозадачности, пользователи MS-DOS обычно говорили: «Я не делаю несколько дел одновременно», – хотя в течение рабочего сеанса приходилось многократно выгружать одни программы и загружать другие, так как напрямую переходить из одной программы в другую было нельзя.
В многооконной среде, напротив, вид экрана с окнами разных приложений наглядно демонстрирует возможности одновременного использования нескольких программ (рис. 1.1). Вы работаете с приложением, находящимся в самом верхнем окне, но простым щелчком в другом окне или на значке легко активизируете другую программу. Спроектированные для таких сред программы способны задействовать все их преимущества.
Рис. 1.1.
В концепции таких ОС, как Microsoft Windows, важное место занимает графический режим, который имеет мало общего со знакоместным графическим режимом, доступным, например, в текстовом процессоре Microsoft Word для MS-DOS и оболочке MS-DOS Shell. Последние всегда размещают на экране стандартное количество символов, например 80 х 25 или 80 х 43. Этим программам графический режим нужен для правильного отображения специальных значков, шрифтовых выделений и других специальных целей. Иное дело, когда Word для MS-DOS по команде просмотра перед печатью отображает на экране уменьшенную копию листа бумаги с распечаткой, но это просмотровый режим, а не рабочий. Перемещая (например, в Word или Norton Utilities для MS-DOS) мышью окно или диалоговую панель по экрану, вы можете добиться позиционирования этих объектов только с точностью до знакоместа.
Рис. 1.2.
Windows (а значит, и любая Windows-программа) позиционирует графические объекты с точностью до минимального графического элемента изображения – пиксела. Размеры таких объектов Windows, как элементы окон, кнопки и значки, стандартизированы. Для отображения системных сообщений и наименований команд меню Windows применяет растровые (матричные) шрифты разных типоразмеров для работы в режимах низкого и высокого разрешения. В документах, содержащих текст, Windows позволяет применять масштабируемые шрифты как для экранного вывода, так и для печати на принтере. Поэтому на экране документ выглядит практически так же, как и на бумаге, – это так называемый принцип WYSIWYG (What You See Is What You Get – что видишь, то и получаешь), или принцип точного отображения.
Сравните три изображения окна текстового процессора (рис. 1.2). Видеосистема компьютера, на котором они сделаны, позволяет работать с разрешениями 640 х 480, 1024 х 768 и 1280 х 1024 соответственно.
Унификация драйверов
Второй крупный недостаток MS-DOS – необходимость поддержки огромного количества всевозможных устройств. DOS-программам приходилось напрямую поддерживать множество типов принтеров и мониторов, и при появлении на рынке новых моделей устройств вывода разработчики были вынуждены соответствующим образом менять коды программ. Большая часть известных DOS-программ, таких как WordPerfect, Microsoft Word, Lotus 1-2-3, Quattro Pro, общались с принтерами через специальные драйверы – программные модули, предназначенные специально для того, чтобы переводить поток данных от программ на язык, «понятный» конкретному принтеру. Это позволяло при появлении новой модели принтера не переписывать программу, а лишь добавлять к ней новый драйвер. В комплект поставки упомянутых программ приходилось включать десятки и сотни драйверов…
Одним словом, новая операционная система должна была решить и эту проблему. Забегая вперед, скажем, что Windows-программы для вывода на печать пользуются услугами ОС Windows, а та уже работает с драйверами. Таким образом, Windows избавила и пользователей, и разработчиков от многих хлопот, связанных с поддержкой устройств. В Windows 3.1 был реализован аппаратно-незави-симый драйвер принтера, в дополнение к которому разработчики должны были писать только мини-драйверы для поддержки аппаратно-зависимых операций. В Windows 95 появились мини-драйверы экрана и диска. В Windows NT была реализована архитектура мини-драйвера диска (он называется порт-драйвером).
В Windows 98 была впервые введена поддержка нового класса драйверов, соответствующих модели WDM (Win32 Driver Model). WDM использует послойную архитектуру, в которой каждый слой изолирует часть сервисов, нужных для драйвера устройства.
Использование оперативной памяти
Сразу предупреждаю: в этом разделе упоминаются объемы оперативной памяти ПК, измеряемые в килобайтах (Кбайт), и это не опечатка, так как в начале 80-х годов многие полноценные приложения «умещались» в 16–64 Кбайт ОЗУ. Так вот, базовая, или стандартная, память (conventional memory) IBM PC-совмести-мых компьютеров представляла собой «целых» 640 Кбайт оперативной памяти, а всего микропроцессоры 8086/88 могли адресовать до 1 Мбайт, или 1024 Кбайт памяти. Для обращения к базовой памяти не были нужны никакие дополнительные драйверы, поскольку MS-DOS изначально была создана для работы в адресах 0–640 Кбайт.
Это казалось очень много, и именно в этом заключалась третья проблема MS-DOS. Ведь для создания ядра операционной системы, способной обеспечить графический пользовательский интерфейс и унифицированный доступ ко всем устройствам ввода-вывода для всех приложений, нужно было очень много памяти для программного кода и данных – гораздо больше, чем 640 Кбайт.
Первые три поколения Windows
В ходе самостоятельных разработок в области графического интерфейса Microsoft стремилась к тому, чтобы оконная среда не только была оболочкой для MS-DOS, позволяющей работать с файлами и запускать программы, но и предоставляла разработчикам собственный интерфейс прикладного программирования (Application Programming Interface, API).
Существовавшие тогда IBM PC-совместимые компьютеры не могли обеспечить полноценного функционирования графической среды, поэтому Windows 1.0 (1985 г.) выглядела довольно бледно и была примечательна преимущественно тем, что была первой. Она работала в реальном режиме процессора 8086, имела графический интерфейс с неперекрывающимися окнами, обеспечивала совместную работу графических Windows-приложений и одного приложения MS-DOS.
В 1987-88 годах появлялись уже вполне работоспособные реализации Windows/286 и Windows/386 (Windows 2.x). В интерфейсе этих ОС окна приложений могли перекрываться; свернутые окна приложений, работающих в фоновом режиме, выглядели как небольшие значки в нижней части экрана. Тогда же был реализован механизм динамического обмена данными (DDE). В Windows/286 можно было запустить в один момент времени лишь одно MS-DOS-приложение. Windows/386 (1988 г.) уже могла выполнять одновременно несколько приложений MS-DOS в отдельных виртуальных машинах благодаря механизму вытесняющей многозадачности.
Среда Windows имела свой API для работы с приложениями, но до появления Windows 3.0 была способна задействовать только нижние 640 Кбайт памяти MS-DOS и до 32 Мбайт так называемой отображаемой памяти, которая отображалась 16-килобайтными страницами на непрерывный страничный блок размером 64 Кбайт, находящийся выше стандартных 640 Кбайт – в области старших адресов (ухищрение разработчиков, к счастью, давно забытое). До версии 3.0 эта графическая среда особенного успеха на рынке не имела, так как практически не давала преимуществ ни разработчикам, ни пользователям.