
- •Кафедра программного обеспечения информационных технологий
- •«Операционные системы и системное программирование»
- •40 01 01
- •Содержание
- •Введение
- •Разработка программ в ос unix
- •1.1 Отличительные черты ос unix
- •1.2 Основы архитектуры операционной системы unix
- •1.3 Ядро системы
- •1.4 Пользователи системы, атрибуты пользователя
- •1.5 Системные вызовы и функции стандартных библиотек
- •1.6 Описание программы, переменные окружения
- •1.7 Аргументы и опции программы
- •1.8 Обработка ошибок
- •2 Файлы и файловая система
- •2.1 Файлы
- •2.2 Типы файлов
- •2.2.1 Обычные файлы
- •2.2.2 Каталоги
- •2.2.3 Файлы символичной связи (ссылки)
- •2.2.4 Файлы устройства
- •2.2.5 Именованные каналы
- •2.2.6 Сокеты
- •2.3 Владельцы файлов и права доступа к файлу
- •2.4 Дополнительные атрибуты файла
- •2.5 Файловый ввод/вывод
- •Открытие файла
- •2.6 Мультиплексированный ввод/вывод
- •2.7 Векторный ввод/вывод
- •2.8 Файлы, отображающиеся в памяти
- •2.9 Каталоги, работа с каталогами
- •2.9.1 Создание каталога
- •2.9.2 Удаление каталога
- •2.9.3 Чтение информации из каталога
- •2.9.4 Закрытие каталога
- •2.10 Создание жестких ссылок
- •2.11 Символическая ссылка
- •2.12 Удаление ссылки (или имени файла)
- •2.13 Переименование файла
- •2.14 Файловая система ос unix
- •2.14.1 Организация файловой системы ext2
- •2.15 Файлы устройств
- •3 Процессы
- •3.1 Виды процессов
- •3.2 Создание процесса
- •3.3 Вызовы семейства exec
- •3.4 Функции завершения процесса
- •3.5 Ошибки
- •3.6 Копирование при записи
- •3.7 Системные вызовы ожидания завершения процесса
- •3.8 Системный вызов system
- •3.9 Основные параметры, передаваемые процессу
- •3.10 Сеансы и группы процессов
- •4 Взаимодействие процессов
- •4.1 Сигналы
- •4.1.1 Отправка (генерация) сигнала
- •4.1.2 Наборы сигналов
- •4.1.3 Блокировка сигналов
- •4.2 Неименнованные каналы (трубы)
- •4.2.1 Размер канала и взоимодействие процессов при передаче данных
- •4.3 Именнованные каналы
- •4.4 Дополнительные средства межпроцессного взоимодействия
- •4.5 Механизмы межпроцессорного взаимодействия
- •4.5.1 Очереди сообщений
- •4.5.2 Семафоры Семафоры как теоретическая конструкция
- •4.5.3 Разделяемая память
- •4.5.4 Потоки
- •Int pthread_setschedparam(pthread_t tid, int policy, const struct sched_param *param);
- •Int pthread_getschedparam(pthread_t tid, int policy, struct schedparam *param);
- •5 Операционные системы
- •5.1 Понятие операционной системы
- •5.2 Характеристики современных ос
- •5.2.1 Многопоточность
- •5.2.2 Распределенные ос
- •5.2.3 Концепция ос на основе микроядра
- •5.2.4 Функции микроядра.
- •5.3 Принципы построения ос
- •5.4 Концептуальные основы ос
- •5.4.1 Процессы
- •Модель работы процесса с двумя приостановочными состояниями
- •Варианты решения:
- •Решение задачи взаимного исключения. Алгоритм Деккера.
- •Решение задачи взаимного исключения. Алгоритм Пэтерсона..
- •Синхронизирующие примитивы (семафоры).
- •Задача “производитель-потребитель” Общие семафоры
- •Задача “производитель-потребитель”, буфер неограниченного размера(Спящий парикмахер)
- •Задача “производитель-потребитель”, буфер ограниченного размера
- •5.4.2 Распределение ресурсов. Проблема тупиков
- •Алгоритм банкира
- •Применение алгоритма банкира
- •5.4.3 Монитороподобные средства синхронизации
- •Механизм типа «критическая область»
- •5.4.4 Виртуализация
- •5.4.5 Подсистема управления памятью
- •5.4.6 Виртуальная оперативная память
- •5.5 Аппаратные особенности процессоров Intel-архитектуры, направленных на поддержку многозадачности
- •5.5.1 Сегментация памяти. Ia-32
- •5.5.2 Распределение памяти в реальном режиме
- •5.5.3 Организация защиты в процессоре
- •5.5.4 Поддержка многозадачности в процессорах архитектуры ia-32
2.3 Владельцы файлов и права доступа к файлу
Все файлы в Unix имеют двух владельцев (пользователь и группа пользователей). Пользователь владеющий файлом может не принадлежать к группе владеющей файлом.
>ls -l
Выводит полную информации о каталоге.
Права на файл назначаются владельцем файла. Владельцем созданного файла назначается идентификатор пользователя того процесса который создал файл. Правило назначения группы: в большинстве ОС группой владельцем становится первичная группа пользователя, которая инициировала создание файла. Владение файлом определяют набор операций, которые пользователь может совершить с файлом. Некоторые действия над файлом (изменение прав доступа или изменение владельца файла) может определять только владелец файла или root. Но ряд других операций (чтение, запись) отдельно определены для разных категорий пользователей.
В ОС Unix существует три базовых класса доступа к файлу:
- пользователь, владеющий файлом;
- пользователь, относящийся к группе владеющей файлом;
- остальные (остальные кроме root).
И для каждого класса устанавливаются 3 типа прав доступа:
- чтение;
- запись;
- выполнение.
Пример:
- rwx r-x rw-
Владелец группа остальные
Команда интерпретатор:
Пример:
>chmod a+w text1.t
>chmod g+x-w file1.c; prog2.c
>chmod u+w,og+r-w prog1.c
>chmod 755 file3.t
где d - каталог
p - FIFO
b - блочно-ориентированное устройств ввода вывода.
с - символьно-ориентированное устройство ввода вывода.
Для просмотра содержимого необходимо w. Для изменения содержимого необходимо r. Для запуска на выполнение необходимо x.
Интерпретация прав доступа по отношению к каталогу
Право чтения каталога позволяет получить только имена файлов находящихся в этом каталоге. Для подробной информации необходимо обращаться к метаданным файла, а это требует права на выполнение по отношению к каталогу. Права на запись по отношению к каталогу необходимо при создании и удалении файла. При этом не учитываются права доступа к самому файлу.
Порядок действия ОС при проверке прав доступа. При инициализации действий над файлом выполняется проверка прав доступа:
Если это root действие разрешается и дополнительной проверки не производится.
Если действие запрашивается владельцем файла, то проверяется наличие права на запрашиваемое действие.
Если действие запрашивается пользователем, входящим в группу владеющую файлом, то проверяется наличие права на запрашиваемое действие.
Если действие запрашивается другим пользователем, то проверяется наличие права на запрашиваемое действие.
2.4 Дополнительные атрибуты файла
Помимо rwx есть несколько атрибутов позволяющих пользователю модифицировать назначение прав.
Код |
Название |
Описание |
T |
stickybit |
Требует сохранение образа выполняемого файла в памяти после завершения выполнения. Это имеет важное значение по отношению к каталогам. Он позволяет удалять пользователю только те файлы, которыми он владеет или имеет права w. |
S |
setUID |
По отношению к пользовательскому идентификатору. Он позволяет изменить права пользователя при запуске на выполнение файла имеющего эти атрибуты. При этом привилегии будут изменены лишь на время выполнения и только для этой программы. Обычно она получает права доступа к системным ресурсам на основе прав доступа пользователя запустившего программу. Установка s изменяет это правило назначения права доступа исходя из прав доступа владельца файла. |
S |
setGID |
Серьезного смысла не имеет, но по отношению к каталогу установка S приведет к тому, что файлы, созданные в таком каталоге, будут наследовать владельца группы по владельцу группы каталога. |