Ответы об IT

Ответы об IT

» » Определение и основные функции файловой системы. Файловая система — что такое? Файловая система NTFS, FAT, RAW, UDF

Определение и основные функции файловой системы. Файловая система — что такое? Файловая система NTFS, FAT, RAW, UDF

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

Файл (переводится как досье, картотека - file) - поименованная целостная совокупность данных на внешнем носителе.

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

Одна и та же операционная система может поддерживать одновременно несколько файловых систем (табл. 4.1).

Таблица 4.1

Примеры файловых систем

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

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

имя файла;

расширение имени;

код времени создания файла;

код даты создания файла;

размер файла;

номер первого кластера, занимаемого файлом;

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

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

Поддержание файловой системы включает следующие действия:

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

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

переименование файлов и каталогов;

копирование и перемещение файлов между дисками компьютера и между каталогами одного диска;

удаление файлов и каталогов.

Имя каждого файла состоит из 2-х частей: основного имени и расширения. Расширение отделяется от основного имени точкой:

основное_имя. расширение,

например, «informatics.doc».

Правила описания основного имени определяются принятой файловой системой. До появления ОС Windows 95 файлы именовались «короткими» именами, в которых основное имя файла не превышало 8 символов (файловая система FAT), а его расширение - 3 символа. Имя и расширение включали только буквы латинского алфавита и цифры. В частности, такой принцип именования файлов используется в операционной системе MS-DOS. Недостаток коротких имен заключается в низкой информативности имени файла относительно содержимого файла. В Windows 95 было введено понятие «длинного» имени (файловая система VFAT). Такое имя может содержать до 256 символов. Длинное имя может включать любые символы за исключением специальных; «\», «/», «;», «*», «?», «"», «<», «>». Кроме этого, в именах файлов допускаются пробелы и несколько точек (файловые системы FAT32, NTFS и др.).

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

Рис. 4.4. Фрагмент списка зарегистрированных расширений файлов

Для более удобной работы с данными файлы объединяют по определенным признакам в группы, например, по принадлежности разным пользователям или по общей тематике содержимого и т.д. Группа файлов, для которой вводится общее имя, называется каталогом («директорией» от англ. directory). В операционной системе Windows каталоги называются папками . Имя каталога (папки), в отличие от имени файла, не включает расширение.

В каталог, кроме файлов, могут также входить другие каталоги (подкаталоги первого уровня), которые, в свою очередь, могут включать в себя как файлы, так и каталоги (подкаталоги 2-го уровня) и т.д. По такому принципу формируется иерархическая структура - дерево каталогов (рис. 4.5), включающее на самом верхнем уровне единственный главный каталог (корневой каталог, root directory), к которому сходятся многочисленные ветви подкаталогов

Рис. 4.5. Дерево каталогов.

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

А и В - гибкие магнитные диски;

С- жесткий магнитный диск;

D - оптический диск (если есть) и т.д.

Логический диск - это виртуальный диск на физическом диске или часть физического диска. Например, жесткий магнитный диск можно разбить на несколько логических дисков, имена которых будут соответственно С, D, E, F и т.д. В этом случае лазерный диск будет именоваться следующей буквой - G. Если жесткий диск не разбит на два и более логических диска, то он содержит один логический диск С.

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

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

Рис. 4.6. Полное имя файла

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

исправление ошибок в хранимых данных;

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

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

управление атрибутами файлов и каталогов.

Первые два действия относятся к файловой системе NTFS (Windows NT, Windows 2000, Windows XP). Файловая система NTFS включает средства, отслеживающие целостность хранимых данных, а также средства автоматического исправления ошибок в файловой системе и замены дефектных секторов при обнаружении ошибок.

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

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

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

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

«только для чтения»;

«скрытый»;

«системный»;

«архивный».

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

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

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

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

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

