Файловая система как работает. Файловые системы. Типы файловых систем. Операции с файлами. Каталоги. Операции с каталогами. (5)

Файловая система позволяет систематизировать программы и данные и организовать упорядоченное управление этими объектами.

На операционные системы персональных компьютеров наложила глубокий отпечаток концепция файловой системы, лежащей в основе ОС Unix. В ОС Unix подсистема ввода-вывода унифицирует способ доступа как к файлам, так и к периферийным устройствам. Под файлом при этом понимают набор данных на диске, терминале или каком-либо другом устройстве.

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

Файловая система – это система управления данными.

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

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

Файловая система (назначение):

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

Файловая структура

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

Используется древовидная структура каталогов – дерево каталогов . Заимствована у Unix. Иерархическая структура – структура системы, части (компоненты) которой связаны отношениями включения или подчинения.

Иерархическая структура изображается ориентированным деревом, в котором вершины соответствуют компонентам, а дуги – связям.

дерево каталогов диска G

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

Деревья используются при описании и проектировании иерархических структур.

Корень – начальная позиция, листья – заключительная позиция.

Разделы

Любой жесткий или магнитооптический диск в процессе форматирования можно разделить на несколько частей и работать с ними как с отдельными (самостоятельными) дисками. Эти части называются разделами или логическими дисками . Разбиение диска на несколько логических дисков может быть необходимо из-за того, что ОС не могут работать с дисками, размер которых превышает определенную величину. Очень удобно хранить данные и пользовательские программы отдельно от системных программ (ОС), ведь ОС может «слететь с компьютера».

Раздел – область диска. Под логическим диском(разделом) в компьютере понимается любой носитель информации, с которым операционная система работает как с единым целым объектом.

Имя диска – обозначение логического диска; запись в корневом каталоге.

Логические диски (разделы) обозначаются латинскими буквами A, B, C, D, E, … (32 буквы от A до Z).

Буквы A, B зарезервированы для обозначения дискет.

С – жесткий диск, обычно с которого производится загрузка ОС.

Остальные буквы – логические диски, компакт-диски и т.д. Максимальное количество логических дисков для ОС Windows – бесконечное.

В таблице разделов указывается расположение начала и конца этого раздела и число секторов в этом разделе (место и размер).

Файловая структура логического диска

Чтобы обратиться к информации на диске, находящейся в файле, надо знать физический адрес первого сектора (№ поверхности + № дорожки + № сектора), общее количество кластеров, занимаемое данным файлом, адрес следующего кластера, если размер файла больше, чем размер одного кластера

Элементы файловой структуры:

    стартовый сектор (начальной загрузки, Boot-сектор);

    таблица размещения файлов (FAT – File Allocation Table);

    корневой каталог (Root Directory);

    область данных (оставшееся свободным дисковое пространство).

Boot -сектор

Boot -сектор – первый (начальный) сектор диска. Находится на 0- стороне, 0-дорожке.

Boot-сектор содержит служебную информацию:

    размер кластера диска (кластер – блок, объединяющий в группу несколько секторов для сокращения размера FAT-таблицы);

    местоположение FAT-таблицы (в вoot-секторе находится указатель на то, где расположена FAT-таблица);

    размер FAT-таблицы;

    количество FAT-таблиц (всегда есть как минимум 2 копии таблицы для обеспечения надежности и безопасности, т.к. разрушение FAT ведет к потере информации и трудно восстанавливается);

    адрес начала корневой директории и ее максимальный размер.

В вoot-секторе находится блок начальной загрузки (загрузчик) – загрузочная запись Boot Record.

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

FAT (таблица размещения файлов)

FAT (File Allocation Table) – таблица размещения файлов. В ней определено, какие участки диска относятся к каждому файлу.Область данных диска представлена в ОС как последовательность пронумерованных кластеров.

FAT – это массив элементов, адресующих кластеры области данных диска. Каждому кластеру области данных соответствует один элемент FAT. Элементы FAT служат в качестве цепочки ссылок на кластеры файла в области данных.

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

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

FAT – крайне важный элемент файловой структуры. Нарушения в FAT могут привести к полной или частичной потери информации на всем логическом диске. Именно поэтому, на диске хранится две копии FAT. Существуют специальные программы, которые контролируют состояние FAT и исправляют нарушения.

