Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие_Unix.doc
Скачиваний:
4
Добавлен:
26.11.2019
Размер:
2.41 Mб
Скачать

Міністерство освіти і науки України

ОДЕСЬКА ДЕРЖАВНА АКАДЕМІЯ ХОЛОДУ

Жуковецька С.Л.

Операційна система UNIX

Конспект лекций

091501 “Компьютерні системи та мережі”

4 Курс, 1 семестр

Одеса 2008

Розроблено кафедрою інформаційних систем і мереж відповідно до освітньо-професійної програми та структурно-логічної схеми підготовки бакалаврів напряму підготовки 0915 “Комп’ютерна інженерія ”.

Розробники: ст.викладач Жуковецька Світлана Леонідівна,

Затверджено на засіданні кафедри інформаційних систем і мереж

“___” _________________ 2008 р. Протокол № ___

Завідувач кафедри

д.т.н., професор Князєва Н.О.

Схвалено методичною комісією напряму підготовки 0915 “Комп’ютерна інженерія” науково-методичної ради академії

“____” ___________________ 2008 р. Протокол № ____

Голова методичної комісії Корнієнко Ю.К.

Оглавление

ОГЛАВЛЕНИЕ 3

1 ВВЕДЕНИЕ В ОС UNIX 5

1.1 История создания 5

1.2 Базовые концепции 8

1.3 Архитектура UNIX 10

1.4 Пользователи системы 14

1.5 Пользовательская среда Unix. 15

2 ФАЙЛОВАЯ ПОДСИСТЕМА 18

2.1 Понятие 18

2.2 Логическая структура файловой системы 19

2.3 Имена файлов в ОС UNIX 21

2.4 Типы файлов 21

2.5 Права доступа к файлам 24

2.6 Физическое размещение файловой системы 26

2.7 Особенности размещения файловой системы sVfs 28

2.8 Особенности размещения файловой системы ffs (ufs) 30

2.9 Монтирование файловых систем 33

2.10 Восстановление файловой системы 35

2.11 Типы файловых систем UNIX 36

2.12 VFS 37

3 ПОДСИСТЕМА УПРАВЛЕНИЯ ПРОЦЕССАМИ 39

3.1 Понятие процесса 39

3.2 Логическая организация процессов 41

3.3 Жизненный цикл процесса 42

3.4 Реализация процессов 45

3.4.1 Состав процесса 45

3.4.2 Структуры управления процессом 47

3.4.3 Файловая система /proc 49

3.5 Нити (потоки) 50

Причины появления нитей 51

Типы нитей 52

3.5 Планирование 54

3.5.1 Задачи планировщика 54

3.5.2 Приоритеты процессов 55

3.5.3 Реализация планировщика 56

3.5.4 Расчет приоритета 57

3.5.5 Особенности планирования в Linux 58

3.6 Взаимодействие между процессами (Interprocess Communication, IPC) 59

3.6.1 введение 59

3.6.2 Взаимодействие родственных процессов 60

3.6.3 Взаимодействие произвольных процессов 61

3.6.4 Межпроцессное взаимодействие с помощью файловой системы 63

4 УПРАВЛЕНИЕ ПАМЯТЬЮ 65

4.1 Понятие виртуальной памяти 65

4.2 Свопинг 67

4.3 Страничное замещение 68

4.4 Стратегия замещения страниц 72

5 ПОДСИСТЕМА ВВОДА-ВЫВОДА 76

5.1 Основные задачи 76

5.2 Типы устройств ввода-вывода в ОС 76

5.3 Общая схема 77

5.4 Драйвера 78

5.5 Буферизация 80

5.6 Поддержка операций ввода-вывода 81

6 UNIX В СЕТЯХ 83

6.1 Конфигурация TCP/IP 83

6.2 Основные сетевые утилиты 84

6.3 Основные сетевые интерфейсы 86

6.4 Доступ к сетевым ресурсам 87

6.5 Сетевые службы Unix 92

1 Введение в ос unix