Перед форматированием операционная система Windows предлагает выбрать вид файловой системы на носителе, размер кластера, способ форматирования (быстрое или полное). Давайте разберемся, что же такое файловая система и для чего она нужна?

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

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

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

Основные функции файловой системы

Основными функциями файловой системы являются:

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

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

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

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

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

  1. FAT32
  2. ISO9660

Последние две системы предназначены для работы с компакт дисками. Файловые системы Ext3 и Ext4 работают с операционными системами на основе Linux. NFS Plus – это ФС для операционных систем OS X, используемых в компьютерах фирмы Apple.

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

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

Файловая система NTFS поддерживает работу с дисками объемом в сотни терабайт и размером одного файла до 16 терабайт.

Файловая система FAT32 поддерживает диски до 8 терабайт и размер одного файла до 4Гб. Чаще всего данную ФС используют на флешках и картах памяти. Именно в FAT32 форматируют внешние накопители на заводе.

Однако ограничение на размер файла в 4Гб на сегодня уже является большим минусом, т.к. в связи с распространением высококачественного видео, размер файла с фильмом будет превышать это ограничение и его будет невозможно записать на носитель.

Поделиться.

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

Файловая система связывает носитель информации с одной стороны и API для доступа к файлам – с другой. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же, как и на каком физическом типе носителя (CD, жёстком диске, магнитной ленте, блоке флеш-памяти или другом) он записан. Всё, что знает программа – это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).

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

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

Имена и типы файлов

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

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

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

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

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

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

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

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

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

Логическая организация файлов

Программист имеет дело с логической организацией файла, представляя файл в виде определенным образом организованных логических записей. Логическая запись – это наименьший элемент данных, которым может оперировать программист при обмене с внешним устройством. Даже если физический обмен с устройством осуществляется большими единицами, операционная система обеспечивает программисту доступ к отдельной логической записи. Записи могут быть фиксированной длины или переменной длины. Записи могут быть расположены в файле последовательно (последовательная организация) или в более сложном порядке, с использованием так называемых индексных таблиц, позволяющих обеспечить быстрый доступ к отдельной логической записи (индексно-последовательная организация). Для идентификации записи может быть использовано специальное поле записи, называемое ключом. В файловых системах ОС UNIX и MS-DOS файл имеет простейшую логическую структуру – последовательность однобайтовых записей.

Физическая организация файлов

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

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

Популярным способом, используемым, например, в файловой системе FAT операционной системы MS-DOS, является использование связанного списка индексов. С каждым блоком связывается некоторый элемент – индекс. Индексы располагаются в отдельной области диска (в MS-DOS это таблица FAT). Если некоторый блок распределен некоторому файлу, то индекс этого блока содержит номер следующего блока данного файла. При такой физической организации сохраняются все достоинства предыдущего способа, но снимаются оба отмеченных недостатка: во-первых, для доступа к произвольному месту файла достаточно прочитать только блок индексов, отсчитать нужное количество блоков файла по цепочке и определить номер нужного блока, и, во-вторых, данные файла занимают блок целиком, а значит имеют объем равный степени двойки.

В заключение рассмотрим задание физического расположения файла путем простого перечисления номеров блоков, занимаемых этим файлом. ОС UNIX использует вариант данного способа, позволяющий обеспечить фиксированную длину адреса, независимо от размера файла. Для хранения адреса файла выделено 13 полей. Если размер файла меньше или равен 10 блокам, то номера этих блоков непосредственно перечислены в первых десяти полях адреса. Если размер файла больше 10 блоков, то следующее 11-е поле содержит адрес блока, в котором могут быть расположены еще 128 номеров следующих блоков файла. Если файл больше, чем 10+128 блоков, то используется 12-е поле, в котором находится номер блока, содержащего 128 номеров блоков, которые содержат по 128 номеров блоков данного файла.

Доброго времени суток уважаемый пользователь, в этой статье речь пойдет о такой теме, как файлы. А именно мы рассмотрим: Управление файлами , типы файлов , файловая структура , атрибуты файла .

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