Для разных ОС необходимы разные версии FAT

Windows 95 FAT 16, FAT 32

Windows NT (XP) NTFS

Novell Netware TurboFAT

UNIX NFS,ReiserFS

Логическая структура носителя информации

Файловые системы. Типы файловых систем. Операции с файлами. Каталоги. Операции с каталогами.

Файл - это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные.

Основные цели использования файла.

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

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

Файловая система (ФС) - это часть операционной системы, включающая:

    совокупность всех файлов на диске;

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

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

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

Широко известны следующие файловые системы:

    файловая система операционной системы MS - DOS , в основу которой положена таблица размещения файлов - FAT ( File Allocation Table ).

Таблица содержит сведения о расположении всех файлов (каждый файл делится на кластеры в соответствии с наличием свободного места на диске, кластеры одного файла не обязательно расположены рядом). Файловая система MS-DOS имеет значительные ограничения и недостатки, например, под имя файла отводится 12 байт, работа с жестким диском большого объема приводит к значительной фрагментации файлов;

Основные функции в такой ФС нацелены на решение следующих задач:

    именование файлов;

    программный интерфейс для приложений;

    отображения логической модели файловой системы на физическую организацию хранилища данных;

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

    OS /2 , называемая HPFS ( High - Performance File System - быстродействующая файловая система).

Обеспечивает возможность иметь имя файла до 254 символов. Файлы, записанные на диск, имеют минимальную фрагментацию. Может работать с файлами, записанными в MS DOS;

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

В многопользовательских системах появляется еще одна задача: защита файлов одного пользователя от несанкционированного доступа другого пользователя.

    файловая система операционной системы Windows 95

Имеет уровневую структуру, что позволяет поддерживать одновременно несколько файловых систем. Старая файловая система MS-DOS поддерживается непосредственно, а файловые системы разработанные не фирмой Microsoft , поддерживаются с помощью специальных модулей . Имеется возможность использовать длинные (до 254 символов) имена файлов.

    файловые системы операционной системы Unix

Они обеспечивают унифицированный способ доступа к файловым системам ввода-вывода.

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

Типы файлов

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

Обычные файлы , или просто файлы, содержат информацию произвольного характера, которую заносит в них пользователь или которая образуется в результате работы системных и пользовательских программ. Большинство современных операционных систем (например, UNIX, Windows, OS/2) никак не ограничивает и не контролирует содержимое и структуру обычного файла. Содержание обычного файла определяется приложением, которое с ним работает. Например, текстовый редактор создает текстовые файлы, состоящие из строк символов, представленных в каком-либо коде. Это могут быть документы, исходные тексты программ и т. п. Текстовые файлы можно прочитать на экране и распечатать на принтере. Двоичные файлы не используют коды символов, они часто имеют сложную внутреннюю структуру, например исполняемый код программы или архивный файл. Все операционные системы должны уметь распознавать хотя бы один тип файлов - их собственные исполняемые файлы.

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

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

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

Иерархическая структура файловой системы

Пользователи обращаются к файлам по символьным именам. Однако способности человеческой памяти ограничивают количество имен объектов, к которым пользователь может обращаться по имени. Иерархическая организация пространства имен позволяет значительно расширить эти границы. Именно поэтому большинство файловых систем имеет иерархическую структуру, в которой уровни создаются за счет того, что каталог более низкого уровня может входить в каталог более высокого уровня (рис. 7.3).

Граф, описывающий иерархию каталогов, может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог (рис. 7.3, б), и сеть - если файл может входить сразу в несколько каталогов (рис. 7.3, в). Например, в MS-DOS и Windows каталоги образуют древовидную структуру, а в UNIX - сетевую. В древовидной структуре каждый файл является листом. Каталог самого верхнего уровня называется корневым каталогом, или корнем ( root ).

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

Частным случаем иерархической структуры является одноуровневая организация, когда все файлы входят в один каталог (рис. 7.3, а).

Имена файлов

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

