Основные стандарты и версии развития UNIX.



История операционной системы UNIX.

UNIX - торговая марка BellLabs. подразделения AT&T. Кроме того, это родовое имя семейства UNIX-подобных операционных систем. История Unix началась на фоне проекта операционной системы MULTICS, который разрабатывался в BellLabs., подразделении гиганта AT&T.
К 1968 г. разработка MULTICS окончательно зашла в тупик и D.Ritchie, K.Thompson, J.OssanaM.McLloy были вынуждены искать альтернативу MULTICSу. Были сделаны попытки найти машины среднего класса для решения своих задач. Это был также период формирования и разработки основных идей новой операционной системы. Thompson, Canaday, Ritchie разработали структуру файловой системы иерархического типа, которая явилась прототипом файловой системы Unix. Thompson выполнил практическую реализацию модели такой файловой системы в MULTICS.
Одновременно, в течение 1969 Thоmpson разрабатывал игровую программу "Космическое путешествие" - моделирование перемещения об'екта (игрока) в солнечной системе с учетом движения небесных тел. Эта программа вначале была написана в MULTICS, а затем переведена на FORTRAN компьютера GeneralElectric 635, который работал под управлением операционной системы GECOS. Игра, однако была неэффективной из-за трудоемкости ввода данных в пакетноориентированной операционной системы GEOS.
Высокая стоимость машинного времени на большой ЭВМ, также исключала возможность широкого использования этой программы. И тогда, Thompson нашел старую, малоиспользуемую мини-ЭВМ PDP-7, которая, правда, имела интерактивный графический дисплей. С помощью Ritchie, он переписал игру для мини-ЭВМ, используя кросс-транслятор, работавший на GE-635. Некоторое время спустя, Thompson начал реализацию разработанной им идеи файловой системы на PDP-7, которая и явилась базисом для новой операционной системы. Затем были добавлены простые утилиты копирования, печати и управления файлами. Следом, в новом операционом окружении был реализован и ассемблер. До этого момента собственно разработка программы велась на GeneralElectric, под управлением GEOS с последующим переносом программ на PDP-7 при помощи перфоленты. Появление ассемблера на PDP-7 сделало новую систему автономной. В 1970г. B.Kernighan предложил назвать новую систему Unix. Базовые структуры этой операционной системы сохранились в неизменном виде до наших дней. В 1970 г. для BellLabs была куплена новая минимашина - знаменитая PDP-11, и первый в истории перенос системы Unix с одного типа архитектуры на другую был выполнен. В процессе переноса было полностью переписано ядро для новой машины на ассемблере.
В это время Kernighan и Ritchie разработали язык С, который сочетает две, казалось бы взаимоисключающие особенности: с одной стороны - это язык высокого уровня, имеющий все необходимые конструкции для структурированного подхода к программированию, что позволяет разрабатывать и сопровождать сложные программные проекты, а с другой стороны - он обеспечивает гибкость и эффективность сравнимую с ассемблерами. Вскоре большая часть Unix была переведена на новый язык.
Это обеспечило высокую мобильность системы по отношению к переносу на новые технические средства. Переводу на ассемблер нового компьютера должна подвергаться только небольшая часть программ нижнего уровня, которая работает непосредственно с аппаратурой. До середины 1970 гг. Unix в основном применялся внутри Bell&Labs, в системе подготовки текстовой документации.
Однако, начиная с середины 1970 гг. AT&T начала продавать Unix вместе с исходными текстами для колледжей и университетов по символической для того времени цене - 2000$. В результате, операционная система Unix к концу 1970 гг. получила широкое распространение в университетских и академических кругах. Этот процесс был облегчен тем, что K.Thompson получил должность приглашенного профессора в Калифорнийском университете в Беркли.
Студенты и профессора продолжили совершенствование и доработку Unix. Версии этого варианта Unix стали доступны в большом количестве университетов по обе сторолны Атлантики, также были выполнены адаптации ситемы для коммерческих применений. Вне университетских кругов, их приверженность операционной системе Unixоб'ясняли высокой квалификацией соответствующих специалистов. Но на самом деле такое объяснение было бы слишком односторонним. В то время были доступны несколько операционных систем не худших, если не лучших, чем Unix. Были, однако, факторы, которые не были свойственны исключительно системе Unix, но котрые значительно повлияли на распространение и адаптацию Unix. Во-первых, хотя она и не распространялась бесплатно, по сравнению с другими операционными системами ее стоимость была чисто номинальной.
Во-вторых, и это более важно, те, кто адаптировал Unix получали копию исходных текстов системы и могли их в дальнейшем модифицировать. С точки зрения университетских компьютерных центров, этот фактор был важнее, поскольку давал возможность играться с Unix и дорабатывать ее в соответствии с собственными желаниями.

 

 

