Особенности операционной системы 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,
допускает разработку комбинации программ,выполняющих одну и ту же, общую
задачу.
Многие прикладные подсистемы и программы, составляющие верхний
Страницы: 1, 2, 3
|