Простое, или короткое, символьное имя идентифицирует файл в пределах одного каталога. Простые имена присваивают файлам пользователи и программисты, при этом они должны учитывать ограничения ОС как на номенклатуру символов, так и на длину имени. До сравнительно недавнего времени эти границы были весьма узкими. Так, в популярной файловой системе FAT длина имен ограничивались схемой 8.3 (8 символов - собственно имя, 3 символа - расширение имени), а в файловой системе s5, поддерживаемой многими версиями ОС UNIX, простое символьное имя не могло содержать более 14 символов. Однако пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют дать файлам легко запоминающиеся названия, ясно говорящие о том, что содержится в этом файле. Поэтому современные файловые системы, а также усовершенствованные варианты уже существовавших файловых систем, как правило, поддерживают длинные простые символьные имена файлов. Например, в файловых системах NTFS и FAT32, входящих в состав операционной системы Windows NT, имя файла может содержать до 255 символов.

В иерархических файловых системах разным файлам разрешено иметь одинаковые простые символьные имена при условии, что они принадлежат разным каталогам. То есть здесь работает схема «много файлов - одно простое имя». Для одпозначной идентификации файла в таких системах используется так называемое полное имя.

Полное имя представляет собой цепочку простых символьных имен всех каталогов, через которые проходит путь от корня до данного файла. Таким образом, полное имя является составным, в котором простые имена отделены друг от друга принятым в ОС разделителем. Часто в качестве разделителя используется прямой или обратный слеш, при этом принято не указывать имя корневого каталога. На рис. 7.3, б два файла имеют простое имя main.exe, однако их составные имена /depart/main.ехе и /user/anna/main.exe различаются.

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

Файл может быть идентифицирован также относительным именем. Относительное имя файла определяется через понятие «текущий каталог». Для каждого пользователя в каждый момент времени один из каталогов файловой системы является текущим, причем этот каталог выбирается самим пользователем по команде ОС. Файловая система фиксирует имя текущего каталога, чтобы затем использовать его как дополнение к относительным именам для образования полного имени файла. При использовании относительных имен пользователь идентифицирует файл цепочкой имен каталогов, через которые проходит маршрут от текущего каталога до данного файла. Например, если текущим каталогом является каталог /user, то относительное имя файла /user/anna/main.exe выглядит следующим образом: anna/ main.exe.

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

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

Атрибуты файлов

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

    тип файла (обычный файл, каталог, специальный файл и т. п.);

    владелец файла;

    создатель файла;

    пароль для доступа к файлу;

    информация о разрешенных операциях доступа к файлу;

    времена создания, последнего доступа и последнего изменения;

    текущий размер файла;

    максимальный размер файла;

    признак «только для чтения»;

    признак «скрытый файл»;

    признак «системный файл»;

    признак «архивный файл»;

    признак «двоичный/символьный»;

    признак «временный» (удалить после завершения процесса);

    признак блокировки;

    длина записи в файле;

    указатель на ключевое поле в записи;

    длина ключа.

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

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

Значения атрибутов файлов могут непосредственно содержаться в каталогах, как это сделано в файловой системе MS-DOS (рис. 7.6, а). На рисунке представлена структура записи в каталоге, содержащая простое символьное имя и атрибуты файла. Здесь буквами обозначены признаки файла: R - только для чтения, А - архивный, Н - скрытый, S - системный.

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

Другим вариантом является размещение атрибутов в специальных таблицах, когда в каталогах содержатся только ссылки на эти таблицы. Такой подход реализован, например, в файловой системе ufs ОС UNIX. В этой файловой системе структура каталога очень простая. Запись о каждом файле содержит короткое символьное имя файла и указатель на индексный дескриптор файла, так называется в ufs таблица, в которой сосредоточены значения атрибутов файла (рис. 7.6, б).

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

Операции над файлами

Большинство современных ОС рассматривают файл как неструктурированную последовательность байт переменной длины. В стандарте POSIX над файлом определены следующие операции:

    int open ( char * fname , int flags , mode _ t mode )

Эта операция ``открывает"" файл, устанавливая соединение между программойи файлом. При этом программа получает дескриптор файла - целоечисло, идентифицирующее данное соединение. Фактически это индекс в системнойтаблице открытых файлов для данной задачи. Все остальные операции используютэтот индекс для ссылки на файл.

