- •Кафедра программного обеспечения информационных технологий
- •ВВЕДЕНИЕ
- •ТЕМА 1
- •1.1. Разработка программ в ОС UNIX
- •1.1.1. Стандарты ОС UNIX
- •1.1.2. Отличительные черты ОС UNIX
- •1.1.3. Основы архитектуры операционной системы UNIX
- •1.1.4. Ядро системы
- •1.1.5. Пользователи системы, атрибуты пользователя
- •1.1.6. Системные вызовы и функции стандартных библиотек
- •1.1.7. Описание программы, переменные окружения
- •1.1.8. Запуск и завершение программы
- •1.1.9. Обработка ошибок
- •1.1.12. Формат ELF
- •1.1.13. Формат COFF
- •ТЕМА 2
- •2.1. Файловая система ОС UNIX
- •2.1.1. Введение
- •2.1.3. Структура файловой системы UNIX
- •2.1.4. Владельцы файлов
- •2.1.5. Права доступа к файлу
- •2.1.7. Устройства
- •2.1.8. Системные вызовы и библиотечные функции
- •2.1.9. Файлы отображаемые в памяти
- •2.1.10. Каталоги
- •2.1.11. Метаданные файлов
- •2.1.12. Базовая файловая система UNIX S5FS
- •2.1.13. Файловая система FFS (Fast File System)
- •ТЕМА 3
- •3.1. Процессы в ОС UNIX
- •3.1.1. Место процессов в ОС UNIX
- •3.1.2. Типы процессов
- •3.1.3. Создание процесса
- •3.1.4. Атрибуты процесса
- •3.1.5. Системные функции типа exec
- •3.1.6. Системные функции типа wait
- •3.1.7. Системный вызов _exit
- •3.1.8. Обработка ошибок. Коды ошибок
- •ТЕМА 4
- •4.1. Взаимодействие между процессами
- •4.1.1. Взаимодействие процессов через файлы
- •4.1.2. Взаимодействие процессов через каналы
- •4.1.3. Взаимодействие процессов с использованием сигналов
- •4.1.4. Ограничения для процессов
- •4.1.5. Дополнительные средства межпроцессного взаимодействия
- •4.1.6. Понятие потока в ОС UNIX
- •СОКРАЩЕНИЯ
- •СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Министерство образования Республики Беларусь
Учреждение образования «Белорусский государственный университет
информатики и радиоэлектроники»
Факультет компьютерных систем и сетей
Кафедра программного обеспечения информационных технологий
П.Ю. Бранцевич Лекционный материал
«Операционные системы и системное программирование»
Часть 1 Раздел 1
Операционная система UNIX (LINUX)
Для студентов специальности
40 01 01 «Программное обеспечение информационных технологий»
дневной формы обучения
Минск 2008
ВВЕДЕНИЕ .................................................................................................................. |
4 |
ТЕМА 1 ......................................................................................................................... |
6 |
1.1. Разработка программ в ОС UNIX ................................................................... |
6 |
1.1.1. Стандарты ОС UNIX ................................................................................. |
6 |
1.1.2. Отличительные черты ОС UNIX.............................................................. |
7 |
1.1.3. Основы архитектуры операционной системы UNIX ............................. |
7 |
1.1.4. Ядро системы............................................................................................. |
8 |
1.1.5. Пользователи системы, атрибуты пользователя .................................... |
9 |
1.1.6. Системные вызовы и функции стандартных библиотек..................... |
11 |
1.1.7. Описание программы, переменные окружения.................................... |
12 |
1.1.8. Запуск и завершение программы........................................................... |
14 |
1.1.9. Обработка ошибок................................................................................... |
15 |
1.1.10. Заголовки в программах........................................................................ |
18 |
1.1.11. Стандартные форматы исполняемых файлов..................................... |
20 |
1.1.12. Формат ELF ............................................................................................ |
21 |
1.1.13. Формат COFF ......................................................................................... |
23 |
ТЕМА 2 ....................................................................................................................... |
26 |
2.1. Файловая система ОС UNIX.......................................................................... |
26 |
2.1.1. Введение................................................................................................... |
26 |
2.1.2. Типы файлов............................................................................................. |
26 |
2.1.3. Структура файловой системы UNIX ..................................................... |
29 |
2.1.4. Владельцы файлов................................................................................... |
30 |
2.1.5. Права доступа к файлу........................................................................... |
31 |
2.1.6. Дополнительные атрибуты файлов по управлению правами............. |
34 |
доступа................................................................................................................ |
34 |
2.1.7. Устройства................................................................................................ |
35 |
2.1.8. Системные вызовы и библиотечные функции ..................................... |
36 |
2.1.9. Файлы отображаемые в памяти.............................................................. |
43 |
2.1.10. Каталоги.................................................................................................. |
45 |
2.1.11. Метаданные файлов............................................................................... |
47 |
2.1.12. Базовая файловая система UNIX S5FS................................................ |
48 |
2.1.13. Файловая система FFS (Fast File System) ............................................ |
52 |
ТЕМА 3 ....................................................................................................................... |
56 |
3.1. Процессы в ОС UNIX..................................................................................... |
56 |
3.1.1. Место процессов в ОС UNIX.................................................................. |
56 |
3.1.2. Типы процессов ....................................................................................... |
56 |
3.1.3. Создание процесса................................................................................... |
58 |
3.1.4. Атрибуты процесса.................................................................................. |
59 |
3.1.5. Системные функции типа exec............................................................... |
63 |
3.1.6. Системные функции типа wait ............................................................... |
65 |
3.1.7. Системный вызов _exit............................................................................ |
68 |
3.1.8. Обработка ошибок. Коды ошибок......................................................... |
68 |
ТЕМА 4 ....................................................................................................................... |
69 |
2 |
|
4.1. Взаимодействие между процессами............................................................. |
70 |
4.1.1. Взаимодействие процессов через файлы ............................................. |
70 |
4.1.2. Взаимодействие процессов через каналы............................................ |
71 |
4.1.3. Взаимодействие процессов с использованием сигналов.................... |
78 |
4.1.4. Ограничения для процессов ................................................................... |
88 |
4.1.5. Дополнительные средства межпроцессного взаимодействия ............ |
90 |
4.1.6. Понятие потока в ОС UNIX.................................................................. |
115 |
СОКРАЩЕНИЯ....................................................................................................... |
130 |
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ.............................................. |
131 |
3
ВВЕДЕНИЕ
Целью курса является изучение: организации и принципов построения современных операционных систем и системных программ; аппаратных и программных средств современных процессоров, предназначенных для поддержки многозадачных операционных систем; методологии разработки системноориентированных программ с использованием современных алгоритмических языков и систем программирования.
В данном разделе изучаются основы операционной системы UNIX (LINUX), организация файловой системы, концепция процесса, способы взаимодействия процессов в данной операционной системе .
Изучение курса предполагает знания структуры и принципов работы ЭВМ, навыков алгоритмизации и программирования на алгоритмическом языке Си, работы с ОС ЭВМ на уровне достаточном для отладки и выполнения программ. Материалы курса используются далее в курсах "Базы данных ", "Компьютерные системы и сети ", в дисциплинах, установленных советом университета.
Структурно данный курс можно разделить на два основных части.
В первой части рассматриваются вопросы разработки консольных программ для операционной системы UNIX. Эта ОС отличается развитой файловой системой и глубоко проработанной концепцией процесса. В теоретических разделах изложены основные элементы ОС UNIX.
Практическое изучение (лабораторные работы) непосредственно относятся к этой части. Для их выполнения необходима ПЭВМ с установленной операционной UNIX-подобной системой. Например, одна из версий свободно распространяемой системы Linux "Красная шапочка" (Red Hat).
На первом этапе следует ознакомиться с системой команд командного интерпретатора (создание каталогов, копирование и удаление файлов, изменение атрибутов файлов, определение полного пути к каталогу, просмотр информации о работающих процессах и т.п.). Далее требуется изучить один из текстовых редакторов, с помощью которого можно набирать и редактировать тексты программ.
Следующий шаг - разработка, набор текста, компиляция, исправление ошибок, выполнение простой программы, которая выполняет функции ввода простых данных и вывода простых сообщений и результатов.
Затем выполняются основные задания.
1.Работа с файлами и файловой системой.
2.Процессы, порождение и перегрузка процессов.
3.Взаимодействие процессов, средства взаимодействия.
Вторая часть курса является теоретической. В ней излагаются базовые вопросы организации операционных систем. Следует особое внимание уделить
4
алгоритмам (их модификациям), обеспечивающим взаимодействие процессов, понятию семафора и вопросам применения семафоров при решении задач синхронизации процессов.
Информация этой части применяется в дальнейшем при работе над курсовым проектом по данному предмету.
5