Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lect2.doc
Скачиваний:
22
Добавлен:
11.04.2015
Размер:
606.21 Кб
Скачать

Основные понятия, концепции ОС

В процессе эволюции возникло несколько важных концепций, которые стали неотъемлемой частью теории и практики ОС. Рассматриваемые в данном разделе понятия будут встречаться и разъясняться на протяжении всего курса. Здесь дается их краткое описание.

Системные вызовы

В любой операционной системе поддерживается механизм, который позволяет пользовательским программам обращаться к услугам ядра ОС. В операционных системах наиболее известной советской вычислительной машины БЭСМ-6 соответствующие средства "общения" с ядром назывались экстракодами, в операционных системах IBM они назывались системными макрокомандами и т.д. В ОС Unix такие средства называют системными вызовами.

Системные вызовы (system calls) – это интерфейс между операционной системой и пользовательской программой. Они создают, удаляют и используют различные объекты, главные из которых – процессы и файлы. Пользовательская программа запрашивает сервис у операционной системы, осуществляя системный вызов. Имеются библиотеки процедур, которые загружают машинные регистры определенными параметрами и осуществляют прерывание процессора, после чего управление передается обработчику данного вызова, входящему в ядро операционной системы. Цель таких библиотек – сделать системный вызов похожим на обычный вызов подпрограммы.

Основное отличие состоит в том, что при системном вызове задача переходит в привилегированный режим или режим ядра (kernel mode). Поэтому системные вызовы иногда еще называют программными прерываниями, в отличие от аппаратных прерываний, которые чаще называют просто прерываниями.

В этом режиме работает код ядра операционной системы, причем исполняется он в адресном пространстве и в контексте вызвавшей его задачи. Таким образом, ядро операционной системы имеет полный доступ к памяти пользовательской программы, и при системном вызове достаточно передать адреса одной или нескольких областей памяти с параметрами вызова и адреса одной или нескольких областей памяти для результатов вызова.

В большинстве операционных систем системный вызов осуществляется командой программного прерывания (INT). Программное прерывание – это синхронное событие, которое может быть повторено при выполнении одного и того же программного кода.

Прерывания

Прерывание (hardware interrupt) – это событие, генерируемое внешним (по отношению к процессору) устройством. Посредством аппаратных прерываний аппаратура либо информирует центральный процессор о том, что произошло какое-либо событие, требующее немедленной реакции (например, пользователь нажал клавишу), либо сообщает о завершении асинхронной операции ввода-вывода (например, закончено чтение данных с диска в основную память). Важный тип аппаратных прерываний – прерывания таймера, которые генерируются периодически через фиксированный промежуток времени. Прерывания таймера используются операционной системой при планировании процессов. Каждый тип аппаратных прерываний имеет собственный номер, однозначно определяющий источник прерывания. Аппаратное прерывание – это асинхронное событие, то есть оно возникает вне зависимости от того, какой код исполняется процессором в данный момент. Обработка аппаратного прерывания не должна учитывать, какой процесс является текущим.

Исключительные ситуации

Исключительная ситуация (exception) – событие, возникающее в результате попытки выполнения программой команды, которая по каким-то причинам не может быть выполнена до конца. Примерами таких команд могут быть попытки доступа к ресурсу при отсутствии достаточных привилегий или обращения к отсутствующей странице памяти. Исключительные ситуации, как и системные вызовы, являются синхронными событиями, возникающими в контексте текущей задачи. Исключительные ситуации можно разделить на исправимые и неисправимые. К исправимым относятся такие исключительные ситуации, как отсутствие нужной информации в оперативной памяти. После устранения причины исправимой исключительной ситуации программа может выполняться дальше. Возникновение в процессе работы операционной системы исправимых исключительных ситуаций считается нормальным явлением. Неисправимые исключительные ситуации чаще всего возникают в результате ошибок в программах (например, деление на ноль). Обычно в таких случаях операционная система реагирует завершением программы, вызвавшей исключительную ситуацию.

Файлы

Файлы предназначены для хранения информации на внешних носителях, то есть принято, что информация, записанная, например, на диске, должна находиться внутри файла. Обычно под файлом понимают именованную часть пространства на носителе информации.

Главная задача файловой системы (file system) – скрыть особенности ввода-вывода и дать программисту простую абстрактную модель файлов, независимых от устройств. Для чтения, создания, удаления, записи, открытия и закрытия файлов также имеется обширная категория системных вызовов (создание, удаление, открытие, закрытие, чтение и т.д.). Пользователям хорошо знакомы такие связанные с организацией файловой системы понятия, как каталог, текущий каталог, корневой каталог, путь. Для манипулирования этими объектами в операционной системе имеются системные вызовы. Файловая система ОС описана в лекциях 11–12.

Процессы, нити