Параметр char * fname задает имя файла.int flags - это битовая маска, определяющая режим открытия файла.Файл может быть открыт только на чтение, только на запись и начтение и запись; кроме того, можно открывать существующий файл,а можно пытаться создать новый файл нулевой длины.Необязательный третий параметр mode используется толькопри создании файла и задает атрибуты этого файла.

    off _ t lseek ( int handle , off _ t offset , int whence )

Эта операция перемещает указатель чтения/записи в файле.Параметр offset задает количество байт, на которое нужно сместитьуказатель, а параметр whence - откуда отсчитывать смещение.Предполагается, что смещение можно отсчитывать от начала файла(SEEK_SET), от его конца (SEEK_END) и от текущегоположения указателя (SEEK_CUR). Операция возвращает положениеуказателя, отсчитываемое от начала файла. Таким образом, вызовlseek(handle, 0, SEEK_CUR) возвратит текущее положение указателя,не передвигая его.

    int read(int handle, char * where, size_t how_much)

Операция чтения из файла. Указатель where задает буфер,куда нужно поместитьпрочитанные данные; третий параметр указывает, сколько данных надо считать.Система считывает требуемое число байт из файла, начиная с указателячтения/записи в этом файле, и перемещает указатель к концу считаннойпоследовательности. Если файл кончился раньше, считывается столько данных,сколько оставалось до его конца. Операция возвращает количествосчитанных байт. Если файл открывался только для записи, вызов readвозвратит ошибку.

    int write(int handle, char * what, size_t how_much)

Операция записи в файл. Указатель what задает начало буфера данных;третий параметр указывает, сколько данных надо записать.Система записывает требуемое число байт в файл, начиная с указателячтения/записи в этом файле, заменяя хранившиеся на в этом месте данные,и перемещает указатель к концу записанного блока. Если файл кончился раньше,его длина увеличивается. Операция возвращает количество записанных байт.

Если файл открывался только для чтения, вызов write возвратит ошибку.

    int ioctl(int handle, int cmd, ...) ; int fcntl ( int handle , int cmd , ...)

Дополнительные операции над файлом. Первоначально, по-видимому,предполагалось, что ioctl - это операции над самим файлом,а fcntl - это операции над дескриптором открытого файла,но потом историческое развитие несколько перемешало функции этих системныхвызовов. Стандарт POSIX определяет некоторые операции как наддескриптором, например дублирование (в результате этой операции мы получаемдва дескриптора, связанных с одним и тем же файлом), так и над самим файлом,например, операцию truncate - обрезать файл до заданной длины.В большинстве версий Unix операцию truncate можноиспользовать и для вырезания данных из середины файла. При считывании данныхиз такой вырезанной области считываются нули, а сама эта область незанимает физического места на диске.

Важной операцией является блокировка участков файла.Стандарт POSIX предлагает для этой целибиблиотечную функцию, но в системах семейства Unix этафункция реализована через вызов fcntl.

Большинство реализаций стандарта POSIX предлагает и своидополнительные операции. Так, в Unix SVR 4 этими операциямиможно устанавливать синхронную или отложенную запись и т.д.

    caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int handle, off_t offset)

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

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

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

Примерно та же модель работы с файлами принята в CP / M ,а набор файловых системных вызовов MS DOS фактическископирован с вызовов Unix v 7 . В свою очередь, OS /2 и Windows NT унаследовали принципы работы с файламинепосредственно от MS DOS .

Напротив, в системах, не имеющих Unix в родословной,может использоваться несколько иная трактовка понятия файла.Чаще всего файл трактуется как набор записей. Обычно система поддерживаетзаписи как постоянной длины, так и переменной. Например, текстовый файлинтерпретируется как файл с записями переменной длины, а каждой строке текстасоответствует одна запись. Такова модель работы с файлами в VMS и в ОС линии OS /360 -MVS фирмы IBM.

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

Описание общих характеристик файловой системы

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

Виды файловой системы

На каждом компьютерном устройстве применим особый тип ФС. Особо распространенные следующие ее типы:

Предназначенная для жестких дисков;
- предназначенная для магнитных лент;
- предназначенная для оптических носителей;
- виртуальная;
- сетевая.

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

У каждой информационной единицы есть имя, определенное расширение, размер, свойственные характеристики, тип. А вот ФС – это их совокупность, а также принципы работы со всеми ними.

В зависимости от того какие свойственные особенности присущи системе, с такими данными она и будет эффективно работать. А это и есть предпосылкой классификации ее на типы и виды.

