Imagesforyou.ru

IMG FOR YOU — ИНТЕРЬЕРНАЯ ФОТОСТУДИЯ
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Управление файлами, типы файлов, файловая система, атрибуты файла

Одной из основных задач ОС является предоставление удобств пользователю при работе с данными, хранящимися на дисках. Для этого ОС подменяет физическую структуру хранящихся данных некоторой удобной для пользователя логической моделью, которая реализуется в виде дерева каталогов, выводимого на экран такими утилитами, как Norton Commander, Far Manager или Windows Explorer. Базовым элементом этой модели является файл, который так же, как и файловая система в целом, может характеризоваться как логической, так и физической структурой.

Файл – именованная область внешней памяти, предназначенная для считывания и записи данных.

Файлы хранятся в памяти, не зависящей от энергопитания. Исключением является электронный диск, когда в ОП создается структура, имитирующая файловую систему.

Файловая система (ФС) — это компонент ОС, обеспечивающий организацию создания, хранения и доступа к именованным наборам данных — файлам.

Файловая система включает:Файловая система включает:

  • Совокупность всех фалов на диске.
  • Наборы структур данных, используемых для управления файлами (каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске).
  • Комплекс системных программных средств, реализующих различные операции над файлами: создание, уничтожение, чтение, запись, именование, поиск.

Задачи, решаемые ФС, зависят от способа организации вычислительного процесса в целом. Самый простой тип – это ФС в однопользовательских и однопрограммных ОС. Основные функции в такой ФС нацелены на решение следующих задач:

  • Именование файлов.
  • Программный интерфейс для приложений.
  • Отображения логической модели ФС на физическую организацию хранилища данных.
  • Устойчивость ФС к сбоям питания, ошибкам аппаратных и программных средств.

Задачи ФС усложняются в однопользовательских многозадачных ОС, которые предназначены для работы одного пользователя, но дают возможность запускать одновременно несколько процессов. К перечисленным выше задачам добавляется новая задача — совместный доступ к файлу из нескольких процессов.

Файл в этом случае является разделяемым ресурсом, а значит ФС должна решать весь комплекс проблем, связанных с такими ресурсами. В частности: должны быть предусмотрены средства блокировки файла и его частей, согласование копий, предотвращение гонок, исключение тупиков. В многопользовательских системах появляется еще одна задача: Защита файлов одного пользователя от несанкционированного доступа другого пользователя.

Еще более сложными становятся функции ФС, которая работает в составе сетевой ОС ей необходимо организовать защиту файлов одного пользователя от несанкционированного доступа другого пользователя.

Основное назначение файловой системы и соответствующей ей системы управления файлами– организация удобного управления файлами, организованными как файлы: вместо низкоуровневого доступа к данным с указанием конкретных физических адресов нужной нам записи, используется логический доступ с указанием имени файла и записи в нем.

Термины «файловая система» и «система управления файлами» необходимо различать: файловая система определяет, прежде всего, принципы доступа к данным, организованным как файлы. А термин «система управления файлами» следует употреблять по отношению к конкретной реализации файловой системы, т.е. это комплекс программных модулей, обеспечивающих работу с файлами в конкретной ОС.

Пример

Файловая система FAT (file allocation table) имеет множество реализаций как система управления файлами

  • Система, разработанная для первых ПК называлась просто FAT (сейчас ее называют просто FAT-12) . Ее разрабатывали для работы с дискетами, и некоторое время она использовалась для работы с жесткими дисками.
  • Потом ее усовершенствовали для работы с жесткими дисками большего объема, и эта новая реализация получила название FAT–16. это название используется и по отношению к СУФ самой MS-DOS.
  • Реализация СУФ для OS/2 называется super-FAT (основное отличие – возможность поддерживать для каждого файла расширенные атрибуты).
  • Есть версия СУФ и для Windows 9x/NT и т.д. (FAT-32).

Файловая система exFAT

Кто же, как не компания Microsoft смогла бы создать ведущую файловую систему exFAT. Эта файловая система получилась в ходе модернизации системы FAT32. После модификации файловой системы FAT32, были сняты такие ограничение, как объем файлов, объем разделов и количество файлов в одном разделе и папке.

Читайте так же:
Виндовс не удается форматировать флешку