Концепция процесса в ОС одна из наиболее фундаментальных. Процессы подробно рассмотрены в лекциях 2–7. Там же описаны нити, или легковесные процессы.

Архитектурные особенности ОС

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

Монолитное ядро

По сути дела, операционная система – это обычная программа, поэтому было бы логично и организовать ее так же, как устроено большинство программ, то есть составить из процедур и функций. В этом случае компоненты операционной системы являются не самостоятельными модулями, а составными частями одной большой программы. Такая структура операционной системы называется монолитным ядром (monolithic kernel). Монолитное ядро представляет собой набор процедур, каждая из которых может вызвать каждую. Все процедуры работают в привилегированном режиме. Таким образом, монолитное ядро – это такая схема операционной системы, при которой все ее компоненты являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путем непосредственного вызова процедур. Для монолитной операционной системы ядро совпадает со всей системой.

Во многих операционных системах с монолитным ядром сборка ядра, то есть его компиляция, осуществляется отдельно для каждого компьютера, на который устанавливается операционная система. При этом можно выбрать список оборудования и программных протоколов, поддержка которых будет включена в ядро. Так как ядро является единой программой, перекомпиляция – это единственный способ добавить в него новые компоненты или исключить неиспользуемые. Следует отметить, что присутствие в ядре лишних компонентов крайне нежелательно, так как ядро всегда полностью располагается в оперативной памяти. Кроме того, исключение ненужных компонентов повышает надежность операционной системы в целом.

Монолитное ядро – старейший способ организации операционных систем. Примером систем с монолитным ядром является большинство Unix-систем.

Даже в монолитных системах можно выделить некоторую структуру. Как в бетонной глыбе можно различить вкрапления щебенки, так и в монолитном ядре выделяются вкрапления сервисных процедур, соответствующих системным вызовам. Сервисные процедуры выполняются в привилегированном режиме, тогда как пользовательские программы – в непривилегированном. Для перехода с одного уровня привилегий на другой иногда может использоваться главная сервисная программа, определяющая, какой именно системный вызов был сделан, корректность входных данных для этого вызова и передающая управление соответствующей сервисной процедуре с переходом в привилегированный режим работы. Иногда выделяют также набор программных утилит, которые помогают выполнять сервисные процедуры.

Многоуровневые системы (Layered systems)

Продолжая структуризацию, можно разбить всю вычислительную систему на ряд более мелких уровней с хорошо определенными связями между ними, так чтобы объекты уровня N могли вызывать только объекты уровня N-1. Нижним уровнем в таких системах обычно является hardware, верхним уровнем – интерфейс пользователя. Чем ниже уровень, тем более привилегированные команды и действия может выполнять модуль, находящийся на этом уровне. Впервые такой подход был применен при создании системы THE (Technishe Hogeschool Eindhoven) Дейкстрой (Dijkstra) и его студентами в 1968 г. Эта система имела следующие уровни:

Рис. 1.2. Слоеная система THE

Слоеные системы хорошо реализуются. При использовании операций нижнего слоя не нужно знать, как они реализованы, нужно лишь понимать, что они делают. Слоеные системы хорошо тестируются. Отладка начинается с нижнего слоя и проводится послойно. При возникновении ошибки мы можем быть уверены, что она находится в тестируемом слое. Слоеные системы хорошо модифицируются. При необходимости можно заменить лишь один слой, не трогая остальные. Но слоеные системы сложны для разработки: тяжело правильно определить порядок слоев и что к какому слою относится. Слоеные системы менее эффективны, чем монолитные. Так, например, для выполнения операций ввода-вывода программе пользователя придется последовательно проходить все слои от верхнего до нижнего.

Виртуальные машины

В начале лекции мы говорили о взгляде на операционную систему как на виртуальную машину, когда пользователю нет необходимости знать детали внутреннего устройства компьютера. Он работает с файлами, а не с магнитными головками и двигателем; он работает с огромной виртуальной, а не ограниченной реальной оперативной памятью; его мало волнует, единственный он на машине пользователь или нет. Рассмотрим несколько иной подход. Пусть операционная система реализует виртуальную машину для каждого пользователя, но не упрощая ему жизнь, а, наоборот, усложняя. Каждая такая виртуальная машина предстает перед пользователем как голое железо – копия всего hardware в вычислительной системе, включая процессор, привилегированные и непривилегированные команды, устройства ввода-вывода, прерывания и т.д. И он остается с этим железом один на один. При попытке обратиться к такому виртуальному железу на уровне привилегированных команд в действительности происходит системный вызов реальной операционной системы, которая и производит все необходимые действия. Такой подход позволяет каждому пользователю загрузить свою операционную систему на виртуальную машину и делать с ней все, что душа пожелает.

Рис. 1.3. Вариант виртуальной машины

Первой реальной системой такого рода была система CP/CMS, или VM/370, как ее называют сейчас, для семейства машин IBM/370.