Взгляд на файловую систему с точки зрения программирования

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

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

Ниже мы рассмотрим все существующие на сегодня ФС и их достоинства и недостатки.

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

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

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

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

Благодаря всевозможным модификациям этой ФС, она стала самой востребованной в современное время и на ее основе работают самые инновационные операционные системы.

Именно данная файловая система способна сохранять файлы в неизменном виде, если компьютерная техника выключилась неверно в силу, например, отсутствия зарядки батареи или выключения света.

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

NTFS
С операционкой ОС Windows NT работает современная файловая система NTFS, в принципе на нее она и была нацелена. В ее составе действует утилита convert, которая отвечает за конвертацию томов с формата HPFS или FAT, в формат томов NTFS.

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

Эта файловая система позволяет создавать информационные файлы с именами длинной в 255 символов.

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

Особенностью ФС NTFS является ее структура, которая представлена в виде определенной таблицы. Первые шестнадцать записей в реестре - это содержание самой файловой системы. Каждая отдельная электронная единица тоже имеет вид таблицы, которая содержит информацию о таблице, зеркальный файл в формате MFT, файл регистрации, используемый при необходимости восстановления информации и последующие данные – это информация о самом файле и его данные, которые были сохранены непосредственно на жестком диске.

Все выполняемые команды с файлами имеют свойство сохраняться, что помогает впоследствии восстанавливаться системе самостоятельно после сбоя операционной системы, с которой она работает.

EFS
Очень распространенной является файловая система EFS, которая считается шифрованной. Она работает с операционкой Windows. Эта система обуславливает сохранение файлов на жестком диске в зашифрованном виде. Это самая действенная защита всех файлов.
Шифрование устанавливается в свойствах файла с помощью галочки напротив вкладки, говорящей о возможности шифровки. Воспользовавшись этой функцией можно указывать, кому доступны для просмотра файлы, то есть, кому разрешено с ними работать.

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

Очень многие пользователи сталкиваются с уведомлением о том, что повреждена система RAW. Это действительно ФС или нет? Таким вопросом задаются многие. Оказывается, это не совсем так. Если объяснять на уровне языка программирования, то RAW – это ошибка, а именно логическая ошибка, которая внедрена уже в операционку Windows в целях обезопасить ее от выхода из строя. Если техника выдает какие-то сообщения по поводу RAW, значит нужно иметь в виду, что под угрозой структура файловой системы, которая работает неверно либо ей грозит постепенное разрушение.

Если такая проблема на лицо, то вы не сможете получить доступ ни к одному файлу в компе, а также он откажется выполнять и иные операционные команды.

UDF
Это файловая система для оптических дисков, котрая имеет свои особенности:

Наименования файлов не должны превышать 255 символов;
- именной регистр может быть как нижним, так и верхним.

Работает она с операционкой Windows XP.

EXFAT
И еще одна современная файловая система – EXFAT, которая является неким посредническим звеном между Windows и Linux, обеспечивающим эффективную трансформацию файлов из одной системы в иную, поскольку файлообменники у них разные. Используется она на переносных накопителях информации, таких как флешки.

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

Перечислим основные функции файловой системы.

1. Идентификация файлов. Связывание имени файла с выделенным ему пространством внешней памяти.

2. Распределение внешней памяти между файлами. Для работы с конкретным файлом пользователю не требуется иметь информацию о местоположении этого файла на внешнем носителе информации. Например, для того чтобы загрузить документ в редактор с жесткого диска, нам не нужно знать, на какой стороне какого магнитного диска, на каком цилиндре и в каком секторе находится данный документ.

3. Обеспечение надежности и отказоустойчивости. Стоимость информации может во много раз превышать стоимость компьютера.

4. Обеспечение защиты от несанкционированного доступа.

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

6. Обеспечение высокой производительности.

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

37. Простейшая таблица оглавления тома и её элементы

Файловая система включает в себя таблицу содержания и область данных – совокупность блоков на диске, идентифицируемых своими номерами / адресами. Пример простейшей (абстрактной) таблицы содержания, оглавления тома (диска, пакета дисков), которая в разных ОС имеет различные наименования – VTOC – Volume Table of Content(Таблица Содержания Тома), FAT – File Allocation Table (Таблица Размещения Файлов), FDT – File Definition Table (Таблица Определения Файлов) и т. п., приведена на рис. 1.