Одной из основных задач ОС является предоставление удобств пользователю при работе с данными, хранящимися на дисках. Для этого ОС подменяет физическую структуру хранящихся данных некоторой удобной для пользователя логической моделью, которая реализуется в виде дерева каталогов, выводимого на экран такими утилитами, как 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).

Типы файлов

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

Обычные файлы могут быть двух типов:

  1. Программные (исполняемые) – представляют собой программы, написанные на командном языке ОС, и выполняют некоторые системные функции (имеют расширения.exe, .com, .bat).
  2. Файлы данных – все прочие типы файлов: текстовые и графические документы, электронные таблицы, базы данных и др.

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

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

Пример . Copy con text1 (работа с клавиатурой).

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

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

Виды файловых структур:

  • простая , или одноуровневая : каталог представляет собой линейную последовательность файлов.
  • иерархическая или многоуровневая : каталог сам может входить в состав другого каталога и содержать внутри себя множество файлов и подкаталогов. Иерархическая структура может быть двух видов: «Дерево» и «Сеть». Каталоги образуют «Дерево», если файлу разрешено входить только в один каталог (ОС MS-DOS, Windows) и «Сеть» – если файл может входить сразу в несколько каталогов (UNIX).
  • Файловая структура может быть представлена в виде графа, описывающего иерархию каталогов и файлов:



Типы имен файлов

Файлы идентифицируются именами. Пользователи дают файлам символьные имена , при этом учитываются ограничения ОС как на используемые символы, так и на длину имени. В ранних файловых системах эти границы были весьма узкими. Так в популярной файловой системе FAT длина имен ограничивается известной схемой 8.3 (8 символов — собственно имя, 3 символа — расширение имени), а в ОС UNIX System V имя не может содержать более 14 символов.

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

Например, Windows NT в своей файловой системе NTFS устанавливает, что имя файла может содержать до 255 символов, не считая завершающего нулевого символа.

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

Символьные имена могут быть трех типов: простые, составные и относительные:

  1. Простое имя идентифицирует файл в пределах одного каталога, присваивается файлам с учетом номенклатуры символа и длины имени.
  2. Полное имя представляет собой цепочку простых символьных имен всех каталогов, через которые проходит путь от корня до данного файла, имени диска, имени файла. Таким образом, полное имя является составным , в котором простые имена отделены друг от друга принятым в ОС разделителем.
  3. Файл может быть идентифицирован также относительным именем . Относительное имя файла определяется через понятие «текущий каталог». В каждый момент времени один из каталогов является текущим, причем этот каталог выбирается самим пользователем по команде ОС. Файловая система фиксирует имя текущего каталога, чтобы затем использовать его как дополнение к относительным именам для образования полного имени файла.

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

Для файла 2.doc определить все три типа имени, при условии, что текущим каталогом является каталог 2008_год.

  • Простое имя: 2.doc
  • Полное имя: C:\2008_год\Документы\2.doc
  • Относительное имя: Документы\2.doc

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

Важной характеристикой файла являются атрибуты. Атрибуты – это информация, описывающая свойства файлов. Примеры возможных атрибутов файлов:

  • Признак «только для чтения» (Read-Only);
  • Признак «скрытый файл» (Hidden);
  • Признак «системный файл» (System);
  • Признак «архивный файл» (Archive);
  • Тип файла (обычный файл, каталог, специальный файл);
  • Владелец файла;
  • Создатель файла;
  • Пароль для доступа к файлу;
  • Информация о разрешенных операциях доступа к файлу;
  • Время создания, последнего доступа и последнего изменения;
  • Текущий размер файла;
  • Максимальный размер файла;
  • Признак «временный (удалить после завершения процесса)»;
  • Признак блокировки.

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

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

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

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

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

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

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

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

На операционные системы персональных компьютеров наложила глубокий отпечаток концепция файловой системы, лежащей в основе ОС 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

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