Глава 4_Часть1.ppt
- Количество слайдов: 62
Основы операционной системы UNIX Глава 4. Файловая система UNIX
Файловая система UNIX Изучив данную главу, вы сможете: n описывать структуру файловой системы UNIX n дать определения типам файлов n понимать, чем отличаются друг от друга файлы и каталоги n узнать, как проверить на целостность и как восстановить файловую систему
Основные понятия файл – это отдельная область данных на носителе информации, у которой есть собственное имя n файловая система – это способ хранения и организации доступа к данным на информационном носителе или его разделе. Классическая файловая система имеет иерархическую структуру n
Основные понятия Термин "файловая система" используется для обозначения трех разных понятий: n Во-первых, файловая система – это набор правил и конструкций (тип) n Во-вторых, файловая система – это совокупность всех файлов, хранимых в компьютере (организационная структура) n В-третьих, файловая система – это совокупность всех файлов на разделе диска или устройстве (логическая единица монтирования)
Типы файловых систем В разных версиях UNIX одновременно поддерживается несколько типов файловых систем n ОС Linux может работать с ext 2, ext 3 (extended), UFS, HPFS (High Perfomance File System), NTFS, FAT и другими n ОС Solaris использует файловую систему типа UFS (Unix file system ) n В ОС Solaris 10 впервые в мире была реализована поддержка новой транзакционной 128 -разрядной файловой системы ZFS (Zettabyte File System ) n
Файловые системы, поддерживаемые ОС Solaris 10 Файловая система Тип Устройство Описание UFS обычная диск родная файловая система Solaris ZFS обычная диск новая транзакционная система, родная для Solaris smbfs обычная сеть экспортируемая файловая система, она же – SMB или CIFS Vx. FS обычная диск журналируемая система от Veritas Corp pcfs обычная диск MSDOS FAT и FAT 32 hsfs обычная диск файловая система High Sierra (для CD-ROM); tmpfs обычная память использует оперативную память и область свопинга nfs псевдосистема сеть файловая система для монтирования каталогов на других компьютерах (подобно разделяемым каталогам Windows) cachefs псевдосистема другая ФС использует локальный диск для кэширования удаленной файловой системы NFS autofs псевдосистема другая ФС использует динамические объекты для монтирования других файловых систем specfs псевдосистема драйверы файловая система файлов устройств /dev procfs псевдосистема ядро /proc – отображение процессов в структуру ФС
Имена файлов Максимальная длина имени файла или каталога – В ранних версиях UNIX – 14 символов – В современных системах – 256 символов n Полное имя файла (т. е. путь от корня файловой системы до файла) не должен быть длиннее 1023 символов n
Имена файлов Запрещенные символы ~ ` ” ! % : ; & * ( ) ? < > / [ ] | { } (пробел) (табуляция) (новая строка) n Разрешенные символы A–Z a–z 0– 9. , – _ = + n Рекомендуемые символы точка (. ) тире ( – ) подчеркивание ( _ ) n
Имена файлов Строчные и прописные буквы myfile MYFILE my. File My. File n Символ подчеркивания ( _ ) мое_длинное_имя_файла моедлинноеимяфайла Мое. Длинное. Имя. Файла n Символ точка (. ). profile. shhistory. o. txt. doc n
Имена файлов Команда file использует специальный файл образцов – /etc/magic, который содержит сведения о файлах: n текст (English text) n текст программы на языке С (C program) n исполняемый код (executable file) n данные (data) и т. д. $ file doc. words English text
Размер блока Файловая система состоит из последовательности логических блоков длиной 512, 1024, 2048 или другого числа байт, кратного 512, в зависимости от реализации системы n В файловой системе UFS размер блока может составлять от 512 до 8192 байт n По умолчанию в ОС Solaris принят размер 8192 байт n
Структура файловой системы Загрузочный блок 0 Суперблок 1 Дескрипторы файлов Блоки для хранения информации … N
Загрузочный блок Первый блок (номер 0, размер 8 Кбайт) – это программа начальной загрузки ОС (boot block) n Каждая файловая система имеет свой (пусть даже пустой) блок загрузки n Если файловая система является загрузочной, то этот блок содержит короткую программу–загрузчик, которая читает более длинную вторичную загрузочную программу или само ядро OC UNIX n
Суперблок Второй блок (номер 1, размер 8 Кбайт) – это суперблок (superblock) n Суперблок содержит информацию, которая необходима для работы с файловой системой в целом n Суперблок описывает состояние файловой системы n Пользователь не имеет прямого доступа к суперблоку n
Суперблок К статической информации относится: n размер дискового пространства, доступного файловой системе (в блоках) n число блоков, зарегистрированных для i– узлов n имя файловой системы n имя тома n время последнего изменения n время последнего копирования (back up) К динамической информации относится: n ссылки на список свободных блоков n ссылки на список свободных i–узлов
Суперблок Команда sync обеспечивает сохранение последней версии суперблока на диске n Суперблок содержит информацию о флаге целостности файловой системы. Этот флаг устанавливается при успешном завершении работы с файловой системой n Копии суперблока многократно записываются в нескольких блоках внутри каждой файловой системы n
Дескрипторы файлов Индексный дескриптор – это уникальный идентификатор файла в пределах файловой системы n Уникальный номер, представлен целым положительным числом, которым система обозначает конкретный файл в системной таблице, где перечислены все файлы системы и где хранится вся информация о файле (около сорока информационных полей ) n
Дескрипторы файлов Имеется только один дескриптор для каждого каталога или файла n Место для дескрипторов резервируется при создании файловой системы n В разных файловых системах могут встречаться дескрипторы с одинаковыми индексами n Каждая файловая система имеет фиксированное количество индексных дескрипторов n Размер индексного дескриптора фиксирован (в ОС Solaris в UFS 128 байт ) n
Дескрипторы файлов n Команда ls –l выдает основную часть информацию из индексного дескриптора n Команда ls –i выводит номер индексного дескриптора n Команда stat предоставляет практически всю информацию, содержащуюся в индексном дескрипторе
Адресация блоков файла
Типы файлов n n n обычные – файлы общего назначения, используемые для хранения программ и данных каталоги – служат для размещения файлов файлы устройств – ассоциируются с устройствами ввода–вывода символические ссылки – содержат ссылки на другие файлы именованные каналы – служат для обмена данными между процессами сокеты – служат для реализации сетевого взаимодействия
Обычные файлы Обычные (или регулярные) файлы (ordinary files) – это последовательность байтов на устройстве внешней памяти, на котором поддерживается файловая система n Обычный файл может содержать текст или двоичные данные n
Каталоги (directories) – это специальные файлы, которые хранят имена других файлов и имена других каталогов n В каталоге для каждого файла хранится номер индексного дескриптора (inode number), который определяет, где находятся информация о файле и адреса блоков физического хранения данных в файловой системе n
Специальные файлы (special files) – это файлы устройств, которые представляют интерфейс между ядром системы и реальным внешним периферийным устройством n Специальные файлы обеспечивают доступ к физическим устройствам n В UNIX различают символьные (character special device) и блочные (block special device) файлы устройств n
Специальные файлы Выполняют только функции интерфейса n Никогда не хранят реальных данных n Хранятся в каталоге /dev n Для каждого внешнего устройства, с которым взаимодействует компьютер, предусмотрен свой файл n
Блочные специальные файлы Ассоциируются с внешними устройствами, обмен с которыми производится блоками данных, размером 512, 1024, 4096 или 8192 байтов n Типичным примером блочных устройств являются магнитные диски n Файловые системы всегда находятся на блочных устройствах n При обмене данными с блочным устройством система буферизует данные во внутреннем системном кэше n
Символьные специальные файлы Ассоциируются с внешними устройствами, которые не требуют обмена блоками данных равного размера n Примерами символьных устройств являются терминалы, принтеры, некоторые виды магнитных лент n Символьные файлы устройств используются для небуферизованного обмена данными с устройством n
Символические связи Символическая связь (symbolic link) – это специальный файл, который содержит путь к другому файлу n Символическую связь можно создать не только к файлу, но и к каталогу, находящемуся в другой файловой системе n
Именованные каналы Именованный или программный канал (pipes) - это файл, созданный для обмена информацией между двумя процессами на одной машине по принципу очереди n Канал – это временный файл, который существует так долго, как долго процессы обмениваются информацией. Данные из поименованного канала обрабатываются на основе алгоритма конвейера FIFO (сокращенно от "first–in–first–out" – "первым пришел – первым вышел") n
Сокеты (sockets) – это сетевое соединение, представленное в виде файла в логической файловой системе n Сокет – это интерфейс прикладного программирования (API), который используется для обмена информацией между двумя компьютерами, т. е. сокет выполняет сетевой ввод/вывод n
Обозначение типов файлов Тип файла Обычный файл Каталог Байт–ориентированный файл устройства Блок–ориентированный файл устройства Символическая ссылка Именованный канал Доменное гнездо UNIX Символ обозначения в системе – d c b l p s
Примеры обозначений n Пример обычного файла $ ls –l –rw–rw–r– – 1 root sys 86 Фев 23 15: 39 data n Пример каталога $ ls –l drwxr–xr–x 2 user 1 staff 115 Фев 24 13: 05 lib
Примеры обозначений n Пример специальных файлов $ ls –l br– – – – 2 root 0, 21 … /dev/dsk 15 crw–rw– – 2 root 7, 21 … /dev/rdsk 15 crw– –w– 1 root 9, 1 … /dev/tty 01 crw– –w– 1 root 9, 2 … /dev/tty 02
Примеры обозначений n Пример символической ссылки $ ln –s f 2 f 4 $ ls –l f* –rw–r– – 1 user 1 staff 50 643 … f 2 lrwxrwxrwx 1 user 1 staff 50 2 … f 4 –> f 2
Примеры обозначений n Пример именованного канала $ ls –l /etc/cron. d/FIFO prw– – – – 1 root 0 … /etc/cron. d/FIFO n Пример сокета $ ls –l /var/spool/prngd/pool $ srwxrwxrwx 1 … … /var/spool/prngd/pool
Дескрипторы файлов В файловых системах UNIX вся информация, необходимая для работы с файлом, хранится в индексном дескрипторе n Каждому файлу соответствует один индексный дескриптор n
Дескриптор обычного файла определение типа файла (обычный, каталог или специальный файл) n идентификатор владельца и группы n режим доступа к файлу – (разрешения на чтение, изменение и запуск файла) n счетчик числа ссылок на файл (связей) n размер – число байтов в файле n дату и время создания файла, дату и время его последней модификации, и дату и время последнего обращения (доступа) n адреса блоков данных n
Дескриптор обычного файла Описатель файлов хранится в составе таблицы дескрипторов (i-node table) на диске в некотором блоке. n Дескриптор файла характеризуется своим индексом (местом) в таблице дескрипторов n Все индексные дескрипторы пронумерованы n Номер индексного дескриптора – это уникальный идентификатор файла в файловой системе – в отличие от имени файла, которых может быть несколько n
Дескриптор обычного файла Узнать номер индексного дескриптора любого файла можно при помощи утилиты ls -i $ ls -i hardlink text 127705 text 127705 hardlink n
Дескриптор каталога Каталоги обеспечивают связь между именами файлов и собственно файлами n Номер дескриптора файла хранится в полях элементов каталога n Элемент каталога длиной 16 байт содержит: – поле имени файла (14 байт), по которому обеспечивается доступ к файлу – поле ссылки (2 байта), содержащее номер индексного дескриптора файла n
Дескриптор каталога имя файла номер дескриптора данные $ ls –ai 33 122 54 65 65 77 . . . first_file second_again dir 2
Дескриптор специального файла Специальные файлы служат для связи между периферийными устройствами ввода/вывода и операционной системой n Существуют два типа интерфейса с периферийными устройствами: блочный и символьный n Специальный файл не имеет размера, поскольку не является областью памяти, а представляет собой связь с устройством ввода/вывода. Вместо указания размера для него печатается номер типа устройства и собственно номер устройства среди однотипных n
Классы устройств Неструктурированные (символьные) – (character special) n Структурированные (блочные) – (raw device) n
Типы устройств В поле длины помещаются номера соответствующего устройства: n главный (старший – major number) и n дополнительный (младший – minor number) $ ls -l crw– –w– 1 root 9, 1 … /dev/tty 01 crw– –w– 1 root 9, 2 … /dev/tty 02
Типы устройств major number определяет тип устройства и одновременно – позицию в ядре, в которой следует искать драйвер устройства n Старший номер идентифицирует драйвер устройства и, следовательно, соответствующий контроллер n Старший номер определяет метод доступа (блочный или символьный). Т. е. в системе каждому драйверу ассоциирован старший номер, который используется ядром для локализации программ драйвера в ответ на запрос I/O n
Типы устройств minor number идентифицирует устройство среди однотипных n Младший номер идентифицирует устройство, привод или канал – то, что подсоединяется к контроллеру. n Младший номер используется драйвером для получения доступа к конкретному устройству и для получения информации, которая необходима для управления данными в отношении этого устройства n
Администрирование файловых систем Монтирование n Демонтирование n Проверка n Восстановление n Журналирование n
Монтирование файловых систем Каждый диск состоит из нескольких файловых систем n Все файловые системы, кроме свопинга, имеют точки монтирования n Все файловые системы UNIX представлены в виде единого дерева. К корневой файловой системе можно монтировать, т. е. присоединять новые файловые системы n
Монтирование файловых систем Для присоединения нужно указать, в какое место существующей файловой системы следует смонтировать новую систему, т. е. указать точку монтирования n Точка монтирования – это каталог, в котором появляется содержимое присоединяемой файловой системы после ее монтирования n
Монтирование файловых систем Монтирование выполняется по команде mount с указанием точки монтирования Например: n $ mount /dev/dsk/c 0 d 1 s 0 /test n
Монтирование файловых систем После монтирования все каталоги новой файловой системы будут доступны в качестве подкаталогов точки монтирования n Новая файловая система смонтирована в каталог /usr n
Монтирование файловых систем Файловые системы могут монтироваться автоматически, если они определены в специальных файлах n Для разных реализаций UNIX эти файлы могут называться по-разному Например, для ОС Solaris – /etc/vfstab, для OC Linux – /etc/filesystems В других системах UNIX этот файл имеет другое название – /etc/fstab n
Демонтирование файловых систем Демонтирование файловой системы делает ее недоступной для чтения и записи n Файлы, которые расположены на демонтируемом разделе, остаются на месте n После демонтирования файлы не видны: точка монтирования снова превращается в пустой каталог, как это было до монтирования в нее диска или раздела n
Демонтирование файловых систем Нельзя демонтировать занятую файловую систему n Демонтирование файловой системы выполняется командой umount Например: $ umount /mnt n
Для чего нужно несколько файловых систем? Защита от повреждений n Управление доступом n Управление дисковым пространством n Производительность n Резервное копирование n
Проверка и восстановление файловых систем Файловую систему необходимо проверять при каждой начальной загрузке системы n Незначительные повреждения обычно поддаются устранению с помощью команды fsck (file system consistency check – проверка целостности файловой системы) n
Проверка и восстановление файловых систем Проверка файловой системы /home: $ fsck /home n Проверка устройства c 0 d 0 s 7: $ fsck –p /dev/dsk/c 0 d 0 s 7 n
Журналирование файловых систем Журналирование (logging) – это предварительная запись всех изменений дисковой структуры в отдельную область на диске n Журнал (log file) выделяется из свободных блоков файловой системы n Журнал имеет размер порядка 1 Мбайта на каждый 1 Гбайт файловой системы n Журнал сбрасывается по мере заполнения, после синхронизации структуры файловой системы с диском n
Журналирование файловых систем Журналирование позволяет записывать в журнал информацию обо всех начатых транзакциях n Если транзакция (т. е. операция записи на диск) не была завершена, то после перезапуска системы файловая система будет автоматически возвращена в состояние, в котором она была до начала транзакции n
Журналирование файловых систем Различные версии ОС UNIX поддерживают разные реализации журналируемых файловых систем: n файловая система ufs (Solaris) n vxfs (Solaris, Unix. Ware) n raiserfs (Free. BSD) n ext 3 (Linux) n jfs (AIX и Linux)
Журналирование файловых систем Некоторые файловые системы позволяют включать и отключать журналирование (ufs, ext 2/ext 3) n Журнализация замедляет работу файловой системы n Журнализация гарантирует целостность данных n