Недостатком таких операционных систем является снижение эффективности виртуальных машин по сравнению с реальным компьютером, и, как правило, они очень громоздки. Преимущество же заключается в использовании на одной вычислительной системе программ, написанных для разных операционных систем.

Микроядерная архитектура

Современная тенденция в разработке операционных систем состоит в перенесении значительной части системного кода на уровень пользователя и одновременной минимизации ядра. Речь идет о подходе к построению ядра, называемом микроядерной архитектурой (microkernel architecture) операционной системы, когда большинство ее составляющих являются самостоятельными программами. В этом случае взаимодействие между ними обеспечивает специальный модуль ядра, называемый микроядром. Микроядро работает в привилегированном режиме и обеспечивает взаимодействие между программами, планирование использования процессора, первичную обработку прерываний, операции ввода-вывода и базовое управление памятью.

Рис. 1.4. Микроядерная архитектура операционной системы

Остальные компоненты системы взаимодействуют друг с другом путем передачи сообщений через микроядро.

Основное достоинство микроядерной архитектуры – высокая степень модульности ядра операционной системы. Это существенно упрощает добавление в него новых компонентов. В микроядерной операционной системе можно, не прерывая ее работы, загружать и выгружать новые драйверы, файловые системы и т. д. Существенно упрощается процесс отладки компонентов ядра, так как новая версия драйвера может загружаться без перезапуска всей операционной системы. Компоненты ядра операционной системы ничем принципиально не отличаются от пользовательских программ, поэтому для их отладки можно применять обычные средства. Микроядерная архитектура повышает надежность системы, поскольку ошибка на уровне непривилегированной программы менее опасна, чем отказ на уровне режима ядра.

В то же время микроядерная архитектура операционной системы вносит дополнительные накладные расходы, связанные с передачей сообщений, что существенно влияет на производительность. Для того чтобы микроядерная операционная система по скорости не уступала операционным системам на базе монолитного ядра, требуется очень аккуратно проектировать разбиение системы на компоненты, стараясь минимизировать взаимодействие между ними. Таким образом, основная сложность при создании микроядерных операционных систем – необходимость очень аккуратного проектирования.

Смешанные системы

Все рассмотренные подходы к построению операционных систем имеют свои достоинства и недостатки. В большинстве случаев современные операционные системы используют различные комбинации этих подходов. Так, например, ядро операционной системы Linux представляет собой монолитную систему с элементами микроядерной архитектуры. При компиляции ядра можно разрешить динамическую загрузку и выгрузку очень многих компонентов ядра – так называемых модулей. В момент загрузки модуля его код загружается на уровне системы и связывается с остальной частью ядра. Внутри модуля могут использоваться любые экспортируемые ядром функции.

Другим примером смешанного подхода может служить возможность запуска операционной системы с монолитным ядром под управлением микроядра. Так устроены 4.4BSD и MkLinux, основанные на микроядре Mach. Микроядро обеспечивает управление виртуальной памятью и работу низкоуровневых драйверов. Все остальные функции, в том числе взаимодействие с прикладными программами, осуществляется монолитным ядром. Данный подход сформировался в результате попыток использовать преимущества микроядерной архитектуры, сохраняя по возможности хорошо отлаженный код монолитного ядра.

Наиболее тесно элементы микроядерной архитектуры и элементы монолитного ядра переплетены в ядре Windows NT. Хотя Windows NT часто называют микроядерной операционной системой, это не совсем так. Микроядро NT слишком велико (более 1 Мбайт), чтобы носить приставку "микро". Компоненты ядра Windows NT располагаются в вытесняемой памяти и взаимодействуют друг с другом путем передачи сообщений, как и положено в микроядерных операционных системах. В то же время все компоненты ядра работают в одном адресном пространстве и активно используют общие структуры данных, что свойственно операционным системам с монолитным ядром. По мнению специалистов Microsoft, причина проста: чисто микроядерный дизайн коммерчески невыгоден, поскольку неэффективен.

Таким образом, Windows NT можно с полным правом назвать гибридной операционной системой.

Структура MS DOS

История

Теперь хотелось бы рассказать поподробнее. В 1980 году фирма IBM предложила Microsoft разработать ОС для своих компьютеров. Тогда компьютеры были, большей частью, восьмиразрядные, но появились уже и шестнадцатиразрядные. У Microsoft именно в тот момент не было подходящих идей, и тогда была провёрнута следующая авантюра. Билл Гейтс, владелец Microsoft, предложил IBM обратиться к своему конкуренту, фирме Digital Researches (создавшей позже ОС DR-DOS), обладаывшей системой для восьмиразрядных крмпьютеров. После этого совета незамедлительно было послано письмо IBM с рекомендацией переходить на 16-разрядные процессоры...