Именно эта система чаще всего используется пользователями на съемных носителях. Но, несмотря на свое качество и скорость работы данная система имеет некоторые изъяны. Речь идет о невозможности некоторых операционок поддерживать систему exFAT. К примеру, Виндовс ХР по умолчанию не поддерживает данную операционную систему. Но, для тех, кто еще живет в прошлом веке и пользуется ХР операционкой, можно скачать с официального сайта обновления, которые позволят использовать систему exFAT.

Типы файлов

Файлы бывают разных типов: обычные, специальные файлы, файлы-каталоги.

Обычный файл может быть как текстовым, так и двоичным. Текстовый файл состоит из строк символов, которые представлены в кодовой таблице. Это может быть документ, исходный текст программы и т.п. Текстовый файл можно прочитать на экране, а можно распечатать на принтере. Двоичный файл имеет сложную внутреннюю структуру, например, объектного кода программы или архивного файла. Любая операционная система должна уметь распознавать хотя бы один тип файла − свой собственный исполняемый файл.

Специальный файл − это файл, который используется для представления физического устройства ввода-вывода (жёсткого или оптического дисковода, принтера, звуковых колонок и т.д.). Он позволяет пользователю, при помощи обычных команд записи в файл или чтения из файла, выполнять операции ввода-вывода.

Кроме обычных файлов, специальных и файлов-каталогов в ОС Linux есть ещё ссылки — это файлы, содержащие ссылки на другие файлы (не путать с ярлыками).

Каталог − это группа файлов, которые пользователь захотел объединить по своему усмотрению (файлы, которые содержат программы игр, или файлы, которые составляют один программный пакет). В то же время каталог − это файл, и он содержит системную информацию о группе файлов, которые его составляют. В каталоге находится список файлов, вошедших в него, и устанавлено соответствие между файлами и их атрибутами (характеристиками).

В разных файловых системах в качестве атрибутов могут быть использованы одна или несколько разных характеристик, например:

  • создатель файла,
  • пароль для доступа к файлу,
  • информация о разрешенном доступе,
  • владелец файла,
  • признаки (скрытый файл, файл только для чтения, системный файл, архивный файл, временный файл (который надо удалить после завершения процесса) и т.д.)
  • длина записи,
  • длина ключа,
  • текущий размер файла,
  • время создания, время последнего изменения/последнего доступа,
  • максимальный размер файла.

Так, значения характеристик файлов могут содержаться непосредственно в каталоге, как это было сделано в файловой системе MS-DOS, но каталог может и ссылаться на таблицу, которая содержит эти характеристики, как это реализовано в ОС UNIX (см. Рисунок 1)

Структура каталогов: а - структура записи каталога MS-DOS (32 байта); б - структура записи каталога ОС UNIX

Рисунок 1. Структура каталогов: а — структура записи каталога MS-DOS (32 байта); б — структура записи каталога ОС UNIX

Каталог более низкого уровня может входить в каталог более высокого уровня, поэтому каталоги могут образовывать иерархическую структуру (см. Рисунок 2.)

Иерархически каталоги могут представлять дерево или сеть. Если файлу разрешено входить только в один каталог, то каталоги образуют дерево, если файл может входить сразу в несколько каталогов, то каталоги образуют сеть. Каталоги в MS-DOS образуют структуру под названием дерево, а в UNIX’е – сетевую структуру. Каталоги имеют символьные имена, как, впрочем, и любые другие файлы, каталог однозначно инициируется составным именем, которое содержит цепочку символьных имен всех каталогов, Через эту цепочку имён и проходит полный путь от корня до данного каталога.

Каталоги жёстких дисков и/или их логических разделов в ОС Linux не являются корневыми каталогами (не принадлежат верхнему уровню файловой системы). Они встраиваются («монтируются») в каталог mnt. Другие устройства внешней памяти (гибкие, оптические и флеш-диски) встраиваются в каталог media. Каталоги mnt и media, в свою очередь, встраиваются в единый корневой каталог, который обозначается знаком « / » (прямой слэш).

Логическая организация файловой системы, где а - одноуровневая; б - иерархическая (дерево); в - иерархическая (сеть)