Модель системы UNIX.

 

Основные характеристики

ОС UNIX имеет следующие основные характеристики:

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

 

Знакомство с архитектурой UNIX начнем с рассмотрения таких неотъемлимых для неё характеристических понятий, как стандартизация и многозадачность:

Стандартизация

Несмотря на многообразие версий UNIX, основой всего семейства являются принципиально одинаковая архитектура и ряд стандартных интерфейсов (в UNIX стандартизовано почти всё – от расположения системных папок и файлов, до интерфейса системных вызовов и списка драйверов базовых устройств). Опытный администратор без особого труда сможет обслуживать другую версию, тогда как для пользователей переход на другую систему и вовсе может оказаться незаметным. Для системных же программистов такого рода стандарты позволяют полностью сосредоточиться на программировании, не тратя время на изучение архитектуры и особенностей конкретной реализации системы.

Многозадачность

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

 

 

Существует два основных объекта операционной системы UNIX, с которыми приходиться работать пользователю – файлы и процессы. Эти объекты сильно связаны друг с другом, и в целом организация работы с ними как раз и определяет архитектуру операционной системы.

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

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

 

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

Таким образом, в системе можно выделить два уровня привилегий: уровень системы (привилегии специального пользователя root) и уровень пользователя (привилегии всех остальных пользователей). Важной частью системных программ являются демоны. Демон – это процесс, выполняющий опеределенную функцию в системе, который запускается при старте системы и не связан ни с одним пользовательским терминалом. Демоны предоставляют пользователям определенные сервисы, примерами которых могут служить системный журнал, веб-сервер и т.п.. Аналогом демонов в операционной системе Windows NT и более поздних версиях являются системные службы.

 

Основными принципами операционной системы UNIX являются многозадачность и стандартизация. Пользователю приходиться работать с двумя основными объектами операционной системы: файлами и процессами.

Операционную систему UNIX можно представить в виде трёх уровней: монолитное ядро, системные утилиты и демоны, пользовательские программы. Первые два работают на уровне привилегий системы, третий – на уровне пользователя.

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

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

 

Структура ядра UNIX.

Операционная система UNIX обладает классическим монолитным ядромв котором можно выделить следующие основные части:

Файловая подсистема

Доступ к структурам ядра осуществляется через файловый интерфейс.

Управление процессами

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

Драйверы устройств

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

Благодаря тому, что в UNIX аппаратно-независимая часть явно отделена, это семейство операционных систем может быть с минимальными затратами перенесено на новые аппаратные платформы.

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

 

Основные функции ядра UNIX (которое может быть монолитным или модульным) включают:

  • планирование и переключение процессов;
  • управление памятью;
  • обработку прерываний;
  • низкоуровневую поддержку устройств (через драйверы);
  • управление дисками и буферизация данных;
  • синхронизацию процессов и обеспечение средств межпроцессного взаимодействия (IPC).

 

Основные стандарты и версии развития UNIX.

Стандарты ОС UNIX

До тех пор, пока господствовала узкая трактовка ОС UNIX (т.е. пока ОС UNIX не была коммерческим продуктом), не было потребности в стандартизации средств этой операционной системы. Немногочисленные высококвалифицированные пользователи ОС UNIX сами могли разобраться в особенностях и отличиях используемой версии системы и выбрать то подмножество ее средств, которое обеспечивало переносимость разрабатываемого приложения.

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

Прежде чем перечислить наиболее важные официальные и фактические стандарты, принимаемые во внимание производителями систем, основанных на ОС UNIX, сформулируем, что же понимается под стандартом интерфейсов ОС. Стандарт интерфейсов ОС - это обычно сводка более или менее формальных синтаксических (интерфейсных) и семантических (поведенческих) свойств специфицируемых средств операционной системы.


Дата добавления: 2018-06-01; просмотров: 310; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!