Тем временем Microsoft вышла на фирму Seattle Compute Products, создавшую операционную систему, но не успевшую её «довести до ума». Был заключён договор; главный создатель – Тим Паттерсон, о котором уже шла речь, был приглашён в Microsoft на работу. Прошло недолгое время «глубокой отладки», после чего с IBM был заключён договор о том, что данная операционная система, тогда называвшаяся “PC-DOS”, будет установлена на каждый компьютер IBM, и Microsoft будет получать определённый процент дохода от продажи каждого компьютера. Популярность DOS со временем росла со скоростью звука! Само слово «ДОС» означает «Дисковая Операционная Система».

Архитектура

MSDOS является 16-разрядной однозадачной операционной системой, работающей в реальном режиме и являющейся текстовой. При загрузке появляется чёрный экран и приглашение для ввода команд. Возможно, некоторые видели синий экран, разделённый на две части. Это – Norton Commander – оболочка на ДОС, её создал Джон Соша.

Одной из первых операционных систем была MSDOS(MicrosoftDiskOperatingSystem). Она появилась на рынке еще в 1981 году вместе с первыми компьютерами фирмыIBM.

MSDOSсостоит из следующих составных частей:

программа начальной загрузки (BootRecord);

базовая система ввода/вывода (BIOS), состоящая из двух частей:

BIOS- записана на жесткий диск и содержит набор подпрограмм нижнего уровня, осуществляющих непосредственный доступ к аппаратуре;

файл IO.SYS, содержащий подпрограммы ввода/вывода для конкретной реализации, которые используют или заменяют программы, находящиеся вBIOS. ФайлIO.SYSвместе с файломMSDOS.SYSсоставляют системное ядро ОС.

файл MSDOS.SYS- часть системного ядра, отвечающая за:

управление файлами;

управление ресурсами сети;

обработку ошибок;

запуск и завершения выполнения программы

командный процессор - файл COMMAND.COM, который организует интерфейс (то есть взаимодействие) с пользователем путем обработки команд, которые выдают ему пользователь (на клавиатуре в виде командной строки) и прикладные программы

драйверы загружаются в память компьютера при загрузке операционной системы, их имена указываются в специальном файле - CONFIG.SYS. Такая схема облегчает добавление новых устройств и позволяет делать это, не затрагивая системные файлыDOS;

файл AUTOEXEC.BAT, служащий для загрузки прикладных программ (например,NortonCommander) сразу же после загрузки ОС

Операционная система os/2.

Создание операционной системы/2 (OS/2) является результатом по- пытки согласовать требования фирмы IBM и ее клиентов к новой операционной системе для различных моделей PS 2 с учетом совмес- тимости с огромным количеством существующих ДОС-приложений. Раз- работка OS/2 представляла собой серьезную проблему удовлетворе- ния этих требований и эффективного использования аппаратных средств. В этой статье обсуждаются характеристики системы. Операционная система/2 (OS/2) является новой операционной системой фирмы IBM для созданного ею семейства персональных компьютеров PS/2 на базе микропроцессоров Intel 80286 и 80386 Ввиду того, что новые операционные системы являются дорогостоя- щими как в разработке, так и при установке и адаптации , в пос- леднее время утвердилась тенденция совершенствования существую- щих систем вместо создания новых. OS/2 представляет собой по- пытку реализации новой системы, которая удовлетворяла бы нужды растущего рынка и одновременно сократила затраты на разработку как для IBM, так и для ее клиентов. Основной целью разработки OS/2 является создание преемника для одного из наиболее удачных программных продуктов для персо- нальных компьютеров, дисковой операционной системой (DOS), ко- торая полностью поддерживает аппаратные ресурсы процессора 80286, без отказа от совместимости с ДОС. OS/2 устраняет множество ограничений, присущих ДОС, но позволяет использовать большинство пркладных программ, работаю- щих в ДОС. В таблице 1 проводится сравнение основных характе- ристик для ДОС и OS/2. Состав OS/2 OS/2 работает на моделях 50,60 и 80 Персональной системы/2 фирмы IBM. Она также работает на персональных компьютерах АТ и ХТ модели 286. Поскольку IBM аннонсировала две версии стандартной редакции для OS/2, в этой статье обсуждаются общие характерис- тики для обеих версий OS/2. Характеристики системы OS/2 должна обеспечивать множество системных функций (см. таблицу 2). Ряд свойств является характерным для существующих операционных систем и, где это возможно, OS/2 реализует их стан- дартным образом, используя технику, описанную для более ранних систем. Тем не менее, два аспекта побудили разработчиков OS/2 использовать новые методы во многих областях для удовлетворения запросов, предьявляемых к системе. Первая группа требований свя- зана по своей природе с архитектурой: -OS/2 должна обеспечивать возможность использования огром- ного множества существующих приложений ДОС; -OS/2, также как и ДОС, является однопользовательской сис- темой, которая создана для PS. Она ориентирована на обеспечение интерактивного режима, и не занимает слишком много места в памя- ти или на диске. Эти требования совместно с архитектурными осо- бенностями процессора 80286 привели к разработке структуры сис- темы, характерной для OS/2; -OS/2 также должна эффективно использовать большой обьем физической памяти, доступной для процессоров 80286 и 80386. Ввиду архитектурных особенностей процессора 80286 (описан- ных ниже), эти требования находятся в противоречии друг с другом. Разрешение этого противоречия в работающей системе явля- ется значительным достижением системы OS/2. Другим набором тре- бований являются требования, часто встречающиеся при созданиии малых систем: -OS/2 должна обеспечивать полный набор свойств операционной системы, которые присущи большим микро- и миникомпьютерным сис- темам. -OS/2 также должна работать, не расходуя слишком много ре- сурсов для того чтобы ее можно было устанавливать на РС. Как и всегда при таких требованиях, результатом является компромисc между сложностью, трудоемкостью реализации свойств и простотой при меньшей стоимости их обеспечения. Требования к архитектуре при создании OS/2 Для того чтобы понять конфликт между двумя группами требо- ваний к архитектуре OS/2, важно понимать архитектуру аппаратной части семейства процессоров фирмы Интел и окружения, которое ис- пользуется для ДОС-приложений. Архитектура процессора 80286 Использование большого обьема памяти процессоров Интел 80286 и 80386 делают необходимым применение их более развитых и несовместимых особенностей. Ввиду того, что OS/2 является опера- ционной системой для 80286, которая рассматривает процессор 80386 также, как если бы он был 80286 процессором, будет исполь- зоваться понятие 80286 для ссылки на общие характеристики обоих типов процессоров.

