реферат скачать
 

Особенности операционной системы UNIX

Особенности операционной системы UNIX

КУРСОВАЯ РАБОТА

по дисциплине : «Информатика»

тема: «Особенности операционной системы UNIX»

2005 г.

Задание: Дать описание основных особенностей операционной системы UNIX.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ ……………………………………………………………………. 4

ОБЗОР ОСОБЕННОСТЕЙ СИСТЕМЫ ……………………………………4

1. ИСТОРИЯ ………………………………………………………………4

2. СТРУКТУРА СИСТЕМЫ …………………………………………….8

3. ОБЗОР С ТОЧКИ ЗРЕНИЯ ПОЛЬЗОВАТЕЛЯ …………………..10

3.1 Файловая система …………………………………………..10

3.2 Среда выполнения процессов ……………………………..14

3.3 Элементы конструкционных блоков …………………….17

4. ФУНКЦИИ ОПЕРАЦИОННОЙ СИСТЕМЫ ……………………..19

5. ПРЕДПОЛАГАЕМАЯ АППАРАТНАЯ СРЕДА……………………20

5.1 Прерывания и особые ситуации …………………………. 22

5.2 Уровни прерывания процессора …………………………. 22

5.3 Распределение памяти ……………………………………... 23

6. ВЫВОДЫ ………………………………………………………………. 24

ЛИТЕРАТУРА ……………………………………………………………………...25

ВВЕДЕНИЕ

Впервые система UNIX была описана в 1974 году в статье Кена Томпсона

и Дэнниса Ричи в журнале "Communications of the ACM" [Thompson 74]. С

этого времени она получила широкое распространение и завоевала широкую

попу-лярность среди производителей ЭВМ, которые все чаще стали оснащать ею

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

довольно часто участвует в исследовательском и учебном процессе.

Множество книг и статей посвящено описанию отдельных частей

системы;

среди них два специальных выпуска "Bell System Technical Journal" за

1978 год [BSTJ 78] и за 1984 год [BSTJ 84]. Во многих книгах описывается

пользовательский интерфейс, в частности использование электронной почты,

подготовка документа-ции, работа с командным процессором Shell; в

некоторых книгах, таких как "The UNIX Programming Environment" [Kernighan

84] и "Advanced UNIX Programming" [Rochkind 85], описывается

программный интерфейс. Данная работа посвящена основным особенностям

системы UNIX.

ОБЗОР ОСОБЕННОСТЕЙ СИСТЕМЫ

За время, прошедшее с момента ее появления в 1969 году, система

UNIX

стала довольно популярной и получила распространение на машинах с

различной

мощностью обработки, от микропроцессоров до больших ЭВМ, обеспечивая на

них

общие условия выполнения программ. Система делится на две части. Одну

часть

составляют программы и сервисные функции, то, что делает операционную

среду

UNIX такой популярной; эта часть легко доступна пользователям, она

включает

такие программы, как командный процессор, обмен сообщениями, пакеты обработ-

ки текстов и системы обработки исходных текстов программ. Другая часть вклю-

чает в себя собственно операционную систему, поддерживающую эти программы

и

функции. В этой работе дается детальное описание собственно операционной

сис-

темы. Основное внимание концентрируется на описании системы UNIX версии

V,

распространением которой занимается корпорация AT&T. Приводятся основные

информационные структуры и алгоритмы, используемые в операционной системе и

в конечном итоге создающие условия для функционирования стандартного

пользовательского интерфейса.

1. ИСТОРИЯ

В 1965 году фирма Bell Telephone Laboratories, объединив свои усилия

с

компанией General Electric и проектом MAC Массачусетского

технологического

института, приступили к разработке новой операционной системы,

получившей

название Multics [Organick 72]. Перед системой Multics были поставлены зада-

чи - обеспечить одновременный доступ к ресурсам ЭВМ большого

количества

пользователей, обеспечить достаточную скорость вычислений и хранение

данных

и дать возможность пользователям в случае необходимости совместно использо-

вать данные. Многие разработчики, впоследствии принявшие участие в

создании

ранних редакций системы UNIX, участвовали в работе над системой Multics

в

фирме Bell Laboratories. Хотя первая версия системы Multics и была

запущена

в 1969 году на ЭВМ GE 645, она не обеспечивала выполнение главных вычисли-

тельных задач, для решения которых она предназначалась, и не было даже

ясно,

когда цели разработки будут достигнуты. Поэтому фирма Bell

