Слайд 1ОП.14
Основы функционирования UNIX - систем
занятие 03
Слайд 2Файловая система
Организация данных в операционных системах
определяется структурой файловой системы.
Файловая система является одной
из важнейших функциональных частей UNIX. Она обеспечивает:
• хранение данных, принадлежащих операционной системе и пользователям, а также обеспечение их целостности;
• эффективный доступ к данным, находящимся на запоминающих устройствах длительного хранения (накопителях на жестких, на оптических дисках и т. д.);
Слайд 3Файловая система
Файловая система UNIX также обеспечивает:
• эффективное выполнение
операций восстановления данных в случае их повреждения;
• единообразный механизм
доступа ко всем объектам файловой системы.
Слайд 4Файловая система
Файловая система UNIX устроена таким образом, чтобы соответствовать
одной из основных концепций этой операционной системы — представлению всех
объектов операционной системы, независимо от их природы, в виде файлов.
Здесь привычное для многих пользователей понятие файла приобретает более широкий смысл.
В привычных для многих операционных системах MS-DOS и в ранних версиях Windows термином "файл" обозначался двоичный образ данных, записанных на диск.
Слайд 5Файловая система
В UNIX к файлам относятся:
• дисковые файлы или
каталоги,
• программные объекты — именованные и неименованные каналы,
•
сокеты (гнёзда) – названия программных интерфейсов для обеспечения обмена данными между процессами,
• терминальные линии,
• а также физические устройства ввода/вывода, такие, например, как накопители на жестких дисках, параллельный и последовательный порты и т. д.
Слайд 6Файловая система
При этом устройства ввода/вывода представлены специальными файлами, которые имеют
название файлов устройств.
Подобное представление означает, что ко всем объектам файловой
системы можно обращаться, используя стандартный программный интерфейс, предоставляемый UNIX.
Например, к дисковому файлу, именованному каналу или параллельному порту можно обращаться, используя системные вызовы open (), read (), write () и close ().
Слайд 7Файловая система
Сказанное касается всех пользовательских и части системных программ, для
которых собственно и создана такая модель файловой системы.
Операционная система
UNIX на уровне ядра и драйверов устройств обрабатывает запросы к разным устройствам, дифференцируя их типы и используя различные подходы.
Слайд 8Файловая система
Есть еще одна причина, по которой выбрана именно такая
архитектура файловой системы, — это необходимость обеспечить надежность системы.
Вспомним,
что в UNIX пользовательские приложения не могут обращаться напрямую к аппаратным устройствам иначе как через системные вызовы.
Поэтому разработчики операционной системы использовали один и тот же программный интерфейс как для дисковых файлов, так и для устройств ввода/вывода.
Слайд 9Файловая система
Лучше понять механизм взаимодействия пользовательского приложения и объекта файловой
системы UNIX позволяет следующий рисунок.
Слайд 10Файловая система
Здесь показана схема обращения из программы пользователя к двум
объектам файловой системы:
• параллельному порту компьютерной системы (файл
устройства /dev/lp0), к которому подсоединен принтер, для чего используется системный вызов open ():
open("/dev/lp0", O_RDWR);
• дисковому файлу file:
open("file", O_RDONLY);
Слайд 11Файловая система
Для программы пользователя обращение к разным по природе типам
устройств (параллельный порт и жесткий диск) прозрачно, т. е. программно
они различаются лишь именами устройств.
В то же самое время для операционной системы оба этих системных вызова могут обрабатываться различными способами, поскольку оба устройства управляются различными драйверами, оперирующими как различными типами данных (символьными и блочными), так и различными аппаратными интерфейсами.
Слайд 12Файловая система
Подобная структура файловой системы очень удобна для разработчиков программного
обеспечения, поскольку она обеспечивает унифицированный программный интерфейс для работы с
объектами файловой системы.
Рассмотрим более подробно основные типы файлов, используемые в UNIX.
Слайд 13Файловая система
К ним относятся:
• бинарные файлы, содержащие
двоичные данные (например, программы или текст), записанные на жесткий диск,
• специальные файлы устройств,
• сокеты,
• именованные каналы,
• а также символические и жесткие ссылки.
Слайд 14Файловая система
Бинарные файлы
Бинарные файлы содержат наборы двоичных битов, в
которых в закодированном виде находится та или иная информация, например,
текст, рисунки, программы, аудиоданные и т. д.
В большинстве случаев, когда используют термин "файл", то имеют в виду именно такие файлы.
Данные, записанные в такие файлы, должны интерпретироваться:
• или операционной системой, если это программный файл,
• или другими приложениями.
Слайд 15Файловая система
Файлы устройств
Специальные файлы устройств позволяют
операционной системе UNIX и другим программам
взаимодействовать с аппаратными средствами и периферийными устройствами системы.
Файлы устройств не эквивалентны драйверам устройств — драйверы обеспечивают доступ к устройству на уровне аппаратно-программного интерфейса, преобразуя пакеты запросов, поступающие от ядра в соответствующие инструкции процессора.
Слайд 16Файловая система
Файлы устройств
Файлы устройств можно представить как шлюзы, через
которые драйвер получает запросы. Когда ядро получает запрос к файлу
устройства, оно просто передает этот запрос соответствующему драйверу.
Структура файла устройства отличается от той, которую имеет файл данных. Сами файлы устройств обрабатываются базовыми средствами файловой системы, а их характеристики записываются на диск. Взаимодействие пользовательской программы, файла устройства и драйвера было показано на рисунке (обращение к параллельному порту, которому соответствует файл устройства /dev/lp0).
Слайд 17Файловая система
Файлы устройств
Файлы устройств могут иметь один из
двух типов: файл байт-ориентированного ("символьного") или
блок-ориентированного ("блочного") устройств.
Файлы байт-ориентированных устройств позволяют связанным с ними драйверам выполнять собственную буферизацию ввода/вывода, в то время как файлы блок-ориентированных устройств обрабатываются драйверами, манипулирующими большими блоками данных и возлагающими буферизацию на ядро. Некоторые типы аппаратных средств, например, накопители на жестких дисках, представляются файлами обоих типов.
Слайд 18Файловая система
Файлы устройств
Поскольку в системе могут
присутствовать устройства одного типа, то файлы
устройств распознаются по двум номерам — старшему и младшему.
Старший номер устройства информирует ядро, к какому драйверу относится данный файл, а младший номер сообщает драйверу, к какому физическому устройству следует обращаться.
Так, например, старший номер устройства 6 в Linux обозначает драйвер параллельного порта. Первый параллельный порт /dev/lp0 будет иметь старший номер 6 и младший номер 0.
Слайд 19Файловая система
Файлы устройств
Некоторые драйверы используют младший номер устройства нестандартным
способом.
Например, драйверы накопителей на магнитных лентах часто руководствуются им
при выборе плотности записи, а также определяют, нужна ли перемотка ленты после закрытия файла устройства.
В некоторых системах драйвер терминала, управляющий последовательными устройствами, использует младшие номера устройств для идентификации модемов.
Слайд 20Файловая система
Сокет
Еще один тип файла UNIX — сокет (гнездо). Чаще
всего сокеты используются для взаимодействия между независимыми процессами, выполняющимися на
одной и той же (локальные сокеты) или на разных системах (сокеты протокола TCP).
Сокеты TCP позволяют взаимодействовать процессам, выполняющимся на разных машинах в сетях TCP/IP, хотя могут применяться для обмена данными между процессами, работающими на одном и том же хосте (в этом случае используется так называемый интерфейс обратной связи, который часто называют loopback interface, он имеет IP-адрес 127.0.0.1).
Слайд 21Файловая система
Сокет
Хост (от англ. host — «хозяин, принимающий гостей») —
любое устройство, предоставляющее сервисы формата «клиент-сервер» в режиме сервера по
каким-либо интерфейсам и уникально определённое на этих интерфейсах.
Взаимодействие процессов посредством сокетов очень широко применяется в самой операционной системе. Например, система печати, система X Window активно использует сокеты для обмена данными.
X Window System — оконная система, обеспечивающая стандартные инструменты и протоколы для построения графического интерфейса пользователя. Используется в UNIX-подобных ОС.
Слайд 23Файловая система
Сокет
Более детально взаимодействие процессов посредством сокетов
мы рассмотрим при анализе сетевого взаимодействия.
Сейчас же стоит отметить, что
сокеты:
• создаются с помощью системного вызова socket (),
• а закрываются только при закрытии соединения с обеих сторон.
Слайд 24Файловая система
Именованные каналы
К объектам файловой системы UNIX относят именованные каналы.
Так же как и локальные сокеты, именованные каналы позволяют взаимодействовать
процессам, выполняющимся на одной машине.
Именованные каналы создаются командой mknod, a удаляются командой rm.
Слайд 25Файловая система
Cимволические и жесткие ссылки
К отдельному типу объектов файловой системы
можно отнести символические и жесткие ссылки.
Это такие объекты файловой системы,
которые служат для обеспечения альтернативных способов обращения к файлам.
Слайд 26Файловая система
Большинство операционных систем UNIX поддерживает
несколько типов файловых систем.
Кроме базовой версии,
берущей начало от FreeBSD 4.3, поддерживаются и другие файловые системы, например, обладающие повышенной надежностью или упрощенными средствами восстановления после сбоев (HP-UX), а также системы, поддерживающие другую семантику (Solaris).
Большинство современных файловых систем имеет определенные отличия от базовой версии, поэтому в данный момент говорим об обобщенном типе файловой системы.
Слайд 27Файловые системы UNIX располагаются, как правило, на жестких дисках,
каждый из которых состоит из одной или нескольких
логически связанных групп цилиндров, называемых разделами (partitions).
Физическое расположение и размер раздела устанавливаются при форматировании диска.
В UNIX-системах разделы являются независимыми, доступ к ним осуществляется как к различным носителям данных, при этом один раздел содержит, как правило, только одну физическую файловую систему.
Файловая система
Иерархия файловой системы
Слайд 28Файловую систему можно рассматривать, с одной стороны, как логическую структуру
в виде дерева каталогов и файлов с четко установленной иерархией.
Именно в таком виде и представляется файловая система UNIX пользователю.
С другой стороны, файловая система — это совокупность расположенных на физическом носителе упорядоченных и неупорядоченных двоичных данных.
Файловая система
Иерархия файловой системы
Слайд 29Пользователь обычно не имеет доступа непосредственно к блокам данных на
носителях, хотя и может управлять ими при помощи программ,
в которых используются соответствующие системные вызовы.
Управление физической файловой системой — прерогатива функций ядра, поэтому вмешательство в этот процесс нежелательно, даже если вы хорошо представляете себе, что делаете.
Файловая система
Иерархия файловой системы
Слайд 30В операционных системах UNIX используются различные типы файловых систем,
каждая из которых имеет свои особенности.
Но операционная
система и программы пользователей имеют дело не с физическими блоками на жестком диске, а с логическими структурами данных, которые образуют логическую файловую систему.
В дальнейшем, если особо не оговорено, будет использоваться термин "файловая система" — при этом будет подразумеваться именно логическая файловая система.
Файловая система
Иерархия файловой системы
Слайд 31Основой любой файловой системы является корневой
каталог (обозначается как / ).
Корневой каталог, как и
другие каталоги, является обычным файлом, содержащим информацию о других файлах, позволяя четко структурировать объекты файловой системы.
Все остальные каталоги и файлы располагаются в рамках структуры, порожденной корневым каталогом (в нем и в его подкаталогах), независимо от их физического местонахождения.
Файловая система
Иерархия файловой системы
Слайд 32Структуру файловой системы UNIX можно
представить себе так, как показано на рисунке.
Файловая система
Иерархия
файловой системы
Слайд 35Каталоги и файлы располагаются в рамках структуры, порожденной
корневым каталогом, независимо от их физического местонахождения, которое можно
проиллюстрировать следующим рисунком.
Файловая система
Иерархия файловой системы
Слайд 36Совокупность имен каталогов, через которые проходит путь к заданному файлу,
образует, вместе с именем этого файла включительно, путевое имя.
Путевые
имена могут быть абсолютными (например, /tmp/myfile) или относительными (например, local/filesystem), при этом относительное имя указывается по отношению к текущему каталогу.
Максимальный размер имени каталога не должен превышать 255 символов, а отдельное путевое имя не должно быть более 1023 символов.
Файловая система
Иерархия файловой системы
Слайд 37Для корневого каталога обязательно создается отдельная физическая файловая система, а
сам он является точкой ее монтирования, о чем
свидетельствует наличие подкаталога lost+found.
Корневой каталог должен быть всегда доступен и монтируется автоматически при запуске системы, поэтому с формальной точки зрения все остальные физические файловые системы для функционирования UNIX не нужны.
Файловая система
Иерархия файловой системы
Слайд 38Большинство операционных систем придерживается более-менее стандартной
структуры каталогов файловой системы, устанавливая для них предопределенные назначения, хоть
это и не обязательно:
• /bin — содержит программы пользователей — в большинстве современных систем обычно является символической ссылкой на каталог /usr/bin;
• /dev — каталог для специальных файлов устройств — обычно содержит подкаталоги для различных классов и типов устройств, например, dsk, rdsk, rmt, inet (в UNIX System V);
Файловая система
Иерархия файловой системы
Слайд 39 • /etc — каталог для
конфигурационных файлов — может включать
подкаталоги для различных компонентов и сервисов;
• /home — каталог, в котором размещаются начальные каталоги пользователей — во многих случаях к нему монтируется (присоединяется) отдельная физическая файловая система;
• /lib — каталог для библиотек — обычно является символической ссылкой на /usr/lib;
Файловая система
Иерархия файловой системы
Слайд 40• /lost+found — этот подкаталог содержится в каждом каталоге,
являющемся точкой монтирования физической файловой
системы;
• /mnt — точка монтирования для файловых систем на съемных носителях или дополнительных дисках (например, CD-ROM или флоппи-диски);
• /opt — каталог для дополнительного программного обеспечения (может быть пустым или отсутствовать);
Файловая система
Иерархия файловой системы
Слайд 41• /рrос — каталог псевдо-файловой системы, предоставляющей в
виде каталогов и файлов информацию о ядре,
памяти и процессах, работающих в системе;
• /sbin — каталог для системных программ, необходимых для системного администрирования UNIX;
• /tmp — каталог для временных файлов;
Файловая система
Иерархия файловой системы
Слайд 42• /usr — в этом каталоге
находятся программы, библиотеки заголовочные файлы, справочные
руководства (/usr/share/man), исходные тексты ядра и утилит системы (в Linux), файлы очереди печати (/usr/spool в BSD-системах) и т. д. Часто каталог является точкой монтирования отдельной физической файловой системы.
• /var — в UNIX System V и Linux этот каталог является аналогом каталога, используемого для хранения файлов различных системных сервисов, например, файлов журналов системы.
Файловая система
Иерархия файловой системы
Слайд 43В каталог /usr могут находиться следующие подкаталоги:
•
/usr/bin — основные программы и утилиты операционной системы;
•
/usr/include — заголовочные файлы библиотек функций.
Здесь же могут находиться подкаталоги;
Файловая система
Иерархия файловой системы
Слайд 44• /usr/lib — статически и динамически
компонуемые библиотеки; может содержать подкаталоги;
• /usr/local —
каталог для дополнительного свободно распространяемого программного обеспечения.
Данный подкаталог содержит иерархию подкаталогов, аналогичную корневому (bin, etc, include, lib и т. д.);
Файловая система
Иерархия файловой системы
Слайд 45Следует сказать, что использование других
каталогов верхнего уровня и подкаталогов зависит:
• от
версии операционной системы UNIX,
• от установленного системного и прикладного программного обеспечения,
• от изменений, внесенных в базовую конфигурацию пользователем.
Файловая система
Иерархия файловой системы
Слайд 46В операционной системе UNIX путевое имя файла принято называть жесткой
ссылкой.
Причем для большинства файлов имеется всего лишь одна жесткая
ссылка, хотя при помощи команды ln пользователь может создать дополнительные жесткие ссылки для каждого из файлов.
Файловая система
Иерархия файловой системы
Слайд 47Например, для файла с путевым именем /home/user1/text можно создать жесткую
ссылку /home/user1/text.new, выполнив команду
ln /home/user1/text /home/user1/text.new
После этого
при любых операциях с данным файлом к нему можно обращаться по этой ссылке.
Файловая система
Иерархия файловой системы
Слайд 48Другой тип ссылки — символическая, или, как ее называют по-другому,
"мягкая" ссылка — позволяет вместо
путевого имени файла указывать псевдоним.
При обнаружении символической ссылки, например, во время поиска файла, ядро извлекает из нее путевое имя.
Жесткая ссылка отличается от символической тем, что она указывает непосредственно на индексный дескриптор файла, т. е. на физическое расположение первого блока файла, в то время как символическая ссылка указывает на файл по его имени.
Файловая система
Иерархия файловой системы
Слайд 49Файл, адресуемый символической ссылкой, и сама ссылка являются физически
разными объектами файловой системы.
Символическая ссылка
создается командой ln -s, а удаляется командой rm. Такая ссылка может указывать на файл, находящийся в другой файловой системе, или даже на несуществующий файл.
В рассмотренном ранее примере можно жесткую ссылку заменить символической:
ln -s /home/user1/text /home/user1/text.new
Файловая система
Иерархия файловой системы
Слайд 50Список литературы:
Юрий Магда. UNIX для студентов, Санкт-Петербург «БХВ-Петербург», 2007.
Unix и
Linux: руководство системного администратора, 4-е издание, 2012, Э. Немет, Г.
Снайдер, Т. Хейн, Б. Уэйли
Организация UNIX систем и ОС Solaris 9, Торчинский Ф.И., Ильин Е.С., 2-е издание, исправленное, 2016.
Слайд 51Ссылки:
http://bolizm.ihep.su/images/X/X-windows.example.gif
https://cf.ppt-online.org/files/slide/u/u50SQ4JW896iL2eDtodqKBcmaIAnZHTypjRCvU/slide-4.jpg
https://myslide.ru/documents_3/7fcd04f3851dd2390fc0dd725815997d/img3.jpg
https://prezentacii.org/uploads/files/18/10/85160/data/pres/screen13.jpg
Слайд 52Спасибо за внимание!
Преподаватель: Солодухин Андрей Геннадьевич
Электронная почта: asoloduhin@kait20.ru