Понедельник , 30 марта 2020
Новости
Главная / Студентам / ОСиС / Лекция № 7. СРАВНЕНИЕ ОПЕРАЦИОННЫХ СИСТЕМ

Лекция № 7. СРАВНЕНИЕ ОПЕРАЦИОННЫХ СИСТЕМ

7.1. Схема исторических связей между операционными системами

На рис. 7.1. отражены генетические связи между наиболее известными операционными системами.

Рис. 7.1. Схема исторических связей между операционными системами

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

          Сплошные стрелки указывают на генетическую связь или очень сильное влияние дизайна (т.е. более позднюю систему с API-интерфейсом, умышленно переработанным путем обратного проектирования для соответствия более ранней системе). Штриховые линии указывают на значительное влияние конструкции, а пунктирные – наоборот, на слабое влияние конструкции.

          Блок «UNIX» включает в себя все частные UNIX-системы, включая AT&T и ранние версии Berkeley Unix. Блок «Linux» включает с себя UNIX-системы с открытыми исходными кодами, каждая из которых была основана в 1991 году. Они имеют генетическую наследственность от раннего UNIX -кода, который был освобожден от частного контроля компании AT&T соглашением по судебному процессу 1993 года.

          На рис. 7.1, естественно, представлены не все операционные системы. В частности здесь нет систем реального времени. Были выбраны системы разделения времени, которые либо в настоящее время, либо в прошлом составляли конкуренцию UNIX. Достойных конкурентов не много. Большинство подобных систем (MULTICS, ITS, DTSS, TOPS-10, TOPS-20, MTS, GCOS, MPE и десятки других) исчезли так давно, что почти стерлись из коллективной памяти компьютерного сообщества. Отмирают системы VMS и OS/2, MacOS поглощается UNIX-производными. Операционные системы MVS и VM/CMS были ограничены одной частной линейкой мэйнфреймов. Только Microsoft Windows остается жизнеспособным конкурентом, независимым от традиций UNIX.

7.2. Семейство операционных систем UNIX

UNIX является исключительно удачным примером реализации простой мультипрограммной и многопользовательской операционной системы. В свое время она проектировалась как инструментальная среда для разработки программного обеспечения. Своей уникальностью система UNIX обязана во многом тому обстоятельству, что была, по сути, создана всего двумя разработчиками, которые делали ее исключительно для себя и первое время использовали на мини-ЭВМ с очень скромными вычислительными ресурсами PDP-7.

Создателями UNIX являются Кен Томпсон и Денис Ритчи. В своей операционной системе они учли опыт работы над проектом сложной мультизадачной операционной системы с разделением времени MULTICS (MULTiplexed Information and Computing Service). Название новой системы UNIX произошло от аббревиатуры UNICS (Uniplexed Information and Computing Service). Позднее Ритчи описывал эту аббревиатуру как «слегка изменнический каламбур на слово MULTICS».

Первая версия этой системы занимала всего около 12 Кбайт и могла работать на компьютерах с очень небольшим объемом оперативной памяти.

Первой реальной задачей UNIX в 1971 году была поддержка того, что в наши дни назвали бы текстовым процессором, для патентного департамента Bell Laboratories (Кен Томпсон был сотрудником Bell Laboratories). Этот проект оправдывал приобретение гораздо более мощного мини-компьютера PDP-11. Руководство оставалось в счастливом неведении о том, что система обработки текста, которую создавали Томпсон и его коллеги, была инкубатором для операционной системы. Операционные системы не входили в планы Bell Laboratories – AT&T присоединилась к консорциуму MULTICS именно для того, чтобы избежать разработки собственной операционной системы.

Первоначально операционная система UNIX была написана на ассемблере, а ее приложения – на «смеси» ассемблера и интерпретируемого языка, который назывался «В». Его преимущество заключалось в том, что он был достаточно мал для работы на компьютерах PDP-7. Однако язык «В» был недостаточно мощным для системного программирования, поэтому Денис Ритчи добавил в него типы данных и структуры, в результате чего появился язык «С». Это произошло в начале 1971 года. А в 1973 году Томпсон и Ритчи переписали UNIX на новом языке. Это был весьма смелый шаг. В то время для того, чтобы получить максимальную производительность аппаратного обеспечения, системное программирование осуществлялось на ассемблере, и сама концепция переносимой операционной системы представлялась весьма сомнительной. Только в 1979 году Ритчи смог написать: «Кажется бесспорным, что в основном успех UNIX обусловлен читаемостью, редактируемостью и переносимостью ее программного обеспечения, причем, такие позитивные характеристики, в свою очередь, являются следствием ее написания на языках высокого уровня».