Рис. 1. Простейшая таблица оглавления тома

Она состоит из трех областей:

· область файлов. Это таблица, имеющая обычно ограниченное (в приведенном примере N =6) число строк N (в MS-DOS, например, N =500, т.е. число файлов не более 500). Количество столбцов M (в примере M= 5)обычно выбирается из тех соображений, чтобы 85 -95%файлом, создаваемых пользователем содержало бы не более М блоков, что зависит как от размера блока и типа пользователя, так и от общего уровня развития информационного и программного обеспечения. Первый столбец таблицы в каждой строке (заглавная запись – Title Record) содержит данные о файле, в данном примере – имя файла;

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

· список свободных блоков - необходимая информация для раз­мещения создаваемых или расширяемых файлов. Список со­здается при инициализации и включает все блоки, кроме по­врежденных, а затем корректируется при создании, удалении, модификации файлов;

· список сбойных блоков. Это таблица, создаваемая при инициа­лизации (разметке) тома (диска), пополняемая программами диагностики (примером которых может служить хорошо изве­стный пользователям NDD - Norton Disk Doctor) и предот­вращающая распределение испорченных областей на магнит­ном носителе под файлы данных.

Перечислим особенности ситуации, зафиксированной на рис.1. в простейшей (искусственной) файловой системе.

File_l занимает 6 блоков, это число больше максимального, по­этому адрес блока № 6 (23) размещен в таблице переполнения;

File_2 занимает 2 блока, что меньше ограничения, поэтому вся информация сосредоточена в области файлов.

Имеются следующие конфликтные ситуации:

· File_3 не содержит ни одного блока (следовательно, файл был удален, но заглавная запись сохранилась);

· File_4 и File_l ссылаются на блок № 3. Это ошибка, посколь­ку каждый блок должен быть закреплен за единственным фай­лом;

· в списке свободных блоков содержатся номера блоков № 12 (помеченный как сбойный) и № 13 (распределенный под File_1).

38. Логическая структура разделов диска на примере IBM- и MS-совместимых файловых систем


Логическими дисками D и E

Максимальное число первичных разделов- 4. Активный раздел тот, где находится системный загрузчик.

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

Запись расширенного раздела называют SMBR (Secondary Master Boot Record ). Отличие этой записи заключается в том, что она не имеет загрузчика, а таблица разделов состоит из двух записей: основной раздел и расширенный раздел.

39. Файловая система FAT. Структура тома FAT

40. Файловая система NTFS. Структура тома NTFS

41. Реестр ОС Windows

42. Операционные системы семейства Windows NT

43. Некоторые архитектурные модули Windows NT

44. Управление жесткими дисками в Windows NT

45. Проективные операционные системы, их принципы, преимущества, недостатки

46. Процедурные операционные системы, их принципы, преимущества, недостатки

47. История развития и идеология построения ОС Unix

48. Структура ОС Unix

49. Пользовательские интерфейсы Unix

50. Диспетчеризация процессов (задач) в Unix

51. ОС Linux и ее основные преимущества

52. Реализация графического режима в ОС Linux

53. Основные принципы работы в ОС Linux

54. Основные файлы конфигурации ОС Linux

55. Работа с дисковыми накопителями в ОС Linux

56. Приложения для ОС Linux

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

Все программы и данные хранятся в долговременной (внешней) памяти компьютера в виде файлов.

Файл - это определенное количество информации (программа или данные), имеющее имя и хранящееся в долговременной (внешней) памяти.

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

В различных операционных системах существуют различные форматы имен файлов. В операционной системе MS-DOS собственно имя файла должно содержать не более 8 букв латинского алфавита, цифр и некоторых специальных знаков, а расширение состоит из трех латинских букв, например: proba.txt

В операционной системе Windows имя файла может иметь длину до 255 символов, причем можно использовать русский алфавит, например: Единицы измерения информации.doc


Файловая система. На каждом носителе информации (гибком, жестком или лазерном диске) может храниться большое количество файлов. Порядок хранения файлов на диске определяется используемой файловой системой.

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

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

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