Laboratories

прекратила свое участие в проекте.

По окончании работы над проектом Multics сотрудники

Исследовательского

центра по информатике фирмы Bell Laboratories остались без "достаточно инте-

рактивного вычислительного средства" [Ritchie 84a]. Пытаясь усовершенство-

вать среду программирования, Кен Томпсон, Дэннис Ричи и другие набросали

на

бумаге проект файловой системы, получивший позднее дальнейшее развитие

в

ранней версии файловой системы UNIX. Томпсоном были написаны программы,

имитирующие поведение предложенной файловой системы в режиме подкачки

данных по запросу, им было даже создано простейшее ядро операционной

системы для ЭВМ GE 645. В то же время он написал на Фортране

игровую программу "Space Travel" ("Космическое путешествие") для системы

GECOS (Honeywell 635), но программа не смогла удовлетворить

пользователей, поскольку управлять "косми-

ческим кораблем" оказалось сложно, кроме того, при загрузке программа

занимала много места. Позже Томпсон обнаружил малоиспользуемый компьютер

PDP-7,

оснащенный хорошим графическим дисплеем и имеющий дешевое машинное

время.

Создавая программу "Космическое путешествие" для PDP-7, Томпсон получил воз-

можность изучить машину, однако условия разработки программ потребовали ис-

пользования кросс-ассемблера для трансляции программы на машине с

системой

GECOS и использования перфоленты для ввода в PDP-7. Для того, чтобы

улучшить

условия разработки, Томпсон и Ричи выполнили на PDP-7 свой проект

системы,

включивший первую версию файловой системы UNIX, подсистему управления

процессами и небольшой набор утилит. В конце концов, новая система больше

не

нуждалась в поддержке со стороны системы GECOS в качестве операционной

среды

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

название

UNIX, по сходству с Multics его придумал еще один сотрудник

Исследовательского центра по информатике Брайан Керниган.

Несмотря на то, что эта ранняя версия системы UNIX уже была многообещаю-

щей, она не могла реализовать свой потенциал до тех пор, пока не

получила

применение в реальном проекте. Так, для того, чтобы обеспечить функциониро-

вание системы обработки текстов для патентного отдела фирмы

Bell

Laboratories, в 1971 году система UNIX была перенесена на ЭВМ PDP-11. Систе-

ма отличалась небольшим объемом: 16 Кбайт для системы, 8 Кбайт для

программ

пользователей, обслуживала диск объемом 512 Кбайт и отводила под каждый

файл

не более 64 Кбайт. После своего первого успеха Томпсон собрался было

написать для новой системы транслятор с Фортрана, но вместо этого занялся

языком Би (B), предшественником которого явился язык BCPL [Richards 69]. Би

был интер-претируемым языком со всеми недостатками, присущими подобным

языкам, поэ-

тому Ричи переделал его в новую разновидность, получившую название Си (C)

и

разрешающую генерировать машинный код, объявлять типы данных и

определять

структуру данных. В 1973 году система была написана заново на Си, это

был

шаг, неслыханный для того времени, но имевший огромный резонанс среди сто-

ронних пользователей. Количество машин фирмы Bell Laboratories, на

которых

была инсталлирована система, возросло до 25, в результате чего была

создана

группа по системному сопровождению UNIX внутри фирмы.

В то время корпорация AT&T не могла заниматься продажей

компьютерных

продуктов в связи с соответствующим соглашением, подписанным ею с федераль-

ным правительством в 1956 году, и распространяла систему UNIX среди универ-

ситетов, которым она была нужна в учебных целях. Следуя букве

соглашения,

корпорация AT&T не рекламировала, не продавала и не сопровождала

систему.

Несмотря на это, популярность системы устойчиво росла. В 1974 году Томпсон

и

Ричи опубликовали статью, описывающую систему UNIX, в журнале

Communications of the ACM [Thompson 74], что дало еще один импульс к

распространению системы. К 1977 году количество машин, на которых

функционировала система UNIX, увеличилось до 500, при чем 125 из них

работали в университетах. Система UNIX завоевала популярность среди

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

программ, обслуживала работу в сети в режиме диалога и работу в реальном

масштабе времени (с помощью системы MERT [Lycklama 78a]). Помимо

университетов, лицензии на систему UNIX были переданы коммерческим

организациям. В 1977 году корпорация Interactive Systems стала первой

организацией, получившей права на перепродажу системы UNIX с надбавкой8

