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