Начальный, корневой каталог содержит вложенные каталоги 1-го уровня, в свою очередь, каждый из последних может содержать вложенные каталоги 2-го уровня и так далее. Необходимо отметить, что в каталогах всех уровней могут храниться и файлы.

Например, в корневом каталоге могут находиться два вложенных каталога 1-го уровня (Каталог_1, Каталог_2) и один файл (Файл_1). В свою очередь, в каталоге 1-го уровня (Каталог_1) находятся два вложенных каталога второго уровня (Каталог_1.1 и Каталог_1.2) и один файл (Файл_1.1) - рис. 4.21.

Файловая система - это система хранения файлов и организации каталогов.

Рассмотрим иерархическую файловую систему на конкретном примере. Каждый диск имеет логическое имя (А:, В: - гибкие диски, С:, D:, Е: и так далее - жесткие и лазерные диски).

Пусть в корневом каталоге диска С: имеются два каталога 1-го уровня (GAMES, TEXT), а в каталоге GAMES один каталог 2-го уровня (CHESS). При этом в каталоге TEXT имеется файл proba.txt, а в каталоге CHESS - файл chess.exe (рис. 4.22).

Путь к файлу. Как найти имеющиеся файлы (chess.exe, proba.txt) в данной иерархической файловой системе? Для этого необходимо указать путь к файлу. В путь к файлу входят записываемые через разделитель "\" логическое имя диска и последовательность имен вложенных друг в друга каталогов, в последнем из которых содержится нужный файл. Пути к вышеперечисленным файлам можно записать следующим образом:

Путь к файлу вместе с именем файла называют иногда полным именем файла .

Пример полного имени файла:

С \GAMES\CHESS\chess.exe

Представление файловой системы с помощью графического интерфейса. Иерархическая файловая система MS-DOS, содержащая каталоги и файлы, представлена в операционной системе Windows с помощью графического интерфейса в форме иерархической системы папок и документов. Папка в Windows является аналогом каталога MS-DOS

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

В Windows на вершине иерархии папок находится папка Рабочий стол . Следующий уровень представлен папками Мой компьютер, Корзина и Сетевое окружение (если компьютер подключен к локальной сети) - рис. 4.23.

2. Выбрав один из пунктов меню Вид (Крупные значки, Мелкие значки, Список, Таблица) , можно настроить форму представления содержимого папки.

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

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

3. Для окончательного удаления файлов необходимо ввести команду [Файл-Очистить корзину].

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

  • копирование (копия файла помещается в другой каталог);
  • перемещение (сам файл перемещается в другой каталог);
  • удаление (запись о файле удаляется из каталога);
  • переименование (изменяется имя файла).

Графический интерфейс Windows позволяет проводить операции над файлами с помощью мыши с использованием метода Drag&Drop (перетащи и оставь). Существуют также специализированные приложения для работы с файлами, так называемые файловые менеджеры : Norton Commander, Windows Commander, Проводник и др.

В некоторых случаях возникает необходимость работать с интерфейсом командной строки. В Windows предусмотрен режим работы с интерфейсом командной строки MS-DOS.

Интерфейс командной строки

1. Ввести команду [Программы-Сеанс MS-DOS]. Появится окно приложения Сеанс MS-DOS .

В ответ на приглашение системы можно вводить команды MS-DOS с клавиатуры, в том числе:

  • команды работы с файлами (copy, del, rename и др.);
  • команды работы с каталогами (dir, mkdir, chdir и др.);
  • команды работы с дисками (format, defrag и др.).

2. Существуют десятки команд MS-DOS, при этом каждая команда имеет свой формат и параметры, запомнить которые достаточно трудно. Для того чтобы получить справочную информацию по команде, необходимо после имени команды ввести ключ /?.

Например, для получения справки по команде format в ответ на приглашение системы необходимо ввести: С:\WINDOWS>format/?


Вопросы для размышления

1. Какой элемент является вершиной иерархии в файловой системе MS-DOS? В графическом интерфейсе Windows?

Практические задания

4.11. Осуществить копирование файлов с использованием интерфейса командной строки и файлового менеджера.

4.12. Ознакомиться с объемом дисков вашего компьютера, а также объемами занятого и свободного пространства.

4.13. Ознакомиться с форматом команды dir. Просмотреть корневой каталог диска С.




Top