1.1 История создания

В 1965 г. в Bell Telephone Laboratories (BTL) начали разрабатывать новую операционную систему MULTiplexed Information and Computing Service (MULTICS). Хотели создать многопользовательскую (сотни пользователей) и многозадачную операционную систему разделения времени. Кен Томпсон и Денис Ритчи участвовали в разработке от BTL. Система MULTICS так и не была завершена и в 1969 году BTL вышла из проекта. Используя наработки в 1969 году, операционная система все-таки создали. Она включала:

  • файловую систему;

  • подсистему управления процессами;

  • набор утилит.

Система была написана на ассемблере для PDP-7 и назвали ее UNIX (uni – один) (передразнивая MULICS multi - много).

Когда, в 1971 году патентному отделу BTL понадобилась система обработки текста, в качестве ОС выбрали UNIX. Систему перенесли на PDP-11:

  • система занимала 16 К;

  • для прикладных программ можно было использовать 8 К;

  • максимальный размер файла, который система поддерживала был 64 К;

  • максимальный размер дискового пространства, который система поддерживала, был 512 К.

После создания первых ассемблерных версий Томпсон начал работать над компилятором для FORTRAN и разработал язык В (интерпретатор), а Ритчи переработал его в язык С. В 1973 году ядро ОС было переписано на языке высокого уровня С. Теперь появилась возможность переносить ОС UNIX на другие аппаратные платформы. В соответствии с федеральным законом BTL не имела права коммерческого распространения UNIX, но начиная с 1974 года начала продавать ее университетам по символической цене для образовательных целей. ОС модернизировалась, и каждая версия снабжалась соответствующей редакцией руководства программиста. Всего было выпущено 10 версий редакций. Первые 7 редакций были разработаны в BTL. Их разработкой занималась Computer Research Group (CRG). Они были предназначены для PDP-11, а потом для VAX. UNIX System Group отвечала за сопровождение системы.

Таблица 1 - Основные редакции

1-я редакция

1971

написана на ассемблере и включает компилятор В

3-я редакция

1973

включает компилятор С

4-я редакция

1973

ядро написано на С

6-я редакция

1975

вышла за пределы BTL (BSD-появляется)

7-я редакция

1979

включает командный интерпретатор Боурна

В 1989 году появилась System V Release 4 (SVR4), которая объединила возможности нескольких версий UNIX:

  • предыдущих версий System V;

  • Sun OS фирмы Microsystems;

  • BSD UNIX компании Berkley Software Distribution.

Она включала:

  • Командные интерпретаторы Корна и С (BSD);

  • Символические ссылки;

  • Отображаемые в память файлы (Sun OS);

  • Сетевую файловую систему NFS и RPC (Sun OS);

  • Программный интерфейс сокетов (BSD).

BSD

Калифорнийский университет в Беркли получил одну из первых лицензий на операционную систему UNIX в декабре 1974 года. За несколько лет группа выпускников университета, в состав которой входил Билл Джой (Bill Joy) и Чак Хелей (Chuck Haley), разработала несколько утилит для этой системы, в том числе редактор vi и компилятор языка Паскаль. Все созданные приложения были собраны в единый пакет под названием Berkeley Software Distribution (BSD) и продавалась весной 1978 года по цене $50 за одну лицензию.

Коммерческие версии

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

В 1982 году Билл Джой покинул Беркли и стал одним из создателей корпорации Sun Microsystems, которая выпустила свой вариант UNIX на основе 4.2 BSD SunOS. В дальнейшем компанией была разработана еще одна версия системы, Solaris на основе 4.3 BSD.

Компании Microsoft и BTL совместно создали систему XENIX. Позже SCO перенесла SVR 3 на платформу 80386 и выпустила эту систему под названием SCO UNIX.

В 80-х годах появилось множество различных коммерческих вариантов системы UNIX:

AIX от IBM;

HP-UX от Hewlett-Packard Corporation;

ULTRIX (выпущенной вслед за DEC OSF/1, переименованной позже в Digital UNIX) от компании Digital.

