
- •Раздел 4. Операционная система unix
- •Оглавление
- •Введение
- •1. Основание и история
- •2. Основные понятия ос unix
- •2.1. Основные понятия
- •2.2. Ядро ос unix
- •2.2.1. Общая организация традиционного ядра ос unix
- •2.2.2. Основные функции
- •2.2.3. Принципы взаимодействия с ядром
- •2.2.4. Принципы обработки прерываний
- •2.3. Файловая система
- •2.3.1. Структура файловой системы
- •2.3.2. Монтируемые файловые системы
- •2.3.3. Интерфейс с файловой системой
- •2.3.4. Разновидности файлов
- •2.3.5. Распределенные файловые системы
- •2.4. Управление устройствами
- •2.4.1. Устройство как специальный файл
- •2.4.2. Драйверы устройств
- •2.4.3. Внешний и внутренний интерфейсы устройств
- •2.5. Принципы защиты
- •2.5.1. Идентификаторы пользователя и группы пользователей
- •2.5.2. Защита файлов
- •2.6. Базовые механизмы сетевых взаимодействий
- •2.6.1. Потоки (Streams)
- •2.6.2. Стек протоколов tcp/ip
- •2.6.3. Программные гнезда (Sockets)
- •2.6.4. Вызовы удаленных процедур (rpc)
- •3. Основные функции и компоненты ядра ос unix
- •3.1. Управление памятью
- •3.1.1. Виртуальная память
- •3.1.2. Аппаратно-независимый уровень управления памятью
- •3.1.3. Страничное замещение основной памяти и swapping
- •3.2. Управление процессами и нитями
- •3.2.1. Пользовательская и ядерная составляющие процессов
- •3.2.2. Принципы организации многопользовательского режима
- •3.2.3. Механизм управления процессами на уровне пользователя
- •3.2.4. Понятие нити (threads)
- •3.2.5. Организация нитей и управлению ими в ос unix
- •3.3. Управление вводом/выводом
- •3.3.1. Принципы системной буферизации ввода/вывода
- •3.3.2. Системные вызовы для управления вводом/выводом
- •3.3.3. Блочные драйверы
- •3.3.4. Символьные драйверы
- •3.3.5. Потоковые драйверы
- •3.4. Взаимодействие процессов
- •3.4.1. Разделяемая память
- •3.4.2. Семафоры
- •3.4.3. Очереди сообщений
- •3.4.4. Программные каналы
- •3.4.5. Программные гнезда (sockets)
- •4. Мобильное программирование в среде ос unix. Стандартные библиотеки
- •4.1. Библиотека системных вызовов
- •4.2. Библиотека ввода/вывода
- •4.3. Дополнительные библиотеки
- •4.4. Файлы заголовков
- •5. Средства интерактивного интерфейса пользователей
- •5.1. Командные языки и командные интерпретаторы
- •5.1.1. Общая характеристика командных языков
- •5.1.2. Базовые возможности семейства командных интерпретаторов
- •5.2. Команды и утилиты
- •5.2.1. Организация команды в ос unix
- •5.2.2. Перенаправление ввода/вывода и организация конвейера
- •5.2.3. Встроенные, библиотечные и пользовательские команды
- •5.2.4. Программирование на командном языке
- •6. Средства графического интерфейса пользователей
- •6.1. Оконная система X как базовое средство графических интерфейсов в среде ос unix
- •6.1.1. Общая организация X-Window
- •6.1.2. Клиентская и серверная части
- •6.1.3. Базовые библиотеки
- •6.2. Средства разработки графических интерфейсов
- •7. Современное состояние ос unix
- •7.2. Системы, основанные на System V Release 4
- •7.3. Свободно распространяемые и коммерческие варианты ос unix семейства bsd
- •7.4. Другие свободно распространяемые варианты ос unix
- •7.5. Стандарты ос unix
- •Заключение
- •Литература
Тамбовский военный авиационный инженерный институт
А.А. Безбогов, А.В. Яковлев
Операционные системы
и системное программирование
Раздел 4. Операционная система unix
Учебное пособие
-
Допущено Ученым советом института в качестве учебного пособия для обучения курсантов по специальности 220200 – «Автоматизированные системы обработки информации и управления»
Тамбов
2003
УДК 681.3.06
Безбогов А.А., Яковлев А.В.
Операционные системы и системное программирование. Учебное пособие. Раздел 4. Тамбов: ТВАИИ, 2003.
Данное пособие является кратким описанием операционной системы UNIX, изучаемой в дисциплине "Операционные системы и системное программирование" и предназначено для курсантов факультета "Автоматизированные системы управления". В пособии изложен учебный материал по истории создания, теории построения и работе в операционной системе UNIX. Пособие может быть полезно при курсовом и дипломном проектировании, а также адъюнктам.
Оглавление
Введение 4
1. Основание и история 6
2. Основные понятия ОС UNIX 17
2.1. Основные понятия 17
2.2. Ядро ОС UNIX 27
2.3. Файловая система 32
2.4. Управление устройствами 51
2.5. Принципы защиты 55
2.6. Базовые механизмы сетевых взаимодействий 58
3. Основные функции и компоненты ядра ОС UNIX 68
3.1. Управление памятью 69
3.2. Управление процессами и нитями 85
3.3. Управление вводом/выводом 104
3.4. Взаимодействие процессов 112
4. Мобильное программирование в среде ОС UNIX. Стандартные библиотеки 134
4.1. Библиотека системных вызовов 136
4.2. Библиотека ввода/вывода 137
4.3. Дополнительные библиотеки 137
4.4. Файлы заголовков 138
5. Средства интерактивного интерфейса пользователей 140
5.1. Командные языки и командные интерпретаторы 141
5.2. Команды и утилиты 150
6. Средства графического интерфейса пользователей 152
6.1. Оконная система X как базовое средство графических интерфейсов в среде ОС UNIX 154
6.2. Средства разработки графических интерфейсов 159
7. Современное состояние ОС UNIX 162
7.1. UNIX System V Release 4 и UnixWare 163
7.2. Системы, основанные на System V Release 4 164
7.4. Другие свободно распространяемые варианты ОС UNIX 167
7.5. Стандарты ОС UNIX 167
Заключение 170
Литература 173
Введение
Впервые система UNIX была описана в 1974 году в статье Кена Томпсона и Дэнниса Ричи в журнале "Communications of the ACM". С этого времени она получила широкое распространение и завоевала широкую популярность.
Настоящее пособие посвящено описанию внутренних алгоритмов и структур, составляющих основу операционной системы (т.е "ядро"), и объяснению их взаимосвязи с программным интерфейсом. Таким образом, оно будет полезно для работающих в различных операционных средах. Во-первых, оно может использоваться в качестве учебного пособия по курсу "Операционные системы" как для курсантов, так и для адъюнктов первого года обучения. Во-вторых, это пособие может служить в качестве справочного руководства для системных программистов, из которого последние могли бы лучше уяснить себе механизм работы ядра операционной системы. Наконец, программисты, работающие в среде UNIX, могут углубить свое понимание механизма взаимодействия программ с операционной системой.
Пособие представляет собой не только подробное истолкование особенностей системы; это также изображение общего механизма работы различных алгоритмов.
Материал в пособии построен следующим образом. В главе 1 приведены основания для появления и некоторые исторические сведения о развитии операционной системы (ОС) Unix. Глава 2 служит введением, содержащим краткое, общее описание системных особенностей с точки зрения пользователя и объясняющим структуру системы и архитектуру ядра. В главе 3 дается общее представление об основных функциях ядра и поясняются некоторые основные понятия. В остальной части книги освещаются вопросы, связанные с общей архитектурой системы и описанием ее различных компонентов.
При подготовке настоящего учебного пособия были использованы материалы, изложенные в приведенном в конце пособия списке литературы.