Тяжелое наследство

Основной недостаток наследия OS/2 заключается в том, что платформа создавалась как 16-разрядная операционна система во времена широкого распространения процессора 80286. Однако начиная с версии OS/2 2.0, выпущенной пять лет тому назад, фирма IBM постепенно начала, где это возможно, заменять 16-разрядный код ядра 32-разрядным кодом, и теперь 16-разрядного кода в системе почти не осталось. Безусловно, перевести всю OS/2 на 32-разрядную модель невозможно. Ради совместимости со старыми прикладными программами IBM сохранила 16-разрядные интерфейсы прикладных программ (API). Производительность 16-разрядных программ как в 32-разрядной среде OS/2, так и Windows на самом деле снижается из-за необходимости выполнять ряд преобразований. При этом 16-разрядные адреса должны быть преобразованы в 32-разрядные в ходе операции, именуемой "thunking" (преобразование адресов по способу Ингермана, связанное с вычислением параметров вызова, представленных в виде выражений), а это занимает некоторое время. Данное обстоятельство заслуживает упоминания, поскольку драйверы устройств и файлова система OS/2 Warp 4.0 по-прежнему 16-разрядные.

Даже несмотря на то, что все эти привилегированные операции выполняются в кольце 0, в достаточно стабильной в целом броне OS/2 остается маленькая брешь. Хотя и верно утверждение, что одна неотлаженна программа не может вызвать крах операционной системы или других программ, тем не менее такая программа может заблокировать выполнение любых других программ. OS/2 - операционная система, управляемая событиями; действи выполняются только в ответ на соответствующее событие. (К событиям относятся движения мыши, нажатие на кнопку мыши или клавишу клавиатуры, прерывания от аппаратных устройств или достижение определенного значени внутренним таймером.) Когда пользователь нажимает на кнопку мыши, операционная система передает сообщение в программу, ответственную за обработку этого сообщения и передачу его назад.

Однако иногда ошибка в прикладной программе приводит к тому, что программа не может передать ответное сообщение в OS/2 или по крайней мере ответное сообщение пересылается недостаточно быстро. Предыдущие версии OS/2 имели единую синхронную очередь сообщений, это означало, что сообщение не могло быть обработано до тех пор, пока не были завершены все операции над предшествующим сообщением. (Windows NT имеет несколько асинхронных очередей сообщений.) Таким образом, если программа прекращала обслуживать очередь сообщений, то пиктограмма часов в OS/2 показывала, что система блокирована, и вам не удастся переключиться в другую программу. Нажатие комбинации клавиш Ctrl-Esc могло заставить систему OS/2 вмешаться (хотя могло и не принести желаемого эффекта) и дать пользователю возможность закрыть программу-нарушителя, освободив систему. В OS/2 Warp 4.0 этот механизм изменен. Обработка сообщений теперь может быть асинхронной, что не позволяет дефектным прикладным программам блокировать систему.

Новый способ

