--PAGE_BREAK--Простота DOS позволяет делать то, что неосуществимо в более сложных операционных средах. Например, можно с помощью команды DEBUG создать очень мощные утилиты. API (application programming interface, интерфейс прикладных программ) DOS достаточно прост, и даже начинающие программисты могут научиться писать полезные программы. В то же время API Windows очень сложен и для овладения им необходимо несколько месяцев. Кроме того, создание программ для Windows требует изощренных инструментальных средств, в частности редакторов ресурсов, компиляторов и отладчиков, работающих в этой операционной системе. Не случайно, что для Windows гораздо меньше условно бесплатного и бесплатного программного обеспечения.
2. Windows 3.1x
Ключевой идеей Windows является обеспечение полной независимости программ от аппаратуры. Система Windows 3.1 изначально создавалась так, чтобы полностью взять на себя общение с конкретным типом дисплея или принтера. Как пользователю, так и программисту, создающему приложение под Windows предоставлены универсальные средства, снимающие проблему обеспечения совместимости с конкретной аппаратурой (аппаратная совместимость) и программным обеспечением (программная совместимость).
Унифицированный единый графический интерфейс с пользователем облегчает изучение новых программных продуктов.
Одним из средств, обеспечивающих программную совместимость, является механизм обмена данными между различными приложениями. Специальный «почтовый ящик» (clipboard) Windows 3.1 позволяет пользователю переносить информацию из одного приложения в другое, не заботясь о ее формате и представлении. В отличии от профессиональных операционных систем, где механизм обмена данных между программами доступен только программисту, в Windows 3.1 это делается очень просто и наглядно для пользователя.
Механизм обмена данных между приложениями — жизненно важное свойство многозадачной среды. И в настоящее время производители программного обеспечения пришли уже к выводу, что для переноса данных из одного приложения в другое одного «почтового ящика» явно недостаточно. Появился новый, более универсальный механизм — OLE (Object Linking Embedded — Встроенная Объектная Связь), который позволяет переносить из одного приложения в другое разнородные данные.
Windows не только позволяет работать с привычным программным продуктом, но и предлагает дополнительные возможности (запуск нескольких программ одновременно, быстрое переключение с одной программы на другую, обмен данными между ними и т.п.). Обеспечена возможность работы со всеми прикладными программами MS-DOS (текстовыми процессорами, СУБД, электронными таблицами и пр.).
Windows 3.1 может работать в одном из трех режимов: Real (реальном), Standart (стандартном), 386 Enhanced (расширенном). В процессе установки Windows анализирует имеющиеся аппаратные ресурсы и автоматически устанавливает режим, наиболее полно использующий возможности имеющейся аппаратуры.
В реальном режиме Windows 3.1 не использует аппаратные возможности, не поддерживаемые MS-DOS (этот режим является единственно возможным для машин с процессором 8086/8088): как и в MS-DOS, пользователь ограничен оперативной памятью в 640 Кбайт.
В стандартном режиме (возможном на компьютерах с процессором 80286 или 80386) Windows 3.1 полностью использует имеющуюся на компьютере расширенную память, загружая туда все приложения, написанные специально для Windows. Программы DOS загружаются в обычную память.
В расширенном режиме (возможном на компьютерах с процессором 80386 и выше) при запуске приложений (как Windows, так и обычных программ для MS-DOS) Windows 3.1 поддерживает т.н. режим виртуальной машины (запускаемой программе как бы выделяется свой собственный компьютер со всеми ресурсами), реализуя многозадачную среду.
Windows 3.1 позволяет запускать одновременно несколько программ (в том числе одну и ту же программу несколько раз), с возможностью мгновенного переключения с одной программы на другую. Это позволяет инициировать длительный процесс (печать, сортировку и копирование больших объемов данных) и заняться другой работой, а не ждать, пока он закончится.indows 3.1x
3. Windows 95
Windows 95 представляет собой продукт эволюционного развития системы Windows 3.1x и не означает полного разрыва с прошлым. Хотя она несет в себе много важных изменений по сравнению с 16-разрядной архитектурой Windows, в ней сохранены некоторые важнейшие свойства ее предшественницы. Результатом стало появление гибридной ОС, способной работать с 16-разрядными прикладными программами Windows, программами, унаследованными от DOS, и старыми драйверами устройств реального режима и в то же время совместимой с истинными 32-разрядными прикладными программами и 32-разрядными драйверами виртуальных устройств.
Среди наиболее важных усовершенствований, появившихся в Windows 95, — изначально заложенная в ней способность работать с 32-разрядными многопотоковыми прикладными программами, защищенные адресные пространства, вытесняющая многозадачность, намного более широкое и эффективное использование драйверов виртуальных устройств и возросшее применение 32-разрядных хипов для хранения структур данных системных ресурсов. Ее наиболее существенный недостаток состоит в относительно слабой защищенности от плохо работающих программ, содержащих ошибки.
Каждая собственная прикладная программа Windows 95 видит неструктурированное 4 Gb-ное адресное пространство, в котором размещается она сама плюс системный код и драйверы Windows 95. Каждая 32-разрядная прикладная программа выполняется так, как будто она монопольно использует весь ПК. Код прикладной программы загружается в это адресное пространство между отметками 2 и 4 Gb. Хотя 32-разрядные прикладные программы «не видят» друг друга, они могут обмениваться данными через буфер обмена (Clipboard), механизмы DDE и OLE. Все 32-разрядные прикладные программы выполняются в соответствии с моделью вытесняющей многозадачности, основанной на управлении отдельными потоками. Планировщик потоков, представляющий собой составную часть системы управления виртуальной памятью (VMM), распределяет системное время среди группы одновременно выполняемых потоков на основе оценки текущего приоритета каждого потока и его готовности к выполнению. Вытесняющее планирование позволяет реализовать намного более плавный и надежный механизм многозадачности, чем кооперативный метод, используемый в Windows 3.1x.
Системный код Windows 95 размещается выше границы 2 Gb. В пространстве между отметками 2 и 3 Gb находятся системные библиотеки DLL кольца 3 и любые DLL, используемые несколькими программами. (32-разрядные процессоры фирмы Intel предоставляют четыре уровня аппаратной защиты, поименованные, начина с кольца 0 до кольца 3. Кольцо 0 наиболее привилегированно.) Компоненты кольца 0 в системе Windows 95 отображаются в пространство между 3 и 4 Gb. Эти важные участки кода с максимальным уровнем привилегий содержат подсистему управления виртуальными машинами (VMM), файловую систему и драйверы VxD.
Область памяти между 2 и 4 Gb отображается в адресное пространство каждой 32-разрядной прикладной программы, т. е. оно совместно используется всеми 32-разрядными прикладными программами в вашем ПК. Такая организация позволяет обслуживать вызовы API непосредственно в адресном пространстве прикладной программы и ограничивает размер рабочего множества. Однако за это приходится расплачиваться снижением надежности. Ничто не может помешать программе, содержащей ошибку, произвести запись в адреса, принадлежащие системным DLL, и вызвать крах всей системы.
В области между 2 и 3 Gb также находятся все запускаемые вами 16-разрядные прикладные программы Windows. С целью обеспечения совместимости эти программы выполняются в совместно используемом адресном пространстве, где они могут испортить друг друга так же, как и в Windows 3.1x.
Адреса памяти ниже 4 Mb также отображаются в адресное пространство каждой прикладной программы и совместно используются всеми процессами. Благодаря этому становится возможной совместимость с существующими драйверами реального режима, которым необходим доступ к этим адресам. Это делает еще одну область памяти незащищенной от случайной записи. К самым нижним 64 К этого адресного пространства 32-разрядные прикладные программы обращаться не могут, что дает возможность перехватывать неверные указатели, но 16-разрядные программы, которые, возможно, содержат ошибки, могут записывать туда данные.
4. Windows NT
Windows NT по существу представляет собой операционную систему сервера, приспособленную для использования на рабочей станции. Этим обусловлена архитектура, в которой абсолютная защита прикладных программ и данных берет верх над соображениями скорости и совместимости. Чрезвычайная надежность Windows NT обеспечивается ценой высоких системных затрат, поэтому для получения приемлемой производительности необходимы быстродействующий процессор и по меньшей мере 16 Mb ОЗУ. Как и в OS/2 Warp, в системе Windows NT безопасность нижней памяти достигается за счет отказа от совместимости с драйверами устройств реального режима. В среде Windows NT работают собственные 32-разрядные NT-прикладные программы, а также большинство прикладных программ Windows 95. Так же, как OS/2 Warp и Windows 95, система Windows NT позволяет выполнять в своей среде 16-разрядные Windows- и DOS-программы.
Схема распределения памяти Windows NT разительно отличается от распределения памяти систем Windows 95 и OS/2 Warp. Собственные прикладным программам выделяется 2 Gb особого адресного пространства, от границы 64 К до 2 Gb (первые 64 К полностью недоступны). Прикладные программы изолированы друг от друга, хотя могут общаться через буфер обмена Clipboard, механизмы DDE и OLE.
В верхней части каждого 2 Gb блока прикладной программы размещен код, воспринимаемый прикладной программой как системные библиотеки DLL кольца 3. На самом деле это просто заглушки, выполняющие перенаправление вызовов, называемые DLL клиентской стороны (client-side DLLs). При вызове большинства функций API из прикладной программы библиотеки DLL клиентской стороны обращаются к локальным процедурам (Local Process Communication — LPC), которые передают вызов и связанные с ним параметры в совершенно изолированное адресное пространство, где содержитс собственно системный код. Этот сервер-процесс (server process) проверяет значения параметров, исполняет запрошенную функцию и пересылает результаты назад в адресное пространство прикладной программы. Хотя сервер-процесс сам по себе остается процессом прикладного уровня, он полностью защищен от вызывающей его прикладной программы и изолирован от нее.
Между отметками 2 и 4 Gb расположены низкоуровневые системные компоненты Windows NT кольца 0, в том числе ядро, планировщик потоков и диспетчер виртуальной памяти. Системные страницы в этой области наделены привилегиями супервизора, которые задаются физическими схемами кольцевой защиты процессора. Это делает низкоуровневый системный код невидимым и недоступным по записи для программ прикладного уровня но приводит к падению производительности во врем переходов между кольцами.
Для 16-разрядных прикладных Windows-программ Windows NT реализует сеансы Windows on Windows (WOW). Как и OS/2 Warp, Windows NT дает возможность выполнять 16-разрядные программы Windows индивидуально в собственных пространствах памяти или совместно в разделяемом адресном пространстве. Почти во всех случаях 16- и 32-разрядные прикладные программы Windows могут свободно взаимодействовать, используя OLE (при необходимости через особые процедуры thunk) независимо от того, выполняются они в отдельной или общей памяти. Собственные прикладные программы и сеансы WOW выполняются в режиме вытесняющей многозадачности, основанной на управлении отдельными потоками. Множественные 16-разрядные прикладные программы Windows в одном сеансе WOW выполняются в соответствии с кооперативной моделью многозадачности. Windows NT может также выполнять в многозадачном режиме несколько сеансов DOS. Поскольку Windows NT имеет полностью 32-разрядную архитектуру, не существует теоретических ограничений на ресурсы GDI и USER.
5. OS/2 Warp
В апреле 1987 г. компании IBM и Microsoft объявили о совместных планах по созданию новой операционной системы: OS/2. Прошло несколько лет, и мир стал свидетелем «бракоразводного процесса», в результате чего у OS/2 остался один родитель — компания IBM, а фирма Microsoft отдала все симпатии любимому детищу, имя которому Windows. Важно помнить, что OS/2 — это новая операционная система с графическим интерфейсам пользователя (ГИП), в то время как Windows представляет собой ГИП, работающий «поверх» DOS.
OS/2 является полностью защищенной операционной системой, благодаря чему невозможны конфликты между программами в памяти. Многозадачная система OS/2 способна выполнять одновременно несколько прикладных программ: например, Вы можете начать пересчет электронной таблицы, запустить печать документа в текстовом редакторе, связной пакет для приема/передачи сообщений электронной почты, а затем продолжить поиск записей в базе данных.
Система OS/2 поддерживает многопроцессные прикладные программы, рассчитанные на одновременное выполнение нескольких внутренних функций. Примерами могут служить текстовый редактор, в котором печать документа и проверка правописания осуществляются параллельно; электронная таблица с возможностью одновременного выполнения функций пересчета и просмотра или база данных, в которой можно совмещать функции обновления и поиска записей.
Архитектура OS/2 Warp Connect 3.0 во многом похожа на архитектуру Windows 95, но в ее концепции заложено меньше компромиссов, связанных с использованием старого 16-разрядного кода. В результате появилась ОС с лучшими, чем у Windows 95, средствами защиты, в которой можно выполнять программы OS/2, Win16 и DOS, однако несовместимая с 16-разрядными драйверами устройств. 32-разрядные прикладные программы Windows не могут выполняться в среде OS/2 Warp.
Собственным 32-разрядным прикладным программам OS/2 доступно 4 Gb-ное отдельное адресное пространство. Код прикладных программ отображается в диапазон адресов от 0 до 512 Mb, системный код OS/2 отображается в пространство от 512 Mb до 4 Gb. Эта область системного кода используется совместно всеми процессами. Исполняемые 32-разрядные прикладные программы изолированы друг от друга, хотя они могут общаться между собой с помощью средств вырезания и вставки (cut-and-paste) или механизма DDE OS/2. В системе OS/2 Warp применяется модель вытесняющей многозадачности собственных прикладных программ, основанная на управлении отдельными потоками.
Такая организация обладает во многом теми же достоинствами и недостатками, что свойственны Windows 95. Выделение системных ресурсов происходит гладко, а вызовы, направляемые в системные API, могут обслуживаться без существенных накладных расходов, так как системные DLL расположены в тех же адресных пространствах, что и вызывающая прикладная программа. Размер рабочего множества тоже удерживается в разумных пределах, так как не нужно создавать множественные экземпляры системных DLL. Но защита не гарантируется, поскольку плохо работающие прикладные программы все же могут испортить важные системные области.
Однако в некоторых важных аспектах OS/2 Warp превосходит систему Windows 95. Проблемы ограниченности системных ресурсов не существует, так как в OS/2 Warp не используются 64 К хипы для хранения структур данных системных DLL. Эта ОС также предоставляет несколько служебных средств, отсутствующих в Windows, в том числе модель системных объектов (SOM) и REXX, мощный командный язык, используемый на многих платформах фирмы IBM.
В дополнение к собственным 32-разрядным прикладным программам, OS/2 Warp может выполнять 16-разрядные прикладные программы Windows. В зависимости от того, какую версию вы приобрели, OS/2 Warp использует для этой цели либо копию Microsoft Windows 3.1, либо собственные библиотеки Win-OS/2. В любом случае вы можете по своему выбору запустить сеанс Windows для каждой Windows-программы или выполнять все Windows-программы в совместно используемом адресном пространстве. Последний подход может обеспечить лучшую совместимость, но грозит обернуться потерей устойчивости, так как в этом случае ОС работает в сущности подобно Windows 3.1x. OS/2 Warp позволяет также запускать прикладные программы DOS на легко конфигурируемых виртуальных машинах DOS, работающих в режиме вытесняющей многозадачности.
Архитектура OS/2 не предназначена для запуска в ней драйверов устройств реального режима, поэтому ваши аппаратные средства должны поставляться с собственными драйверами OS/2. Преимущество такого подхода в том, что OS/2 может полностью защитить первые 4 Mb памяти прикладной программы, т. е. область, которая по-прежнему остается незащищенной от аварийных сбоев в среде Windows 95.
продолжение
--PAGE_BREAK--