к цене за дополнительные услуги ((), которые заключались в адаптации

системы к функционированию в автоматизированных системах управления

учрежденческой деятельностью. 1977 год также был отмечен "переносом"

системы UNIX на машину, отличную от PDP (благодаря чему стал возможен

запуск системы на другой машине без изменений или с небольшими

изменениями), а именно на Interdata 8/32.

С ростом популярности микропроцессоров другие компании стали

переносить

систему UNIX на новые машины, однако ее простота и ясность побудили

многих

разработчиков к самостоятельному развитию системы, в результате чего

было

создано несколько вариантов базисной системы. За период между 1977 и

1982

годом фирма Bell Laboratories объединила несколько вариантов,

разработанных

в корпорации AT&T, в один, получивший коммерческое название UNIX версия

III.

В дальнейшем фирма Bell Laboratories добавила в версию III несколько

новых

особенностей, назвав новый продукт UNIX версия V (((), и эта версия

стала

официально распространяться корпорацией AT&T с января 1983 года. В то

же

время сотрудники Калифорнийского университета в Бэркли разработали

вариант

системы UNIX, получивший название BSD 4.3 для машин серии VAX и

отличающийся некоторыми новыми, интересными особенностями.

К началу 1984 года система UNIX была уже инсталлирована

приблизительно

на 100000 машин по всему миру, при чем на машинах с широким диапазоном вы-

числительных возможностей - от микропроцессоров до больших ЭВМ - и

разных

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

сказать

того же. Популярность и успех системы UNIX объяснялись несколькими причина-

ми:

. Система написана на языке высокого уровня, благодаря чему ее легко

читать, понимать, изменять и переносить на другие машины. По оценкам,

сделанным Ричи, первый вариант системы на Си имел на 20-40 % больший

объем и работал медленнее по сравнению с вариантом на ассемблере,

однако преимущества ис- пользования языка высокого уровня намного

перевешивают недостатки [Ritchie 78b], стр. 1965).

. Наличие довольно простого пользовательского интерфейса, в котором имеется

возможность предоставлять все необходимые пользователю услуги.

. Наличие элементарных средств, позволяющих создавать сложные программы

из более простых.

. Наличие иерархической файловой системы, легкой в сопровождении и эффектив-

ной в работе.

. Обеспечение согласования форматов в файлах, работа с последовательным

потоком байтов, благодаря чему облегчается чтение прикладных программ.

. Наличие простого, последовательного интерфейса с периферийными устройства-

ми.

. Система является многопользовательской, многозадачной; каждый

пользователь может одновременно выполнять несколько процессов.

. Архитектура машины скрыта от пользователя, благодаря этому облегчен про-

цесс написания программ, работающих на различных конфигурациях

аппаратных средств.

Простота и последовательность вообще отличают систему UNIX и

объясняют

большинство из вышеприведенных доводов в ее пользу.

Хотя операционная система и большинство команд написаны на Си,

система

UNIX поддерживает ряд других языков, таких как Фортран, Бейсик,

Паскаль,

Ада, Кобол, Лисп и Пролог. Система UNIX может поддерживать любой язык прог-

раммирования, для которого имеется компилятор или интерпретатор, и обеспечи-

вать системный интерфейс, устанавливающий соответствие между пользователь-

скими запросами к операционной системе и набором запросов, принятых в UNIX.

2. СТРУКТУРА СИСТЕМЫ

На Рисунке 1.1 изображена архитектура верхнего уровня системы UNIX. Тех-

нические средства, показанные в центре диаграммы, выполняют функции, обеспе-

чивающие функционирование операционной системы. Операционная система

взаимодействует с аппаратурой непосредственно((((), обеспечивая

обслуживание программ и их независимость от деталей аппаратной

конфигурации. Если представить систему состоящей из пластов, в нейможно

выделить системное ядро, изолированное от пользовательских

[pic]

Рисунок 1.1. Архитектура системы UNIX

программ. Поскольку программы не зависят от аппаратуры, их легко

переносить

из одной системы UNIX в другую, функционирующую на другом комплексе техни-

ческих средств, если только в этих программах не подразумевается работа

с

конкретным оборудованием. Например, программы, расчитанные на

определенный

размер машинного слова, гораздо труднее переводить на другие машины по срав-

нению с программами, не требующими подобных установлений.

Программы, подобные командному процессору shell и редакторам (ed и vi)

и

показанные на внешнем по отношению к ядру слое, взаимодействуют с ядром

при

помощи хорошо определенного набора обращений к операционной системе.

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

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

ми между ядром и программой. Некоторые из программ, приведенных на рисунке,

в стандартных конфигурациях системы известны как команды, однако на одном

уровне с ними могут располагаться и доступные пользователю программы, такие

как программа a.out, стандартное имя для исполняемого файла, созданного

компилятором с языка Си. Другие прикладные программы располагаются выше

указанных программ, на верхнем уровне, как это показано на рисунке.

Например, стандартный компилятор с языка Си, cc, располагается на самом

внешнем слое: он вызывает препроцессор для Си, ассемблер и загрузчик

(компоновщик), т.е. отдельные программы предыдущего уровня. Хотя на

рисунке приведена двухуровневая иерархия прикладных программ, пользователь

может расширить иерархическую структуру на столько уровней, сколько

необходимо. В самом деле, стиль программирования, принятый в системе UNIX,

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

задачу.

Многие прикладные подсистемы и программы, составляющие верхний

уровень

системы, такие как командный процессор shell, редакторы, SCCS (система обра-

2ботки исходных текстов программ) и пакеты программ подготовки

документации,

постепенно становятся синонимом понятия "система UNIX". Однако все они поль-

зуются услугами программ нижних уровней и в конечном счете ядра с

помощью

набора обращений к операционной системе. В версии V принято 64 типа обраще-

ний к операционной системе, из которых немногим меньше половины

используются

часто. Они имеют несложные параметры, что облегчает их использование, пре-

доставляя при этом большие возможности пользователю. Набор обращений к опе-

рационной системе вместе с реализующими их внутренними алгоритмами составля-

ют "тело" ядра, в связи с чем рассмотрение операционной системы UNIX

сводится к подробному изучению и анализу обращений к системе и их

взаимодействия между собой. Короче говоря, ядро реализует функции, на

которых основывается выполне-ние всех прикладных программ в системе UNIX, и

им же определяются эти функции. Использование терминов "система

UNIX","ядро" или "система", имеется ввиду ядро операционной системы UNIX,

что и должно вытекать из контекста.

3. ОБЗОР С ТОЧКИ ЗРЕНИЯ ПОЛЬЗОВАТЕЛЯ

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

Файловая система UNIX характеризуется:

. иерархической структурой,

. согласованной обработкой массивов данных,

. возможностью создания и удаления файлов,

. динамическим расширением файлов,

. защитой информации в файлах,

. трактовкой периферийных устройств (таких как терминалы и ленточные ус-

тройства) как файлов.

Файловая система организована в виде дерева с одной исходной

вершиной,

которая называется корнем (записывается: "/"); каждая вершина в

древовидной

структуре файловой системы, кроме листьев, является каталогом файлов, а фай-

[pic]

Рисунок 1.2. Пример древовидной структуры файловой системы

лы, соответствующие дочерним вершинам, являются либо каталогами, либо обыч-

ными файлами, либо файлами устройств. Имени файла предшествует указание

пути

поиска, который описывает место расположения файла в иерархической

структуре

файловой системы. Имя пути поиска состоит из компонент, разделенных

между

собой наклонной чертой (/); каждая компонента представляет собой набор

символов, составляющих имя вершины (файла), которое является уникальным

для каталога (предыдущей компоненты), в котором оно содержится. Полное имя

пути поиска начинается с указания наклонной черты и идентифицирует

файл (вершину), поиск которого ведется от корневой вершины дерева

файловой системы с обходом тех ветвей дерева файлов, которые соответствуют

именам отдельных компонент. Так, пути "/etc/passwd", "/bin/who" и

"/usr/src/cmd/who.c" указывают на файлы, являющиеся вершинами дерева,

изображенного на Рисунке 1.2, а пути "/bin/passwd" и "/usr/ src/date.c"

содержат неверный маршрут. Имя пути поиска необязательно должно начинаться

с корня, в нем следует указывать маршрут относительно текущего для

выполняемого процесса каталога, при этом предыдущие символы "наклонная

черта" в имени пути опускаются. Так, например, если мы находимся в

каталоге "/dev", то путь "tty01" указывает файл, полное имя пути поиска для

которого "/dev/tty01".

Программы, выполняемые под управлением системы UNIX, не содержат

никакой

информации относительно внутреннего формата, в котором ядро хранит

файлы

данных, данные в программах представляются как бесформатный поток

Страницы: 1, 2


ИНТЕРЕСНОЕ



© 2009 Все права защищены.