Пересылка сообщений контролируется новым сторожевым потоком ядра. Настраиваемый пользователем таймер, также новый, определяет, как долго сообщение может ожидать обработки, прежде чем "сторож" решит, что программа не откликается. Предположим, что вы произвели в одной из программ действие, вызвавшее на экран индикатор ожидания. Вы перемещаете индикатор ожидания в другое окно и щелкаете в нем, чтобы заполнить время ожидани чем-нибудь другим. Если этот щелчок не будет обработан за отведенное время, то Warp отберет управление у программы-нарушителя и уведомит ее об этом, помещая в ее очередь соответствующие сообщения; затем Warp передаст информацию о щелчке мыши непосредственно в новое окно. Это изменение в процедуре обслуживани сообщений повышает стабильность OS/2, а поскольку большую часть времени сторож занят ожиданием, то он не оказывает сколько-нибудь заметного влияния на производительность системы.

Отношение фирмы IBM к обеспечению безопасности несколько отличается от подхода, принятого компанией Microsoft в ходе разработки Windows NT. Корпорация IBM не стремится сделать базовую систему OS/2 Warp отвечающей требованиям государственного стандарта безопасности уровня C2. По мнению специалистов IBM, дополнительные накладные расходы приведут к снижению производительности, неприемлемому для пользователей, которые не нуждаются в повышенной безопасности. (Редакция PC Magazine не может подтвердить влияние мер безопасности на производительность других операционных систем.) Вместо этого компания IBM предусмотрела точки входа в Warp, с помощью которых независимые поставщики смогут подключать собственные факультативные модули защиты, полностью отвечающие требованиям государственного стандарта, тогда как базовая система OS/2 Warp останется компактной и быстрой.

Расширенная поддержка прикладных программ

Фирма IBM также позаботилась о расширении OS/2 Warp 4.0, цель которого - дать программистам стимул поддерживать единый уровень версий своих продуктов дл Windows и OS/2. Интерфейс Open32 API (ранее называвшийся Developer Application Extensions) дает программистам возможность составлять общий исходный текст, который затем может компилироваться и компоноваться с соответствующими заголовочными файлами и библиотеками для получения исполнимых модулей как дл Windows, так и OS/2 (см. врезку "Почему невозможно мирное сосуществование OS/2 и Windows?").

Открытые технологии

Еще одно средство, дополнившее OS/2 Warp 4.0, - технология OpenDoc. Концептуально она может быть представлена как надмножество OLE. OpenDoc позволяет как программистам, так и пользователям объединять функции различных прикладных программ, просто перемеща нужные фрагменты с помощью механизма drag-and-drop. OpenDoc - межплатформенная структура, имеются ее опытные версии для AIX, Mac OS, Windows 95 и NT. Технология OpenDoc должна сократить время выпуска на рынок новых продуктов благодаря объединению функциональных программных фрагментов в отдельные модули (parts). Еще более привлекательна предоставляемая пользователям возможность создавать собственные специализированные программы, перемеща нужные модули из различных программ и соединяя их в новой программе-контейнере OpenDoc.

Два других расширения интерфейсов - это OpenGL (межплатформенный графический язык) и API распознавани речи Speech Recognition API (SRAPI). Наличие в базовой операционной системе средств SRAPI может оказаться тем стимулом, который заставит программистов переносить свои программы на платформу, обеспечивающую речевой доступ.

По старой традиции, OS/2 превосходно работает с прикладными программами различных типов. Способность запускать программы DOS, 16- и 32-разрядные программы Windows (для интерфейсов Win32s, а теперь Open32) и 16- и 32-разрядные программы OS/2 существенно расширяет диапазон программ, доступных этой ОС. Однако некоторые капризные DOS-программы по-прежнему отказываютс работать в среде OS/2. В версию 4.0 введена нова возможность, получившая название True Mode (истинный режим). Доступный только на тех системах, где OS/2 Warp установлена поверх DOS, режим True Mode дает OS/2 возможность автоматически сохранить на диске содержимое памяти, загрузить DOS для выполнения нужной программы, а затем перезагрузить дисковый файл в память так, чтобы OS/2 смогла возобновить работу с того места, где она была прервана.

Ряд компромиссов

Характеристики операционной системы в сущности определяются рядом компромиссных решений, принимаемых ее создателями. Приоритеты производительности, стабильности, переносимости и совместимости с прикладными программами предопределили возможности OS/2 Warp 4.0 и привели к появлению стабильной, полнофункциональной операционной системы с вытесняющей многозадачностью, которая приемлемо работает на 486 машине с 12-Мбайт ОЗУ. (Однако лучше иметь как минимум 16 Мбайт, а для речевого ввода на машине Pentium/90 вам понадобится ОЗУ емкостью 24 Мбайт.) В целом можно сделать вывод, что компромиссы, на которые пошла фирма IBM, оправдали себя, принеся очень неплохой результат.

OS/2 Warp 4.0: новая форма, старое содержание

Фундаментальная архитектура OS/2 не претерпела серьезных изменений. Весь программный код ядра множественных виртуальных DOS-машин (multiple virtual DOS Machines - MVDM), ядра OS/2 и весь код, расположенный ниже, выполняется в режиме супервизора процессора. Прикладные программы, размещаемые выше, работают в кольце 3 в адресном пространстве, изолированном от всех программ ядра.

Одним из наиболее привлекательных cвойств системы OS/2 Warp всегда была ее способность выполнять программы Windows 3.1 в их естественном виде, рядом с программами OS/2 в рамках одного "рабочего стола". Однако в новой редакции OS/2 Warp вы не сможете запускать прикладные программы, предназначенные специально для Windows 95. Версия 4.0 содержит подмножество Win32s интерфейса прикладного программирования Win32, но не имеет полного набора функций Win32.

Сначала сообщим вам хорошую новость. Для запуска программ Win32s в среде OS/2 Warp 4.0 не требуетс вносить в них никаких изменений. Спецификация Win32s API позволяет программистам Windows составлять однопотоковые 32-разрядные Windows-программы, которые работают во всем спектре операционных систем Windows: Windows 95, Windows NT и даже Windows 3.1. Однако прикладные программы Win32 - отнюдь не желанные гости на платформе OS/2 Warp 4.0.

Согласно разъяснениям, полученным от фирмы IBM, проблема не имеет ничего общего с лицензированием или уровнем производительности, а связана со сложностью полной спецификации Win32 API. Интерфейс Win32 API можно охарактеризовать как необъятный. Множество расширений интерфейса, таких, как мультимедиа, MAPI, Telephony API и технологи компоновки и встраивания объектов (Object Linking and Embedding - OLE), в целом охватывают более чем 3 тыс. системных вызовов. Кроме того, некоторые центральные функции Win32, такие, как технологи OLE, реализовать очень трудно, поскольку они не являются составной частью OS/2.

Фирма IBM, однако, имеет готовое решение: интерфейс Open32. Он дает возможность программистам быстро превращать 32-разрядные прикладные программы Windows в собственные программы OS/2. В Open32 входят приблизительно 800 функций Win32 API и около 300 сообщений Windows, которые встроены в OS/2 Warp 4.0. Проанализировав миллионы строк исходного текста Windows, фирма IBM отобрала наиболее распространенные функции Win32, в том числе те из них, к которым обращаются наиболее часто. Интерфейсы API Open32 - не эмулируемые функции (которые могут выполняться медленнее), они скорее представляют собой еще один набор интерфейсов API, равноценный стандартным API системы OS/2. Оба набора API обеспечивают одинаковый доступ к основной операционной системе.

Замысел его создателей состоит в том, чтобы дать программистам стимул поддерживать общую программную базу Win32 и Open32 - OS/2, которую можно использовать для составления собственных 32-разрядных программ как Windows, так и OS/2 Warp 4.0.

Данная модель представляется многообещающей, но в ней все еще остается ряд пробелов. Программистам пока не удастся использовать в своих программах технологию OLE, поскольку интерфейс OLE API не входит в состав Open32. Вместо этого в программах придется использовать механизм совместной обработки документов, OpenDoc, которому отдает предпочтение фирма IBM. Важно отметить, что технология Open32 приспособлена к переносу процедурных программ и, таким образом, окажется бесполезной для программ, составленных на объектно-ориентированных языках, таких, как Си++.

Станет ли Open32 той приманкой, с помощью которой программистов Windows удастся привлечь на рынок OS/2? Возможно, да, а возможно - нет. Не удивительно, что принадлежащая IBM фирма Lotus Development приступила к работе над версией комплекта офисных программ SmartSuite на базе интерфейса Open32 для работы на настольных ПК в среде OS/2.

Общая характеристика

В конце 1994 года IBM выпустила третью главную версию OS/2, которую назвала OS/2 Warp 3 (warp - основа). Его демонстрации и развернутая рекламная компания напоминали рекламную компанию 1992 года, когда была выпущена OS/2 2.0. Во всяком случае один лозунг был точным повторением: в этой системе есть много преимуществ, которые пользователи и корпорации могут извлечь немедленно из 32-х разрядной операционной среды.

OS/2 Warp имеет хорошо продуманный объектно-ориентированный интерфейс с применением техники drug-and-drop при выполнении операций копирования, удаления, печати, а также некоторых других. Перечни свойств объектов легко доступны в меню, вызываемых щелчком правой клавиши мыши. Имеется специальная панель для размещения часто используемых документов или прикладных программ.

В состав OS/2 Warp входит набор утилит BonusPack, который содержит IBM Works - интегрированный программный пакет начального уровня, и Internet Access Kit - самый полный набор средств для сети Internet из всех средств, поставляемых в составе операционных систем, Web Browser и почта Internet Mail. В публикациях встречаются утверждения, что он более совершенен, чем набор для доступа к Internet, реализованный в Windows 95. В феврале 1995 года IBM начала продавать пакет OS/2 Warp 3 Full Pack, который содержит библиотеки Win-OS/2. Эти библиотеки дают возможность выполнять Windows-программы, не приобретая лицензионных копий Microsoft Windows.