Рисунок 2. Логическая организация файловой системы, где а — одноуровневая; б — иерархическая (дерево); в — иерархическая (сеть)

Читайте так же:
Виндовс 10 на майкрософт люмия 640

Файловая структура диска — это совокупность всех файлов на дисках и взаимосвязей между ними.

Файловая структура может быть простой и иерархической (многоуровневой).

Простая файловая структура может быть использована для дисков с небольшим (до нескольких десятков) количеством файлов. Тогда оглавление диска представит собой линейную последовательность имён (см. Рисунок 3)

Простая файловая структура

Рисунок 3. Простая файловая структура

Иерархическая файловая структура используется для хранения большого количества файлов (сотни, тысячи). Иерархия — это когда части (элементы) целого располагаются в порядке от высшего к низшим. В начальном (корневом) каталоге содержатся вложенные каталоги и файлы первого уровня. Каждый каталог первого уровня может содержать как вложенные каталоги второго уровня, так и файлы и т. д. (Рисунок 4).

Графическое изображение иерархической файловой структуры носит название дерево. В MS Windows каталоги могут образовать несколько отдельных деревьев, если они расположены на разных дисках; а в Linux все каталоги объединяются в одно дерево, общее для всех дисков (см. Рисунок 5).

Иерархическая файловая структура в ОС Linux

Рисунок 5. Иерархическая файловая структура в ОС Linux

Древовидные иерархические структуры можно изображать как вертикально, так и горизонтально.

Структура таблицы размещения файлов:

FAT состоит из элементов длиной 16 /32/64 бита. Всего в таблице может быть до 65520 таких элементов, каждый из них (кроме первых двух) соответствует кластеру диска. Кластер является той единицей, в которой распределяется пространство в области данных на диске для файлов и каталогов. Первые два элемента таблицы (с номерами 0 и 1) зарезервированы, а каждый из остальных элементов таблицы описывает состояние кластера диска с тем же номером. Элемент может указывать, что кластер свободен, что кластер дефектный, что кластер принадлежит файлу и является последним кластером в файле. Если кластер принадлежит файлу и не является его последним кластером, то элемент таблицы содержит номер следующего кластера в этом файле.

Введение в файловую систему