Стандарты

Распространенность различных реализаций UNIX привела к появлению проблем совместимости. Несмотря на то, что все существующие варианты на первый взгляд “похожи на UNIX”, на самом деле они существенно различаются между собой. Существование отличий было заложено изначально, за счет наличия двух основных веток:

системы BTL System V

BSD (созданной в Беркли).

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

Системы System V и 4 BSD существенно отличались. Они имели различные несовместимые между собой файловые системы, реализации поддержки сетей и архитектуры виртуальной памяти. Некоторые различия были обусловлены дизайном ядра систем, но большинство из них находилось на уровне программирования интерфейса. Это приводило к тому, что невозможно было создать приложение, которое работало бы без каких-либо изменений в обеих операционных системах.

Все коммерческие варианты UNIX строились на основе либо System V, либо BSD, к которым производители добавляли дополнительные возможности. Эти добавления часто оказывались непереносимыми на другие платформы. В результате создатели приложений вынуждены были тратить огромное количество времени и усилий, для того чтобы их программы нормально функционировали в различных реализациях UNIX.

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

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

В 1986 году организация IEEE поручила специальному комитету разработать и опубликовать стандарты на среды операционных систем. Название POSIX (Portable Operating System based on UNIX) переводится как “Переносимые операционные системы, основанные на UNIX”. Эти документы описывали компоненты ядра, систем SVR 3 и 4.3 BSD. Стандарт POSIX1003.1, более известный как POSIX.1, был опубликован в 19990 году. Многие производители приняли этот стандарт, так как он не ограничивался каким-то одним вариантом системы UNIX.

X/Open это международный консорциум производителей компьютерной техники и программного обеспечения. Он был сформирован в 1984 году. Его целью являлась не только разработка новых стандартов, но и создание открытой среды Common Applications Environment (Общей программной среды, CAE), базирующейся на уже существующих стандартах. Консорциум опубликовал семи томный труд ”X/Open Portability Guide” (XPG), последнее (четвертое) издание которого вышло в 1993 году. Материал руководства был основан на стандарте POSIX.1, расширял его и описывал многие дополнительные области, такие как интернационализация, оконные интерфейсы и обработка данных.

LINUX

MINIX это демонстрационная OC, написанная известным ученым компьютерщиком Эндрю Танненбаумом. Она предназначалась для демонстрации различных концепций ОС. Линусу Торвальдсу было 23 года, он пытался создать более полную версию UNIX для пользователей MINIX. 5 октября 1991 года Линус представил миру первую официальную версию LINUX.

Авторские права на OS/2 принадлежит IBM, на MS DOS и Windows Microsoft. LINUX тоже не “бесправная система”. Авторские права на разные ее части принадлежат разным людям. Линус Торвальдс владеет правами на основное ядро Linux, Red Hat обладает правами на пакет Red Hat, Пол Фолькердинг на пакет Slackware. Многие утилиты распространяются по лицензии GNU General Public License (GPL). Copyright это авторское право, а copylef это авторское лево. Существует фонд бесплатного программного обеспечения (Free software Foundation). Его организовал Ричард Сталлмен. По лицензии GPL (авторское лево) применение, модификация и распространение ПО доступно любому и каждый может переделать его как хочет. Единственным условием является предоставление переделанного исходного текста. При этом создатель сохраняет свое авторское право, но он должен предоставить другим такие же возможности.

LINUX сегодня это бесплатная, многозадачная и многопользовательская ОС. Вам не нужно обновлять свои программы каждые несколько лет за непомерные деньги. Для LINUX их можно получить бесплатно через Интернет. Кроме того, имея исходные тексты можно модифицировать систему по своему вкусу. Если у вас на работе UNIX, то почему не иметь дома LINUX. Если вы администратор UNIX, то почему не брать работу на дом и не выполнять ее в LINUX. Кроме того, LINUX обеспечивает простой доступ в Internet.

Развитие системы

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

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