Одним из часто критикуемых недостатков OS/2 Warp является то, что она не поддерживает 32-х битные приложения Windows (точнее, она поддерживает API Win32s, но не поддерживает полный API Windows NT, который называется Win32 и который почти полностью поддерживает Windows 95). Однако в ближайшее время этот недостаток не будет критическим, так как приложений Win32 пока немного, зато с приложениями Win16 у OS/2 Warp проблем нет. IBM говорит, что она может обеспечить поддержку приложений Win32, если этого пожелают пользователи.

В то же время в OS/2 Warp ощущается недостаток сетевых функциональных возможностей. Положение должно измениться, так как летом 1995 года IBM начала продавать следующую версию OS/2 - Warp Connect, которая содержит важнейшие драйверы и утилиты. В число новых средств входят редиректоры для операционных систем NetWare 3.х и 4.1 и OS/2 LAN Server. Версия OS/2 Warp Connect работает с протоколами IPX и NetBIOS, а также с новой реализацией протоколов TCP/IP. Этот новый комплект устанавливает двухточечное соединение по протоколу PPP вместо соединений SLIP, предусмотренных в базовом пакете OS/2 Warp. Этот комплект понизит нагрузку на центральный процессор и обеспечит одновременный доступ к локальной сети и сети Internet.

Кроме того, Warp Connect предоставляет давно ожидаемые в OS/2 средства одноранговой сетевой связи. Согласно сообщению фирмы IBM, в эту версию входит большое число собственных драйвером, которые смогут работать более чем с 70% существующих адаптеров Ethernet и более чем с 90% адаптеров Token Ring. То же самое программное обеспечение дает возможность клиенту Warp Connect подключаться в серверу LAN Server 4.0.

Warp Connect содержит также программу Lan Distance фирмы IBM, которая позволит соединяться через связной сервер с любым подключенным к сети устройством. В отличие от Windows 95 ОС Warp Connect не содержит средств, поддерживающих удаленный доступ через коммутируемые телефонные сети. Еще одним нововведением является справочная база данных ASK PSP на компакт-диске с интерфейсом запросов на языке, близком к естественному английскому.

Что касается почтовых услуг, то IBM выбрала для Warp Connect пакет Lotus Notes Express, а не свой собственный Ultimedia Mail/2. Notes Express позволяет соединиться с любым сервером Notes.

Как и другие версии Warp, Warp Connect тоже будет поставляться в двух версиях: одна без Windows-библиотек, другая, подобно Full Pack, с библиотеками Win-OS/2.

Внутренняя организация OS/2 Warp

На рисунке 9.1 показана структура операционной системы OS/2 Warp 3.0. В OS/2 имеется несколько видов виртуальных машин для прикладных программ. Собственные 32- и 16-разрядные программы OS/2 выполняются на отдельных виртуальных машинах в режиме вытесняющей многозадачности и могут общаться между собой с помощью средств DDE OS/2. Прикладные программы DOS и Win16 могут запускаться на отдельных виртуальных машинах в многозадачном режиме. При этом они поддерживают полноценные связи DDE и OLE 2.0 друг с другом и связи DDE с 32-х разрядными программами OS/2. Кроме того, можно запустить несколько программ Win16 на общей виртуальной машине Win16, где они работают в режиме невытесняющей многозадачности. Разнообразные сервисные функции API OS/2, в том числе SOM (модель системных объектов), обеспечиваются с помощью системных динамических библиотек DLL, к которым можно обращаться без требующих затрат времени переходов между кольцами защиты. Ядро OS/2 предоставляет многие базовые сервисные функции API, обеспечивает поддержку файловой системы, управление памятью, и имеет диспетчер аппаратных прерываний. В ядре виртуальных DOS-машин (VDM-ядре) осуществляется эмуляция DOS и процессора 8086, а также управление VDM. Драйверы виртуальных устройств обеспечивают уровень аппаратной абстракции. Драйверы физических устройств напрямую взаимодействуют с аппаратурой.

Рис. 9.1. Структура OS/2

На рисунке 9.2 изображены сетевые средства OS/2 Warp Connect. Они делятся на четыре уровня. Прикладной уровень включает программные интерфейсы приложений операционной системы. Компоненты на уровне файловой системы отвечают за выполнение файловых операций. Транспортный уровень реализует коммуникационные протоколы. Имеется компонента Общая транспортная семантика (Common Transport Semantic), которая позволяет использовать любую файловую систему (а точнее ее редиректор) в сочетании с любым протоколом транспортного уровня.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]