Операционная система (далее — ОС) Linux поддерживает множество файловых систем, в настоящее время наиболее широко используются: ext2, ext3,ext4, reiserfs. Так же, современные ОС Linux совместимы с файловыми системами (ФС далее), используемыми ОС Windows, такими как NTFS и FAT32, но использование данных ФС в Linux крайне не желательно по причине того, что данные ФС разрабатывались под ОС Windows и поддержка Windows-разделов ядром Linux реализована с помощью сторонних утилит/драйверов/модулей, что накладывает некоторые ограничения (например, согласно проекту Linux-NTFS на момент написания статьи на разделах с NTFS поддерживается практически только чтение (запись — лишь в существующие файлы без изменения их размера), так же ОС Linux не имеет возможности разграничивать права доступа к файлам на разделах NTFS. Данная ситуация со временем может поменяться.

Базовые понятия

Начну с общей структуры файловой системы. ФС Linux/UNIX физически представляет собой пространство раздела диска разбитое на блоки фиксированного размера, кратные размеру сектора — 1024, 2048, 4096 или 8120 байт. Размер блока указывается при создании файловой системы.

Управлением обмена данными между ядром/приложениями и собственно байтами на диске занимается 2 базовых технологии, называемые виртуальная файловая система (VFS) и драйверы файловых систем. Виртуальная файловая система — это часть ядра linux, которая является неким абстрактным слоем (интерфейсам взаимодействия, если хотите) между ядром и конкретной реализацией файловой системы (ext2, fat32. ). Данная технология позволяет ядру и приложениям взаимодействовать с файловой системой не учитывая подробностей работы конкретной файловой системы и управлять файловыми операциями с помощью типовых команд — прозрачно. Часто, VFS называют виртуальный коммутатор файловых систем. Виртуальная файловая система так же осуществляет стыковку блочных устройств с имеющимися файловыми системами.

Список поддерживаемых Вашим ядром Linux файловых систем можно увидеть в файле /proc/filesystems.

Структура каталогов и другие базовые понятия

Структуру каталогов, в общем случае можно представить в виде следующей схемы:

Сетевая иерархия каталогов Linux

Данная схема отображает то, что у одного объекта файловой системы (файла) может быть несколько путей. Грубо говоря, несколько файлов в структуре каталогов Linux могут быть физически одним файлом на диске. Или же другими словами, 1 физический файл на диске может иметь несколько имен (путей). Это достигается тем, что в файловой системе каждый файл идентифицируется уникальным номером, называемым Inode (инод = Индексный дескриптор).

Читайте так же:
Виндовс 10 второй рабочий стол

Отсюда можно сделать вывод, что структура файловой системы отчасти иерархична. Или лучше сказать — «перекрестно-иерархическая», потому что дерево иерархии за счет того, что один объект может иметь несколько путей, может пересекаться.

В файловой структуре Linux имеется один корневой раздел — / (он же root, корень). Все разделы жесткого диска (если их несколько) представляют собой структуру подкаталогов, «примонтированых» к определенным каталогам, схематично это можно представить следующим образом:

Операция монтирования служит для того, чтобы сделать доступной файловую систему, расположенную на каком-либо блочном устройстве. Суть операции монтирования заключается в том, что ядро ассоциирует некоторый каталог (называемый точкой монтирования) с устройством, содержащем файловую систему и драйвером файловой системы. Для этого оно передает ссылку на блочное устройство — драйверу файловой системы, и в случае, если драйвер успешно проидентифицировал эту файловую систему, ядро заносит в специальную таблицу монтирования информацию о том, что все файлы и каталоги, чей полный путь начинается с указанной точки монтирования, обслуживаются соответствующим драйвером файловой системы и расположены на указанном блочном устройстве. Посмотреть таблицу примонтированных файловых систем можно через файл /proc/mounts .

Примечание. Вообще говоря, привязываться к блочному устройству в данном случае не обязательно. Устройство, которое монтируется может быть не только блочным. Может быть, например, сетевым (если монтируется NFS или SMBCIFS).

Посмотреть сколько файл имеет ссылок и инод файла можно командой:

в приведенном примере первый столбец (значения 193,1,197) есть инод, а третий столбец (значения 1) есть количество ссылок на файл (читаем: путей файла).

Инод, как уже говорилось, уникален в пределах определенной файловой системы и содержит следующую информацию:

  • о владельце объекта ФС
  • последнем времени доступа
  • размере объекта ФС
  • указании файл это или каталог
  • права доступа

При перемещении файла утилитой mv в пределах одной файловой системы, инод файла остается неизменным (меняется только поле, описывающее имя путь файла), при перемещении файла в другую файловую систему сначала создается новый inod, а затем удаляется исходный.

Так же хочу отметить, что в линукс существует 2 вида ссылок:

    Жесткая ссылка (она же Хардлинк, Hard-Link) — это собственно и есть один их путей файла (который указывается в команде ls -li), хорошо представлена жесткая ссылка в википедии:
  1. Символьная (она же Симлинк от англ. Symbolic link, символическая ссылка) — это файл UNIX, содержащий в себе лишь текстовую строку — путь к оригинальному файлу, на который собственно ссылается.

Файл в Linux существует пока на inod существует хотя бы одно указание (1 путь/имя), как только из системы удаляется последнее указание на inod, блоки, занимаемые файлом с данным inod «переходят» в свободный список (список блоков, доступных для выделения на диске). То есть блоки становятся свободным местом на диске.

В ФС UNIX есть такое понятие как суперблок. Суперблок — это своеобразный аналог FAT таблицы в ФС FAT32. Суперблок содержит в себе следующую информацию о файловой системе:

  • общее число блоков и индексных дескрипторов в файловой системе;
  • число свободных блоков и индексных дескрипторов в файловой системе;
  • размер блока файловой системы;
  • количество блоков и индексных дескрипторов в группе;
  • размер индексного дескриптора;
  • идентификатор файловой системы.

Суперблок размещается в первых 1024 байтах раздела, от его целостности зависит работоспособность ФС. ОС создает несколько копий суперблока для восстановления в случае повреждения оригинального и размещает их (копии) различных областях жесткого диска.

При загрузке, ядро ОС Linux после монтирования корневого раздела на чтение, автоматически примонтирует остальные разделы жесткого диска. Какие разделы необходимо примонтировать, ядро берет из конфигурационного файла /etc/fstab. Пример и описание файла fstab:

Читайте так же:
Виндовс 7 юсб двд довнлоад тул

Более современный вариант:

Присмотревшись, можно увидеть, что в более современном варианте, устройства монтируются не по адресу устройства, а по UUID (идентификатору устройства). Это позволяет в случае смены жесткого диска, не перенастраивать fstab, а просто присвоить новому диску имеющийся UUID.

Строки, начинающиеся символом #, являются комментариями. Остальные строки содержат шесть полей. Поскольку эти поля позиционные, все они должны быть заполнены.

  • rw и ro указывают монтирование файловой системы в режиме чтения/записи или только для чтения.
  • noauto указывает, что файловая система не должна автоматически монтироваться при загрузке или при выдаче команды mount -a . В нашем примере эта опция применена для съемных устройств.
  • owner определяет, что пользователь, не имеющий прав root, может монтировать данную файловую систему (только если он является владельцем устройства) и демонтировать может только тот, кто смонтировал. Это особенно полезно для съемных носителей. Эта опция должна быть задана в /etc/fstab, а не в команде mount .
  • user определяет, что пользователь, не имеющий прав root, может монтировать данную файловую систему и демонтировать может только тот, кто смонтировал. Это особенно полезно для съемных носителей. Эта опция должна быть задана в /etc/fstab, а не в команде mount .
  • users определяет, что любой пользователь, не имеющий прав root, может монтировать данную файловую систему и демонтировать. Это особенно полезно для съемных носителей. Эта опция должна быть задана в /etc/fstab, а не в команде mount . exec или noexec определяют, позволять ли исполнение файлов из данной файловой системы. Для файловых систем, монтируемых пользователем, по умолчанию устанавливается значение noexec , если только после поля user не указано exec .
  • noatime отключает запись атрибута времени доступа к файлу. Это может повысить производительность.
  • nosuid устанавливает запуск исполняемых suid — файлов без повышения прав.

В файловой системе Linux существуют следующие типы файлов:

  • обычные файлы (текстовые, картинки и т.п.)
  • каталоги (это тоже тип файла, который содержит в себе список файлов, принадлежащий «себе»)
  • блочные устройства (представляют собой «драйверы» устройств, позволяющие взаимодействовать с устройством. Блочное устройство производит чтениезапись в устройство блоками. Пример устройства: жесткие диски, дискеты и т.п.)
  • символьные устройства (представляют собой «драйверы» устройств, позволяющие взаимодействовать с устройством. Символьное устройство представляет собой любое не блочное устройство. Пример устройства: терминалы, принтеры и т.п.)

Тип файла в каталоге можно посмотреть командой ls с параметром -l.

Далее пойдет речь о стандартных каталогах Linux и назначении данных каталогов:

  • Имя исполняемого файла процесса в скобках;
  • Статус процесса;
  • Идентификатор процесса
  • Идентификатор родительского процесса
  • Идентификатор группы процессов процесса
  • и др.

Вот, в кратце, о назначении каталогов Linux. В последующем данная таблица будет наполняться по мере моего изучения ОС LINUX. Хочу отметить, что у некоторых дистрибутивов структура каталогов может несколько различаться, добавляться другие каталоги. Но в общем случае структура имеет вид, указанный выше.

На сегодня все. В следующей статье будет сделана шпаргалка по основным командам Linux.

Что еще почитать:

man hier
Анатомия VFS — http://www.ibm.com/developerworks/ru/library/l-virtual-filesystem-switch/

upd 2010.10.21: добавил информацию о Inode
upd 2010.11.10: добавил иллюстрацию хард-линк, а так же информацию о процессах в ФС proc
upd 2011.05.19: добавил информацию о ФС proc
upd 2013.03.18: добавил доп литературу
upd 2013.04.25: статья доработана

Объект – папка

Другим важным объектом файловой системы Windows является папка. Папка Windows играет ту же роль, что и обычная папка для хранения документов в делопроизводстве: она позволяет упорядочить хранение документов. В среде Windows термин «папка» приобретает более широкое толкование — как хранилище объектов. Поэтому естественно говорить «папка содержит файлы».

Папка (каталог) – поименованное место на диске для хранения файлов.

Значок обычной папки имеет вид . Папке присваивается имя, которое может иметь до 255 символов и записывается по тем же правилам, что и имя файла. Каждая папка может включать в себя другие папки, документы, таблицы, рисунки и пр.

Читайте так же:
Вечная перезагрузка windows 10

Совокупность папок образует древовидную структуру (рис.3). Если папка X входит в папку Y, то папка Х называется вложенной папкой (подчиненной, подпапкой, папкой более низкого уровня).

Для открытия папки необходимо дважды щелкнуть на ее значке. После этого откроется окно, в котором будет представлено содержимое этой папки. Папка Y по отношению к папке Х называется родительской (папкой более высокого уровня).

Рис.3. Пример расположения файлов и папок на диске

В случае обращения к файлу необходимо указать его путь. Путь – это последовательность из имен логического диска, папок и вложенных папок, разделенных символом «».

Уникальность имени файла обеспечивается тем, что полным именем файла считается собственное имя файла вместе с путем доступа к нему. Понятно, что в этом случае на одном носителе не может быть двух файлов с тождественными полными именами.

Например, полное имя файла Устав.doc, который находится на диске С: в папке Договора, которая входит в папку Документы, можно записать следующим образом:

Папка, с которой в данное время работает пользователь, называется открытой (текущей) папкой (более подробно о папках и файлах здесь).

Сравнение основных видов файловых систем

Давайте теперь вкратце разберем недостатки и достоинства основных файловых систем.

Файловая системаХарактеристикаСовместимость с операционной системойДостоинстваНедостаткиИдеальный вариант использования
exFAT (расширенная таблица распределения файлов)Предназначена для преодоления ограничений файловой системы FAT32. Хотя все остальное похоже на предыдущий тип хранения данных, максимальный размер файла при использовании exFAT составляет 16 ЕБ, а максимальный объем — 24 ЗБ (2.4E+13 ГБ)Windows XP, Windows 7/8/10 / Vista, Mac OS X, Linux (с использованием FUSE)Меньшие ограничения касательно размера файла в сравнении с FAT32Снижение производительности в случае использования больших файловUSB, флеш-накопители или другие внешние устройства хранения данных размером более 4 ГБ
FAT32 (таблица распределения файлов)Наиболее совместимая файловая система. У нее есть свои ограничения, поскольку FAT32 поддерживает лишь файлы размером меньше 4 ГБ и объем не больше 8 ТБ. Производительность замедляется в том случае, если на одном томе имеется большое количество данных. Именно поэтому FAT32 подходит для устройств хранения с меньшим пространством и где требуется кросс-платформенная совместимостьWindows XP, Windows 7/8/10 / Vista, Mac OS Leopard, Mac OS X, Linux, PlayStation 3, XboxКросс-платформенная совместимость, небольшой весОграниченный размер файла и раздела, ухудшенная производительность при работе с большим массивом данныхСменные накопители
NTFS (новая файловая система)Лучшая файловая система, когда дело доходит до производительности и безопасности. Поскольку это собственность Microsoft, то совместимости со всеми операционными системами ждать не стоит. Mac OSX и Linux читают разделы NTFS, но не могут изменять или записывать какие-либо данные. Максимальный размер файла, который можно хранить в этой системе, составляет 16 ЕБ, как и максимальный объемWindows NT, Windows XP, Windows 7/8/10/Vista, Linux (только для чтения), Mac (только для чтения)Безопасность, производительность, скоростьПуть к файлу ограничен 255 символами, несовместима с другими основными операционными системами, отличными от WindowsЧтобы обеспечить необходимую производительность и безопасность лучше остановится на Windows

Большинство этих файловых систем работают с несколькими операционными системами, как Windows, macOS, Linux и т.д. Обычно пользователи не ограничиваются только одним типом хранения данных. Если вы не располагаете большими рабочими файлами, тогда можете выбирать среди множества вариантов. Их количество возрастает, если скорость передачи не является приоритетом.

Примечание! Когда выбранная файловая система не подходит, вы всегда можете переформатировать флешку, если на ней нет никаких ценных данных.

Видео — Какую выбрать файловую систему для флешки

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector