- •4 Курс, 1 семестр
- •Оглавление
- •1 Введение в ос unix
- •1.1 История создания
- •1.2 Базовые концепции
- •1.3 Архитектура unix
- •1.4 Пользователи системы
- •1.5 Пользовательская среда Unix.
- •2 Файловая подсистема
- •2.1 Понятие
- •2.2 Логическая структура файловой системы
- •2.3 Имена файлов в ос unix
- •2.4 Типы файлов
- •2.5 Права доступа к файлам
- •2.6 Физическое размещение файловой системы
- •2.7 Особенности размещения файловой системы sVfs
- •2.8 Особенности размещения файловой системы ffs (ufs)
- •2.9 Монтирование файловых систем
- •2.10 Восстановление файловой системы
- •2.11 Типы файловых систем unix
- •3 Подсистема управления процессами
- •3.1 Понятие процесса
- •3.2 Логическая организация процессов
- •3.3 Жизненный цикл процесса
- •3.4 Реализация процессов
- •3.4.1 Состав процесса
- •3.4.2 Структуры управления процессом
- •3.4.3 Файловая система /proc
- •3.5 Нити (потоки)
- •Причины появления нитей
- •Типы нитей
- •3) Прикладные нити. Существует возможности поддержки нитей полностью на прикладном уровне, при этом ядру об их существовании ничего не известно.
- •3.5 Планирование
- •3.5.1 Задачи планировщика
- •3.5.2 Приоритеты процессов
- •3.5.3 Реализация планировщика
- •3.5.4 Расчет приоритета
- •3.5.5 Особенности планирования в Linux
- •3.6 Взаимодействие между процессами (Interprocess Communication, ipc)
- •3.6.1 Введение
- •3.6.2 Взаимодействие родственных процессов
- •3.6.3 Взаимодействие произвольных процессов
- •Разделяемая память.
- •Передача сообщений.
- •Семафоры.
- •3.6.4 Межпроцессное взаимодействие с помощью файловой системы
- •4 Управление памятью
- •4.1 Понятие виртуальной памяти
- •4.2 Свопинг
- •4.3 Страничное замещение
- •4.4 Стратегия замещения страниц
- •5 Подсистема ввода-вывода
- •5.1 Основные задачи
- •5.2 Типы устройств ввода-вывода в ос
- •5.3 Общая схема
- •5.4 Драйвера
- •5.5 Буферизация
- •5.6 Поддержка операций ввода-вывода
- •6 Unix в сетях
- •6.1 Конфигурация tcp/ip
- •6.2 Основные сетевые утилиты
- •6.3 Основные сетевые интерфейсы
- •6.4 Доступ к сетевым ресурсам
- •6.5 Сетевые службы Unix
2 Файловая подсистема
2.1 Понятие
Термин файловая система по историческим причинам обозначает одновременно и иерархию каталогов и файлов, и часть ядра, управляющую доступом к каталогам и файлам.
Организация файловой системы в первом значении этого термина означает рассмотрение структур, в которые могут быть организованы файлы на носителях данных.
Рассмотрение второго значения термина файловая система означает рассмотрение совокупности процедур, осуществляющих доступ к файлам на различных носителях.
Обобщенное определение.
Файловая система - это компонент операционной системы, обеспечивающий организацию создания, хранения и доступа к именованным наборам данных. Эти именованные наборы данных называются файлами.
Задачи:
выполняет операции создания и удаления файлов, а также выполняет запись/чтение данных файла.
контролирует права доступа к файлам,
обеспечивает перенаправление запросов, адресованных периферийным устройствам, соответствующим модулям подсистемы ввода-вывода.
обеспечивает унифицированный интерфейс доступа к данным, расположенным на различных носителях, и к периферийным устройствам.
Файловая система UNIX-а - это многопользовательская иерархическая файловая система.
Многопользовательская система обеспечивает корректную работу многих пользователей. Для этого система должна обеспечивать защиту информации от несанкционированного доступа во всех областях: это и файлы, и процессы, и ресурсы, принадлежащие процессам.
Примеры однопользовательских систем - MS-DOS или Windows 95. Можно загрузить машину и уничтожить все файлы других пользователей, защиты нет никакой. MS-DOS также может работать в режиме мультипрограммирования, но он не достаточно корректен, потому что ошибка в одном процессе может привести к затиранию операционной системы и соседнего процесса. Также и в операционной системе Windows 95 может работать много пользователей, но эта работа некорректна, потому что эта операционная система не обеспечивает все права защиты.
В иерархической файловой системе все файлы построены в структуру, основанную на вложенных каталогах.
2.2 Логическая структура файловой системы
Граф, описывающий иерархию каталогов, может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог, и сеть — если файл может входить сразу в несколько каталогов. Например, в MS-DOS и Windows каталоги образуют древовидную структуру, а в UNIX — сетевую. Каталог самого верхнего уровня называется корневым каталогом, или корнем (root).
Рисунок 2.1 – Структура файловой системы
Логическая файловая система может состоять из одной или нескольких физических файловых (под)систем, являющихся разделами физических носителей (дисков, CD-ROM или дискет).
В корне дерева находится, так называемый, корень файловой системы. Если узел дерева является листом, то это файл, который может содержать данные пользователя, либо являться файлом-каталогом. Узлы дерева отличные от листа являются файлами-каталогами.
В UNIX используются стандартные имена основных каталогов, что существенно облегчает работу в операционной системе и ее администрирование. Назначение основных каталогов файловой системы UNIX представлена в табл. (** - точки монтирования различных фс).
Таблица 2 – Содержание основных каталогов
Каталог |
Назначение и содержание |
/ |
Корневой каталог. Является основой любой файловой системы UNIX. Все остальные каталоги и файлы располагаются в рамках структуры, порожденной корневым каталогом (в нем и в его подкаталогах), независимо от их физического местонахождения. Для корневого каталога обязательно должна создаваться отдельная физическая файловая система, а сам он является точкой ее монтирования, о чем свидетельствует наличие подкаталога lost+found. |
/bin |
Пользовательские выполняемые программы. Сейчас обычно является символической связью, указывающей на /usr/bin. |
/dev |
Каталог для специальных файлов устройств. Может иметь подкаталоги для различных классов и типов устройств, |
/etc |
Каталог для конфигурационных файлов. Может иметь подкаталоги для различных компонентов и служб. Конфигурационные файлы в UNIX - обычные текстовые. |
** /home |
Каталог для размещения начальных каталогов пользователей. Часто является точкой монтирования отдельной физической файловой системы. |
/lib |
Каталог для библиотек. Сейчас обычно является символической связью, указывающей на /usr/lib. |
/lost+found |
Каталог для сбойных файлов Подкаталог, имеющийся в каждом каталоге, являющемся точкой монтирования физической файловой системы на диске. |
** /mnt |
Точка монтирования для файловых систем на съемных носителях или дополнительных дисках. Может содержать подкаталоги для отдельных типов носителей, например, cdrom или floppy. Может быть пустым. |
/opt |
Каталог для дополнительного коммерческого программного обеспечения. Может быть пустым или отсутствовать (в BSD-системах). |
** /proc |
Каталог псевдо-файловой системы, представляющей в виде каталогов и файлов информацию о ядре, памяти и процессах, работающих в системе. |
/sbin |
Каталог для системных выполняемых программ, необходимых для решения задач системного администрирования. |
** /tmp |
Каталог для временных файлов. Имеет установленный stiky-бит и доступен для записи и чтения всем пользователям. Обычно создается в виде отдельной физической файловой системы, в том числе, в виртуальной памяти. |
** /usr |
В этом каталоге находятся выполняемые программы, библиотеки, заголовочные файлы, справочные руководства (/usr/share/man), исходные тексты ядра и утилит системы (Linux), растущие файлы и очереди печати (/usr/spool в BSD-системах) и т.д. Часто каталог является точкой монтирования отдельной физической файловой системы. Ниже представлены основные его подкаталоги. |
/usr/bin |
Основные выполняемые программы и утилиты. |
/usr/include |
Заголовочные файлы библиотек. Может содержать подкаталоги. |
/usr/lib |
Статически и динамически компонуемые библиотеки. Может содержать подкаталоги. |
/usr/local |
Каталог для дополнительного свободно распространяемого программного обеспечения (GNU). Содержит структуру подкаталогов, аналогичную корневому каталогу (bin, etc, include, lib и т.д.). |
** /var |
Хранения растущие файлы различных сервисных подсистем, например, файлов журналов системы. Так, основной журнал системы, ведущийся демоном syslogd, размещается в виде нескольких файлов в подкаталоге /var/adm. Там же, в файле /var/adm/messages, сохраняются сообщения времени загрузки. Имеет смысл создавать отдельную физическую файловую систему для размещения этого каталога (и, возможно, его подкаталога /var/run). |