Первой целью при разработке системы UNIX было стремление сохранить простоту и обойтись минимальным количеством функций. Второй целью была общность (начало названия системы «Uni-»  можно перевести как «общий» или «единый»). Одни и те же методы и механизмы должны были использоваться во многих случаях:

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

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

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

В операционной системе UNIX имеется несколько унифицирующих идей или метафор, которые формируют ее API-интерфейсы и определяемый ими стиль разработки. Наиболее важными из них является модель, согласно которой «каждый объект является файлом», и метафора каналов (pipes). Канал представляет собой способ соединения вывода одной программы с вводом другой.

Специалисты, относящиеся к UNIX-сообществу, утверждают, что философия этой операционной системы сводится к одному железному правилу, священному «принципу KISS»: «Keep It Simple, Stupid!». По-русски это можно перевести так: «Будь проще, тупица!»

Хотя система UNIX появилась еще в 1969 году, она существует и поныне. Какие недостатки конкурентов оставили их в проигрыше?

Наиболее очевидной общей проблемой является неспособность к переносу на другие платформы. Большинство конкурентов UNIX, появившихся до 1980 года, были привязаны к какой-либо одной аппаратной платформе и исчезли вместе с ней. Единственной причиной того, что VMS просуществовала достаточно долго для того, чтобы рассматриваться здесь в качестве учебного примера, является то, что она была успешно перенесена с ее первоначального аппаратного обеспечения VAX на процессор Alpha (а в 2003 году – с Alpha на Itanium). MacOS была успешно перенесена с микросхем Motorola 68000 на Power PC в конце 80-х годов прошлого века. Операционная система Microsoft Windows избежала данной проблемы, оказавшись в нужном месте, когда стремление превратить программное обеспечение в продукт массового потребления привело к заполнению рынка универсальными компьютерами монокультуры PC.

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

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

7.3. Операционная система VMS

VMS – частная операционная система, первоначально разработанная для миникомпьютера VAX корпорации «Digital Equipment Corporation» (DEC). Впервые она была выпущена в 1978 году и была важной действующей операционной системой в 80-х и начале 90-х годов. Сопровождение данной системы продолжалось, когда DEC была приобретена компанией Compaq, а последняя – корпорацией Hewlett-Packard. На данный момент операционная система VMS продолжает продаваться и поддерживаться. Она имеет полную вытесняющую многозадачность (при которой процессор принудительно может быть отобран у текущей задачи), однако создание дочерних процессов в ней весьма дорогостоящее. Файловая система в VMS имеет детально разработанное понятие типов записи (хотя в ней нет атрибутов). Поэтому в VMS проявляется тенденция к увеличению размеров программ и созданию тяжеловесных монолитов.

VMS характеризуется длинными четкими системными командами, подобными инструкциям языка COBOL. Имеется весьма полная интерактивная справочная система (не по API интерфейсам, а по запускаемым программам и синтаксису командной строки). Фактически CLI-интерфейс (Command Line Interface – интерфейс командной строки) VMS и ее справочная система являются организационной метафорой VMS. Хотя система Windows модифицирована для VMS, CLI-интерфейс продолжает оказывать наиболее важное стилистическое влияние на проектирование программ. В связи с этим определяется ряд следующих факторов и последствий.

  • Чем длиннее команда, которую необходимо ввести, тем меньше пользователь хочет это делать.
  • Люди хотят вводить с клавиатуры меньше команд, поэтому используется малое количество обслуживающих программ, зато с большим количеством функций (и потому слишком крупных).
  • Количество и тип принимаемых программой параметров определяются синтаксическими ограничениями, налагаемыми справочной системой.
  • Справка в VMS весьма полная, но поиск и поисковые средства в ней отсутствуют. Это затрудняет получение сведений, поддерживает специализацию и препятствует любительскому программированию.

VMS была разработана для многопользовательской работы, она имеет заслуживающую доверия систему внутренних границ, разделяющих процессы друг от друга c помощью аппаратного блока MMU. Взломы системы безопасности VMS бывают редко.

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

Подобно UNIX, операционная система VMS предшествовала разграничению клиент/сервер. Она была успешной в свое время в качестве общецелевой системы разделения времени. Целевую аудиторию главным образом представляли технические пользователи и программные предприятия, допускающие умеренную сложность.